天天看点

6.分布式存储(大数据平台HDP搭建)

目 录​

​​1 前言 1​​​

​​2 实验环境 1​​​

​​2.1 Ambari简介 1​​​

​​2.2 HDP平台架构 1​​​

​​2.3 网络架构 2​​​

​​3 准备环境 2​​​

​​3.1 准备镜像 2​​​

​​3.2 准备HDP环境 4​​​

​​3.3 准备本地YUM源 6​​​

​​4 安装MySql 8​​​

​​5 部署AmbariServer 9​​​

​​5.1 安装AmbariServer 9​​​

​​5.2 创建Ambari数据库 9​​​

​​5.3 配置AmbariServer 10​​​

​​5.4 启动Ambari-Sever 11​​​

​​5.5 登录Ambari-Sever 11​​​

​​5.6 创建HDP集群 11​​​

​​5.7 验证集群 16​​​

​​6 添加其它服务 16​​​

​​6.1 添加HBase 17​​​

​​6.2 添加Hive 17​​​

​​7 服务自启动 19​​​

​​8 遐想点滴 19​​​

分布式存储应用

(大数据平台HDP搭建)​

营销工程部/元工​

修订:2022.08.01​

前言​

背景:通过《系列1:容器化部署分布式系统》的虚拟环境学习,大家对分布式存储系统本身应该有了更好理解和感觉;为了进一步提升和延续,《系列2》将围绕分布式存储应用进行一番探试。​

目标:分布式存储可为应用系统提供对象、文件、大数据、块等四大类存储服务和接口,由于对象、文件服务在《系列1》中已捎带了;而大数据是分布式存储的一个主要应用场景,需要知识准备也相对较多,因此本期计划从大数据平台搭建开始,带领大家先熟悉一下大数据平台和功能。​

要求:对Linux、VMware workstaion、大数据有一定的熟悉,以及《系列1》类似的实践经验。​

下期预告:​

  • 第1期:分布式存储应用(大数据平台HDP搭建), [元工]​
  • 第2期:分布式存储应用(大数据平台HDP之操作实践), [元工]​

实验环境​

Ambari简介​

Ambari 和 Hadoop 等开源软件一样,也是 Apache Software Foundation 中的一个项目,并且是顶级项目。它主要用来创建、管理、监视 Hadoop 的集群,这里的 Hadoop 是广义的,指 Hadoop 整个生态圈(例如 Hive,Hbase,Sqoop,Zookeeper 等),而并不是特指 Hadoop。简单的说,Ambari 就是为了让 Hadoop 以及相关的大数据软件更容易使用的一个工具。​

HDP平台架构​

HDP全称叫做Hortonworks Data Platform。Hortonworks数据平台是一款基于Apache Hadoop的是开源数据平台,提供大数据云存储,大数据处理和分析等服务。该平台是专门用来应对多来源和多格式的数据,并使其处理起来能变成简单、更有成本效益。HDP还提供了一个开放,稳定和高度可扩展的平台,使得更容易地集成Apache Hadoop的数据流业务与现有的数据架构。该平台包括各种的Apache Hadoop项目以及Hadoop分布式文件系统(HDFS)、MapReduce、Pig、Hive、HBase、Zookeeper和其他各种组件,使Hadoop的平台更易于管理,更加具有开放性以及可扩展性。其平台架构如下图所示:​

6.分布式存储(大数据平台HDP搭建)

网络架构​

考虑到后面集成方案的实验需求,本期最后将大数据平台HDP部署在一台虚拟机dk01节点上。网络拓扑如下图所示:​

6.分布式存储(大数据平台HDP搭建)

准备环境​

准备镜像​

1)克隆虚拟机dk01​

参考《系列1》第1期的章节3.1的介绍,不再赘述。​

2)优化​

// 停用docker 服务,减少资源占用​

[root@dk01 ~]# systemctl stop docker​

[root@dk01 ~]# systemctl disable docker​

