CDH6.2大数据平台安装手册

一、集群规划

实际工作中搭建CDH集群的话,理论上来说,机子越多越好,如果资源有限的话,建议前期最好4台机子,4台机子的话,针对hadoop集群而言 可以设置为1主3从,
如果考虑到HA的话,就需要最少5台机子,本案例采用的服务器配置如下

IP 主机名 CPU 内存 硬盘 角色
172.20.9.1 hadoop1 8h 64g 50g cm-server、NameNode、SecondaryNameNode、Yarn ResourceManager
172.20.9.2 hadoop2 8h 32g 50g DataNode、NodeManager
172.20.9.3 hadoop3 8h 32g 50g DataNode、NodeManager

二、安装部署

这里部署就用3台机子来演示

1、主机名配置

所有节点都需要配置

# 这里我设置的是hadoop1、hadoop2、hadoop3
hostnamectl set-hostname <主机名>

2、绑定主机名与IP的映射关系

所有节点都需要配置

vim /etc/hosts

# 这里的主机名和IP要对应你自己的主机名IP
172.20.9.1 hadoop1
172.20.9.2 hadoop2
172.20.9.3 hadoop3

做完上一步后最好ping一下所有机器的主机名,看看是否ping的通

3、关闭集群内所有机子的防火墙

如果集群内的所有机器都是内网环境的,直接关闭防火墙是没啥问题的,如果是外网环境,就不能关闭防火墙了,而是开放端口, 以下命令需要在所有机子执行,临时和永久自己选择一种即可

# 临时关闭,重启后又会打开
systemctl stop firewalld

# 永久关闭
systemctl disable firewalld

4、配置免密登录

# 主节点生成秘钥
ssh-keygen -t rsa

# 然后在主节点上将生成的秘钥复制到其他节点上,这里把自己也做为免密
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop1
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop2
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop3

上面的执行完毕后,可以在主节点通过ssh <主机名>进行免密登录到子节点了

5、搭建ntp时间服务器

需要保证集群内所有节点的时间一致,否则集群会不稳定,在集群内所有节点上安装ntp服务,同步一个ntp时间服务器

首先在hadoop1节点操作

yum -y install ntp

vim /etc/ntp.conf

# 注释掉这四行

#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

# 增加这一行,然后保存退出
server ntp.aliyun.com

其他节点也重复刚刚的操作

yum -y install ntp

vim /etc/ntp.conf

# 注释掉这四行

#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

# 增加这一行,然后保存退出
server.ntp.aliyun.com

启动并添加到开机启动项, 集群中每个节点都需要执行

service ntpd start

systemctl enable ntpd.service

配置好了之后,我们可以验证下现在同步的时间服务器,可以随便用一台节点试试,需要等待个几分钟,出现下面的结果就说明成功了

6、所有节点安装JDK

这里采用JDK8 点击下载

下载成功后的JDK上传到每台节点上

rpm -ivh jdk-8u212-linux-x64.rpm

默认会安装到/usr/java目录, 验证是否安装成功 java -version

7、Hadoop1安装Mysql

# 卸载原装的mariadb
rpm -qa|grep mariadb

# 把上一条命令返回的内容拿来继续下一条命令
rpm -e --nodeps mariadb-libs-5.5.65-1.el7.x86_64

下载Mysql安装包,这里我们下载5.7.31版本的 点击下载 ,
下载成功后上传到Hadoop1机器上然后解压安装包

tar -xvf mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar

进行安装

rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm --force --nodeps

rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm --force --nodeps

rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm --force --nodeps

rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm --force --nodeps

rpm -ivh mysql-community-libs-compat-5.7.31-1.el7.x86_64.rpm --force --nodeps

开始配置Mysql
初始化mysql

mysqld --initialize --user=mysql

获取Mysql生成的随机密码,在文件/var/log/mysqld.log文件中

cat /var/log/mysqld.log |tail -1

设置Mysql开机启动

systemctl start mysqld.service

重启Mysql否则连接不上

systemctl restart mysqld

连接Mysql并修改初始化密码

# 连接
mysql -uroot -p

# 修改root用户的密码为 abc123
alter user user() identified by "abc123";

初始化数据库,一共需要用到这些数据库

mysql> create database cmserver default charset utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on cmserver.* to 'root'@'%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)
 
mysql> create database metastore default charset utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.01 sec)

mysql> grant all on metastore.* to 'root'@'%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> create database rman default charset utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on rman.* to 'root'@'%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> create database oozie default charset utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on oozie.* to 'root'@'%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> create database hue default charset utf8 collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on hue.* to 'root'@'%' identified by 'abc123';
Query OK, 0 rows affected, 1 warning (0.00 sec)

最后创建/usr/share/java目录,将Mysql的驱动jar包放入到里面,这一步需要在集群内的所有节点上操作

mkdir -p /usr/share/java

jar包一定要重命名, 每个节点都要

mv mysql-connector-java-5.1.49.jar mysql-connector-java.jar

8、在hadoop1节点安装httpd服务

