由于使用apache hadoop进行部署,部署步骤繁多,管理运维成本较高,于是使用Cloudera Manager进行部署、管理hadoop集群,能够加快部署,减少运维成功,同时支持其他集群的部署和管理,如:kafka、zookeeper、spark等。
前言
本文档的搭建说明是基于centos7、jdk8、cdh5.15.1、cloudera manager5.15.1,部署节点为3个对应的hostname为node1、node2和node3。
下载资源
下载cloudera manager包
访问下载地址:https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.15.1/RPMS/x86_64/,下载如下图所示红框中的文件:
访问下载地址:https://archive.cloudera.com/cm5/redhat/7/x86_64/cm/,下载如下图所示红框中文件:
下载CDH包
访问下载地址:http://archive.cloudera.com/cdh5/parcels/5.15.1/,下载如下图所示红框中的文件:
下面从如下几个步骤进行说明部署:
1.设置静态ip。
2.设置hostname。
3.关闭防火墙以及selinux。
4.ssh免密码登陆。
5.jdk配置。
6.开启httpd
7.ntp时间同步配置。
8.mysql配置。
9.cloudera manager配置。
10. cloudera manager界面配置。
设置静态ip
使用命令:"ip a" 查看使用网卡的名称,本次部署的名称为:ens192,修改/etc/sysconfig/network-scripts/ifcfg-ens192配置文件,修改内容如下红框中所示:
执行命令:"service network restart"重启网络即可。
设置hostname
1.执行命令"hostnamectl set-hostname yourhostname"修改hostname。
2.执行命令"hostname"查看设置好的hostname
3.在/etc/hosts文件中添加ip->hostname的映射。
关闭防火墙以及selinux
关闭防火墙:
1.执行命令:"systemctl stop firewalld.service" 停止firewall。
2.执行命令:"systemctl disable firewalld.service"禁止firewall开机启动。
3.指定命令:"firewall-cmd --state"查看默认防火墙状态(关闭后显示notrunning,开启后显示running)。
关闭selinux:
修改/etc/selinux/config文件中的SELINUX属性为disabled。
ssh免密设置
1.在各个机器中执行命令:"ssh-keygen -t rsa",在~/.ssh路径下生成id_rsa、id_rsa.pub文件说明生成成功。
2.在node1节点上执行命令:"cat id_rsa.pub>>authorized_key" 将node1的公钥内容拷贝到authorized_keys文件。
3.在node2、node3节点上执行命令:"ssh-copy-id -i node1"将本节点的公钥拷贝到node1机器上的authorized_keys文件。
4.在node1节点上执行命令:"scp ~/.ssh/authorized_keys node2:~/.ssh"、"scp ~/.ssh/authorized_keys node3:~/.ssh"将node1上的authorized_keys文件拷贝到其他节点。
5.执行命令:"ssh root@node2" 不需要进行密码验证说明免密成功。
jdk配置
从官网(http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)下载jdk8,并传输到各个节点,进行解压并设置jdk的环境变量,修改/etc/profile文件,修改内容如下:
修改之后执行命令:"source /etc/profile",使环境变量生效。如在窗口中执行命令:"java -version"出现如下图所示即安装成功。
开启httpd
1.执行命令:"yum install httpd "进行安装。
2.执行命令:"systemctl start httpd.service"开启服务。
3.执行命令:"systemctl enable httpd.service "设置开机自启动。
ntp时间同步服务配置
这节的内容就参考:https://www.cnblogs.com/quchunhui/p/7658853.html,本次配置也是参考该博客内容进行配置的,这里就不把别人的博客粘过来了。
mysql配置
1.下载安装mysql repo源,执行命令:"wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm"下载repo源 ,执行命令:"rpm -ivh mysql-community-release-el7-5.noarch.rpm"安装repo源。
2. 执行命令:"service mysqld restart"重启mysql服务。
3.执行命令:"mysql -u root -p"进入mysql命令窗口,创建之后元数据存储所需的数据库,创建的库如下:
mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql> create database monitor DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql>create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql>create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
mysql>create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
将这些库授权给root用户,执行命令如下:
mysql> grant all on *.* TO 'root'@'%' IDENTIFIED BY '123456'WITH GRANT OPTION;
mysql>flush privileges;
mysql > exit;
4.设置开机自启动mysql,执行命令:"chkconfig mysqld on (systemctl enable mysqld.service)".
cloudera manager配置
1.修改cloudera-manager.repo文件,将版本号添加到该文件中,如下图所示:
2.将文件拷贝到各个节点中,本次搭建使用node1作为cloudera-manager-server节点,其余节点作为cloudera-manager-agent节点。
node1节点上需要的文件:
cloudera-manager-agent-5.15.1-1.cm5151.p0.3.el7.x86_64.rpml
cloudera-manager-daemons-5.15.1-1.cm5151.p0.3.el7.x86_64.rpml
cloudera-manager.repol
cloudera-manager-server-5.15.1-1.cm5151.p0.3.el7.x86_64.rpml
cloudera-manager-server-db-2-5.15.1-1.cm5151.p0.3.el7.x86_64.rpml
enterprise-debuginfo-5.15.1-1.cm5151.p0.3.el7.x86_64.rpml
其余节点需要的文件:
cloudera-manager-agent-5.15.1-1.cm5151.p0.3.el7.x86_64.rpml
cloudera-manager-daemons-5.15.1-1.cm5151.p0.3.el7.x86_64.rpml
cloudera-manager.repol
分别在各个节点的拷贝路径下执行命令:"yum localinstall --nogpgcheck *.rpm",进行安装rpm相关文件。
3.移动文件,将CDH文件移动到/opt/cloudera/parcel-repo路径下是为了在之后的cloudera manager界面配置时不需要在线进行下载加快配置。执行命令如下:
"mv CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel manifest.json /opt/cloudera/parcel-repo/"
"mv CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.15.1-1.cdh5.15.1.p0.4-el7.parcel.sha" #注意这里有重命名
4.下载mysql connector,访问地址http://www.mysql.com/downloads/connector/j/5.1.html下载mysql jdbc驱动、解压拷贝到/usr/share/java路径下并重命名为mysql-connector-java.jar。命令如下:
"tar zxvf mysql-connector-java-5.1.47.tar.gz"
"cp ./mysql-connector-java-5.1.47-bin.jar /usr/share/java/mysql-connector-java.jar"
5.配置mysql作为cloudera manager的数据库,在node1节点上执行命令:"/usr/share/cmf/schema/scm_prepare_database.sh mysql scm -hlocalhost -uroot -p123456 --scm-host localhost scm scm scm"
-h:mysql地址。
-u/-p :数据库用户名/密码。
--scm-host:scm-server所在的机器主机。
第一个scm:数据库名。
第二个scm:创建的mysql用户的用户名。
第三个scm:创建的mysql用户的密码。
6.修改cloudera-scm-server和cloudera-scm-agent的jdk环境变量,server的文件为/etc/default/cloudera-scm-server,agent的文件为/etc/default/cloudera-scm-agent。修改内容如下图所示:
7.启动cloudera-scm-server,执行命令:"/etc/init.d/cloudera-scm-server start"。
cloudera manager界面配置
按照上面章节操作启动cloudera-scm-server等待约1分钟之后访问http://192.168.58.130:7180进行登录,用户名和密码都为admin,选择免费版,一路next开始安装,界面如下所示
1.选择版本
2.为cdh集群安装指定主机
3.集群安装
4.jdk安装选项,图中红框不进行勾选
5.选择单用户模式
6.ssh免密配置
7.安装agents
在该过程有可能出现socket.gaierror: [Errno -2] Name or service not known问题,在出错的机器上执行命令“rm -f /usr/bin/host,之后重新安装即可。
8.安装parcel
这里因为已经将CDH-*文件移动到/opt/cloudera/parcel-rep,所以选择之后不需要进行在线下载。
9.检查主机正确性
在这一步有可能报如下图所示的警告:
在报警告的机器上依次执行如下命令:
sysctl -w 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
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local
点击重新运行之后警告消除。
10.选择服务
这里选择自定义服务,选择zookeeper、hdfs、hbase三个服务。
11.配置成功
启动服务时候会有一些警告,这些警告都是因为指定路径下的磁盘空间不足、内存不足或是配置参数值不合理,可以根据警告中的提示进行修改,由于是本地环境进行搭建资源有限所以对这些警告弃之不理。
12.修改jdk版本
上述为cloude manager的完整安装步骤,有看不明白的地方一定是我写的不够清楚,所有欢迎提任何问题以及改善方法。