[root@dk01 ~]# reboot​

[root@dk01 ~]# systemctl status docker​

6.分布式存储(大数据平台HDP搭建)

// 修改主机名​

[root@dk01 ~]# hostnamectl set-hostname node1 && bash​

// 修改hosts​

[root@node1 ~]# vim /etc/hosts​

192.168.66.31 node1​

192.168.66.32 node2​

192.168.66.33 node3​

192.168.66.34 node4​

//地址​

[root@node1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33​

... ​

IPADDR="192.168.66.31" ​

...​

// 重启网络服务 ​

[root@node1 ~]# systemctl restart network​

// 查看内存占用​

6.分布式存储(大数据平台HDP搭建)

//禁用kdump减少内存占用​

[root@node1 ~]# systemctl stop kdump.service​

[root@node1 ~]# systemctl disable kdump.service​

//重启后生效​

[root@node1 ~]# reboot​

// 查看结果,释放了20M​

6.分布式存储(大数据平台HDP搭建)

// 优化ssh,减少登录等待的5秒钟​

[root@node1 ~]# vim /etc/ssh/sshd_config​

查找GSSAPIAuthentication 赋值为no​

查找UseDNS,赋值为 no​

// 重启sshd服务使生效​

[root@node1 ~]# systemctl restart sshd​

准备HDP环境​

1)创建hadoop用户​

[root@node1 ~]# useradd hadoop​

[root@node1 ~]# passwd hadoop​

hjy12345​

2)赋予sudo权限和免密​

// 修改/etc/sudoers文件的配置:​

[root@node1 ~]$ visudo​

##​

## Allow root to run any commands anywhere​

root ALL=(ALL) ALL​

hadoop ALL=(ALL) NOPASSWD: ALL​

...​

## Allows people in group wheel to run all commands​

#%wheel ALL=(ALL) ALL​

3)umask设置:umask用于设置创建新文件或文件夹时授予的默认权限。umask值022授予755权限;值027授予750权限。Ambari,HDP和HDF要求umask值为022(等价于0022)或027(等价于0027)。​

// 查看当前用户的umask值​
6.分布式存储(大数据平台HDP搭建)

// 修改配置文件:在最后一行添加:umask 022​

[hadoop@node1 ~]$ sudo vim /etc/profile​

6.分布式存储(大数据平台HDP搭建)

// 使环境变量生效​

[hadoop@node1 ~]$ source /etc/profile​

// 查看结果​

6.分布式存储(大数据平台HDP搭建)

4)文件描述符配置:Linux对每个进程能打开的文件数进行限制(某用户下某进程),Hadoop组件一般都会打开大量的文件,因此要调大相关参数。​

// 查看当前用户下一个进程能打开的文件数​

[hadoop@node1 ~]$ ulimit -Sn​

[hadoop@node1 ~]$ ulimit -Hn​

// 如果小于10000就需要加大,但hard limit不能大于/proc/sys/fs/nr_open,否则注销后将无法正常登录。​

// 查看nr_open数值​

[hadoop@node1 ~]$ cat /proc/sys/fs/nr_open ​

1048576​

// 修改配置​

[hadoop@node1 ~]$ sudo vim /etc/security/limits.conf​

#​

* soft nofile 655350​

* hard nofile 655350​

// 重启系统使之生效​

[hadoop@node1 ~]$ sudo reboot​

5)SSH免密​

// 生成公、私钥对​

[hadoop@node1 ~]$ ssh-keygen​

6.分布式存储(大数据平台HDP搭建)

[hadoop@node1 ~]$ cd .ssh/​

[hadoop@node1 .ssh]$ cat id_rsa.pub >> authorized_keys​

[hadoop@node1 .ssh]$ chmod 700 ~/.ssh​

[hadoop@node1 .ssh]$ chmod 600 ~/.ssh/authorized_keys​

// 查看结果​

6.分布式存储(大数据平台HDP搭建)

// 免密测试​

[hadoop@node1 ~]$ ssh node1​