yum install -y httpd

# 启动httpd服务
systemctl start httpd

# 添加到开机启动
systemctl enable httpd.service

9、在hadoop1节点配置cloudera-manager相关包

创建目录

mkdir -p /var/www/html/cloudera-repos/cm6

下载cloudera相关文件, 地址:https://archive.cloudera.com/cm6/6.2.1/redhat7/yum/RPMS/x86_64/

然后将这些下载后的文件上传到hadoop1节点,最终服务器上的文件效果是

10、配置cloudera-manager的yum源并添加到其他节点上

下载createrepo,下载地址为:http://www.rpmfind.net/linux/rpm2html/search.php?query=createrepo 找到centos7的,下载成功后上传到hadoop1节点的opt目录下

安装createrepo

rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm --force --nodeps

下载deltarpm, 不然在后面创建repo的时候会提示缺少这个模块,同样上传到opt目录, 点击下载

安装

rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm --force --nodeps

回到cm6的目录,执行创建repo

createrepo .

这时候cm6目录会出现一个repodata目录

完成创建repodata后,在集群中的所有节点去配置新的yum源

# 添加新的yum源
vim /etc/yum.repos.d/cloudera-manager.repo

[cloudera-manager]
name=Cloudera Manager,Version
baseurl=http://hadoop1/cloudera-repos/cm6
gpgcheck=1

# 清除yum缓存
yum clean all

yum makecache

配置完后访问下,以确保base_url是正确的,地址为http://hadoop1/cloudera-repos/cm6/, 如果你本机没有配置hostname与IP的绑定关系,那么就输入IP去访问, 访问成功后会进入到如下图所示的页面

11、安装cloudera-manager相关服务

安装CDH集群,需要先安装Cloudera-Manager(下面简称CM),通过CM提供的web界面来安装,非常快捷

  • 在hadoop1节点操作
    在安装之前,先执行以下这个命令,否则安装相关服务的时候会报错
rpm --import http://hadoop1/cloudera-repos/cm6/RPM-GPG-KEY-cloudera

安装cloudera-manager-daemonsclouera-manager-agent这两个服务,由于hadoop1节点作为cm的server节点,所以需要多安装个cloudera-manager-server服务

yum install -y cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
  • 在hadoop2节点操作
    在安装之前,一样先执行以下这个命令,否则安装相关服务的时候会报错
rpm --import http://hadoop1/cloudera-repos/cm6/RPM-GPG-KEY-cloudera

安装cloudera-manager-daemonsclouera-manager-agent这两个服务

yum install -y cloudera-manager-daemons cloudera-manager-agent
  • 在hadoop3节点操作
    在安装之前,一样先执行以下这个命令,否则安装相关服务的时候会报错
rpm --import http://hadoop1/cloudera-repos/cm6/RPM-GPG-KEY-cloudera

安装cloudera-manager-daemonsclouera-manager-agent这两个服务

yum install -y cloudera-manager-daemons cloudera-manager-agent

安装完CM以后,在/opt目录会出现cloudera目录,这时候需要将cdh的安装包上传到/opt/cloudera/parcel-repo目录下,可以选择直接点击下载
也可以前往地址进行自己下载: https://archive.cloudera.com/cdh6/6.2.1/parcels/

首先将CDH安装包自行上传到hadoop1节点的/opt/cloudera/parcel-repo目录中,然后进入到hadoop1节点的/opt/cloudera/parcel-repo目录,生成sha文件

sha1sum CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel | awk '{print $1}' > CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha

然后将CDH的安装包和新生成的sha文件通过scp命令拷贝到hadoop2和hadoop3节点,由于hadoop2和hadoop3只有/opt/cloudera/目录,所以需要我们先手动在这两个节点上创建目录

mkdir -p /opt/cloudera/parcel-repo

在hadoop1节点执行远程拷贝,进入到/opt/cloudera/parcel-repo目录

scp CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel hadoop2:/opt/cloudera/parcel-repo

scp CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel hadoop3:/opt/cloudera/parcel-repo

scp CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha hadoop3:/opt/cloudera/parcel-repo

scp CDH-6.2.1-1.cdh6.2.1.p0.1425774-el7.parcel.sha hadoop2:/opt/cloudera/parcel-repo

12、hadoop1节点启动CM和安装CDH集群

  • 初始化CM
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql cmserver root abc123
  • 启动CM
service cloudera-scm-server start

过个几分钟,就可以访问CM的web界面了,一般5~10分钟,端口为7180

  • 安装CDH集群
    通过访问http://hadoop1:7180进入web界面,如果本机未配置IP和主机名的映射关系,则通过IP去访问

账号和密码都是admin,登录进来之后会出现这个页面,点击继续

选择默认的即可

稍等一会,就会进入这个页面,点击继续

接下来是集群名称,也可以使用默认的

输入集群中的所有主机名,然后点击搜索按钮,然后选中所有主机,点击继续按钮

输入自定义存储库,确认版本为6.2.1,点击继续