6.分布式存储(大数据平台HDP搭建)
// exit退出ssh,重新再连接一次,如果不需输入密码SSH免密就做成功了​
6.分布式存储(大数据平台HDP搭建)

6)安装java​

// 解压​

[hadoop@node1 ~]$ sudo tar -zxvf jdk-8u231-linux-x64.tar.gz -C /usr/local/​

// 创建软链接​

[hadoop@node1 ~]$ sudo ln -s /usr/local/jdk1.8.0_231/ /usr/local/jdk​

// 清理安装包​

[hadoop@node1 ~]$ sudo rm ~/jdk-8u231-linux-x64.tar.gz​

// 设置环境变量:在文件末尾添加​

[hadoop@node1 ~]$ sudo vim /etc/profile​

export JAVA_HOME=/usr/local/jdk​

export JRE_HOME=${JAVA_HOME}/jre​

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib​

export PATH=${JAVA_HOME}/bin:$PATH​

// 测试java安装是否成功​

[hadoop@node1 ~]$ java -version​

6.分布式存储(大数据平台HDP搭建)

准备本地YUM源​

1)安装Apache​

// 安装Apache​

[hadoop@node1 ~]$ sudo yum -y install httpd​

// 启动Apache​

[hadoop@node1 ~]$ sudo systemctl start httpd​

// 设置开机启动​

[hadoop@node1 ~]$ sudo systemctl enable httpd​

// 测试,如下表示成功​

6.分布式存储(大数据平台HDP搭建)

2)HDP安装包部署到Apache​

// 从“​​HDP安装包​​”位置(提取码: 2kia,有效期至2022.08.30),下载后先复制到“~/”目录​
6.分布式存储(大数据平台HDP搭建)

// 然后将"*.tar.gz"文件移到"/var/www/html/"目录下:​

[hadoop@node1 ~]$ sudo mv *.tar.gz /var/www/html/​

[hadoop@node1 ~]$ cd /var/www/html/​

// 解压​

[hadoop@node1 html] $ sudo tar -zxvf ambari-2.7.4.0-centos7.tar.gz​

[hadoop@node1 html] $ sudo tar -zxvf HDP-UTILS-1.1.0.22-centos7.tar.gz​

[hadoop@node1 html] $ sudo tar -zxvf HDP-GPL-3.1.4.0-centos7-gpl.tar.gz​

[hadoop@node1 html] $ sudo tar -zxvf HDP-3.1.4.0-centos7-rpm.tar.gz​

// 更改权限​

[hadoop@node1 ~]$ sudo chmod -R ugo+rX /var/www/html/​

// 清理安装包​

[hadoop@node1 html]$ sudo rm -r *.gz​

// 由此可得到以上几个yum库的Base URL如下:​

HDP-3.1 http://node1/HDP/centos7/3.1.4.0-315/​

HDP-3.1-GPL http://node1/HDP-GPL/centos7/3.1.4.0-315/​

HDP-UTILS-1.1.0.22 http://node1/HDP-UTILS/centos7/1.1.0.22/​

ambari http://node1/ambari/centos7/2.7.4.0-118/​

3)配置本地yum源​

[hadoop@node1 ~]$ cd /etc/yum.repos.d/​

[hadoop@node1 yum.repos.d]$ sudo vim ambari.repo​

[ambari-repo]​

name=ambari​

baseurl=http://node1/ambari/centos7/2.7.4.0-118/​

gpgcheck=0​

enabled=1​

// 检查结果如下:OK!​

6.分布式存储(大数据平台HDP搭建)

安装MySql​

1)安装MySQL 5.7的Yum仓库​

[hadoop@node1 ~]$ sudo yum -y localinstall https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm​

2)导入mysql客户端的最新公钥​

[hadoop@node1 ~]$ sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022​

3)安装MySQL​

[hadoop@node1 ~]$ sudo yum -y install mysql-community-server​

4)设置开机启动​

[hadoop@node1 ~]$ sudo systemctl enable mysqld​

[hadoop@node1 ~]$ sudo systemctl start mysqld​

[hadoop@node1 ~]$ sudo systemctl status mysqld​

6.分布式存储(大数据平台HDP搭建)

5)查看临时root密码​

[hadoop@node1 ~]$ sudo grep 'temporary password' /var/log/mysqld.log​
6.分布式存储(大数据平台HDP搭建)
// root临时密码(随机生成每次不一样)为:uMnCo25Fnq)k​

6)修改root密码​

// 执行下面mysql登录命令,然后输入前面获得的临时密码​

[hadoop@node1 ~]$ mysql -u root -p​

6.分布式存储(大数据平台HDP搭建)

// 以上登录成功后,再执行下面命令将root用户的密码改为"root%123"​

set global validate_password_policy=0;​

set global validate_password_mixed_case_count=0;​

set global validate_password_number_count=3;​

set global validate_password_special_char_count=0;​

set global validate_password_length=3;​

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root%123';​

exit​

7)安装MySQL的Java驱动​

[hadoop@node1 ~]$ sudo mkdir -p /usr/share/java​

[hadoop@node1 ~]$ sudo mv mysql-connector-java-8.0.18.jar /usr/share/java/​

部署AmbariServer​

安装AmbariServer​

[hadoop@node1 ~]$ sudo yum -y install ambari-server​
6.分布式存储(大数据平台HDP搭建)
// 因为是本地yum源,安装很快!​

创建Ambari数据库​

// MySql登录(密码为"root%123")​

[hadoop@node1 ~]$ mysql -uroot -p​

6.分布式存储(大数据平台HDP搭建)

// 执行以下命令完成数据库的创建​

set global validate_password_policy=0;​

set global validate_password_mixed_case_count=0;​

set global validate_password_number_count=3;​

set global validate_password_special_char_count=0;​

set global validate_password_length=3;​

create database ambari;​

CREATE USER 'ambari'@'%' IDENTIFIED BY 'bigdata';​

GRANT ALL ON ambari.* TO 'ambari'@'%';​

FLUSH PRIVILEGES;​

use ambari;​

source /var/lib/ambari-server/resources/Ambari-DDL-MySQL-CREATE.sql;​

exit​

配置AmbariServer​

[hadoop@node1 ~]$ sudo ambari-server setup​
6.分布式存储(大数据平台HDP搭建)
6.分布式存储(大数据平台HDP搭建)
6.分布式存储(大数据平台HDP搭建)

启动Ambari-Sever​

// 因本次采用单机运行所有HDP大数据组件,建议调大VM的内存(8GB以上)后再启动;​

[hadoop@node1 ~]$ sudo ambari-server start​

注意:此时ambari-server已经可以开机启动,如果是重启,则不需要执行下面的命令。​

登录Ambari-Sever​

​​http://192.168.66.31:8080/​​​

默认用户/密码:admin/admin​

6.分布式存储(大数据平台HDP搭建)

创建HDP集群​

1)集群命名(如:hjy_hdp_cluster)​

6.分布式存储(大数据平台HDP搭建)

2)版本选择(选择HDP-3.1,并选择本地仓库)​

6.分布式存储(大数据平台HDP搭建)

3)设置yum源的url(仅保留redhat 7那一行,删除其它行)​

6.分布式存储(大数据平台HDP搭建)

// 根据前面本地yum的配置结果,以上对应Base URL如下:​

HDP-3.1 http://node1/HDP/centos7/3.1.4.0-315/​

HDP-3.1-GPL http://node1/HDP-GPL/centos7/3.1.4.0-315/​

HDP-UTILS-1.1.0.22 http://node1/HDP-UTILS/centos7/1.1.0.22/​

4)注册主机(本实验只有1个node1节点主机)​

6.分布式存储(大数据平台HDP搭建)

// 通过下面命令获得node1的私钥内容,再全复制到上面编辑框中​