JDK安装页直接点击继续,因为之前我们已经安装好了,不需要这里再次安装,这时候到了设置SSH密码的步骤了,这时候我们输入集群中节点的密码,然后继续

接下来会进入到cm-agent的安装页面,需要稍等一会,5~10分钟左右,安装成功后会自动到安装CDH

全部安装成功后是这样的效果,然后继续下一步

点击两个高级选项,开始检测

检查第一个检测的结果

检查第二个检测的结果

根据这里提示的去更改即可

先在hadoop1节点上修改,然后在其他节点上操作

sysctl vm.swappiness=10

echo 'vm.swappiness=10'>> /etc/sysctl.conf

echo never > /sys/kernel/mm/transparent_hugepage/defrag

echo never > /sys/kernel/mm/transparent_hugepage/enabled

vim /etc/rc.local
# 将下面这两行配置添加到文件末尾即可
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

修改完毕后点击重新运行进行重新检测,这时候检测结果正常了,然后选中箭头指向的那个,点击继续

选择适合自己的方案,这里就选择自定义了,方便演示,而且spark和flink后期也是运行于yarn,因此就先自定义选择hdfs和yarn,点击继续后,cdh会自动进行角色分配,将刚才选择的大数据组件安装到不同节点上

前期不是很熟悉的情况下,最好还是采用自动分配的方案,这里我们也什么都不修改了, 然后点击继续按钮

在这里要输入数据库名称和账号密码,然后点击测试连接按钮,连接成功的话,在每一行的后面都会出现successful,如果有错误,就需要看具体的错误信息了。这些数据库我们在安装mysql的时候都已经创好了, 测试通过后点击继续

这里根据情况修改,这里我们采用默认的不做修改,点击下一步

等待大数据组件启动

安装成功后效果是这样的, 点击继续

到此整个大数据集群就安装成功了

三、管理CDH

前面我们已经搭建好了CDH集群,这时候在通过地址去访问,就可以看到下面的界面了,地址是你安装集群的节点IP,端口7180

可以看到界面上有一些警告(扳手图标)和安全隐患(感叹号图标),关于警告我们可以动态观察,不一定要马上处理,对于安全隐患还是要处理下,此时界面中有一个安全隐患,直接点击感叹号查看详细信息

这里面的警告信息是针对hdfs的纠删码机制的警告,这个是hadoop3.0的新特性(hdfs的存储策略),纠删码机制可以节省HDFS的存储空间,不过需要至少9个DataNode,目前我们只有两个DataNode,所以不能使用这种策略, 点击
这个警告信息,然后点击修改他的存储策略

更改他的默认存储策略为No default .... 表示不使用纠删码机制

保存更改后点击去掉检测

去掉勾选并保存更改

这时页面将不存在警告信息了,这时点击界面的左上角Cloudera Manager文字回到主页面

发现还有个警告信息,这时候我们去解决这个警告信息

这时候我们点击这个扳手图标查看这个错误信息,发现是提示我们Hdfs的Block块的副本数不足,因为HDFS的数据默认是需要存储3份,我们这里只有两台DataNode,所以才出现了这个警告,如果在多一个DataNode是不会出现这个警告的,
不过也不会影响我们的使用,如果你们有足够多的机子的话,那是不会出现这个警告的

点击这个警告信息,我们进去查看详细的错误,发现多了一个警告信息,说我们采用了过期的配置,这是因为我们前面修改了默认的存储策略,所以这时候我们需要重启下, 点击箭头所指向的蓝色字体

可以发现详细的配置变更记录,这时候点击右下方的重启过时服务

允许他重新部署客户端配置,然后点击立即重启

等个1-2几分钟,重启成功后的效果如下

点击完成回到主页面,可以看到没有过期配置需要重启的提示图标了

但是发现hdfs旁边还是有个警告,看到很不舒服,这时候我们点击那个扳手,再点击suppress,然后在弹出的界面点击确认即可

这时候在回到主页面就看到旁边的警告信息了,剩下的就是一些JVM的配置了,这个按需更改即可

四、使用CDH中HDFS

不管是自己手动搭建官方的Hadoop集群,还是通过CDH集群来安装,操作HDFS都是一样的,接下来演示一下操作HDFS,登录到hadoop1节点

  • 查看文件

  • 创建文件

发现报错权限不足,创建失败。在CDH环境中,Hadoop平台的最高权限用户是HDFS,属于supergroup组。默认HDFS是会开启权限认证的,所以操作时,我们可以设置下当前服务器的Hadoop用户环境

# 编辑系统环境变量
vim /etc/profile

# 在最后面增加下面这行,然后保存退出
export HADOOP_USER_NAME='hdfs'

# 刷新配置
source /etc/profile

然后再去执行刚刚创建文件夹的命令,发现没问题了,可以查看下文件列表,发现多出了刚创建的文件夹

五、停止和启动cm以及cdh集群

1、停止

先停止CDH集群,在去停止CM

2、启动

和停止相反,启动的时候先启动CM再去启动CDH


手册到此结束啦,谢谢您的观看

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章