[hadoop@node1 ~]$ cat .ssh/id_rsa​

5)当所有主机状态都为'Success'后,再点击下一步,如下图所示。​

6.分布式存储(大数据平台HDP搭建)

6)选择安装的服务(Amabri将大数据的各个组件叫做 Service,先暂选择HDFS、YARN安装,如下图所示)​

6.分布式存储(大数据平台HDP搭建)
// 如果所择服务依赖其它服务则会提示,点击确认后会自动勾选。​

7)分配Mater服务安装到哪些主机。​

6.分布式存储(大数据平台HDP搭建)
Master服务:指各大数据组件的Master服务,如HDFS的Master服务就是namenode。​

8)分配Slave服务和Client安装到哪些主机(默认即可)​

6.分布式存储(大数据平台HDP搭建)

9)自定义Service,等其它配置​

用户名/密码:都设置为admin;其它都保持默认配置,一路下一步​

10)Review​

6.分布式存储(大数据平台HDP搭建)
检查没有问题,点击"DEPLOY"后开始正式部署​

11)部署完服务之后,Ambari会自动启动服务并进行测试,如下界面代表成功安装.​

6.分布式存储(大数据平台HDP搭建)

12)摘要​

6.分布式存储(大数据平台HDP搭建)

13)Amabri的dashboard页面​

6.分布式存储(大数据平台HDP搭建)

验证集群​

1)经过前面的步骤搭建好了Ambari的集群,虽然只有一个node1节点,但五脏俱全(已包括了HDFS、YARN、 Zookeeper集群等),可以执行如下命令简单验证下HDFS:​

[hadoop@node1 ~]$ hdfs dfs -ls /​
6.分布式存储(大数据平台HDP搭建)
// 注意:通过Ambari部署的HDFS,其管理员用户是hdfs;YARN和Zookeeper大家自行验证。​

添加其它服务​

添加HBase​

1)通过Services -> "Add Service" 进入向导即可完成,保持默认设置即可,略!​

6.分布式存储(大数据平台HDP搭建)
// 结果如下:​
6.分布式存储(大数据平台HDP搭建)

添加Hive​

1)Hive的添加过程与HBase基本一样,其它服务亦如此。不过Hive的元数据一般选择存放在MySQL,需在MySQL里为Hive创建用户和数据库,方法如下:​

// 登录MySQL,输入密码:root%123​

[hadoop@node1 ~]$ mysql -uroot -p​

6.分布式存储(大数据平台HDP搭建)

// 执行以下命令,完成用户和数据库的创建​

set global validate_password_policy=0;​

set global validate_password_mixed_case_count=0;​

set global validate_password_number_count=3;​

set global validate_password_special_char_count=0;​

set global validate_password_length=3;​

create database hive;​

CREATE USER 'hive'@'%' IDENTIFIED BY 'hive%123';​

GRANT ALL ON hive.* TO 'hive'@'%';​

FLUSH PRIVILEGES;​

exit​

2)告诉Hive组件MySQL驱动的位置​

[hadoop@node1 ~]$ sudo ambari-server setup --jdbc-db=mysql --jdbc-driver=/usr/share/java/mysql-connector-java-8.0.18.jar​
6.分布式存储(大数据平台HDP搭建)

3)接下来与HBase基本一样,只是在"Customize Services"配置环节时,切换到"HIVE -> DATABASE",完成下面的自定义设置:​

6.分布式存储(大数据平台HDP搭建)

4)查看结果​

6.分布式存储(大数据平台HDP搭建)
//因安装了新服务组件的缘故,需要重启原有一些服务才能生效,我们全部重启一下:​
6.分布式存储(大数据平台HDP搭建)
// 重启进度框​
6.分布式存储(大数据平台HDP搭建)

服务自启动​

1)如果让托管给Ambari的服务自动启动,则可以按照下图操作:​

6.分布式存储(大数据平台HDP搭建)

遐想点滴​

继续阅读