Ubuntu16.0.4安装Cloudera Manager5.16.2
- 一、环境及软件准备
- 二、主机的环境配置
- 三、测试环境是否正常
- 四、安装Cloudera Manager
- 五.图形化安装
- ①进入CM管理界面: 通过<主节点ip:7180> 进入
- ②选择版本
- ③选择安装的主机:如果没有启动cloudera-scm-agent服务会出现部分节点不在以管理的主机中,启动再刷新就可以了(图是我偷得,我的已经装好了,所以大家将就下。)
- ④选择cdh的版本,选择自己下载在parcels-repo包中的cdh版本,这里应该选CDH-5.16.2-cdh5.16.2p0.3(这张也是我偷的图,不过大家知道用法就行了。)
- ⑤进行集群安装,刚开始可能会出现connect refused 再等待一会应该就会重新进行分配
- ⑥集群安装检查主机正确性,确保所有验证都为绿色
- 如果大家出现这个问题可以参考以下说明:
- 解决方法:在出现问题的节点上运行:echo 10 > /proc/sys/vm/swappiness
- echo后面的10 为需要的设置的值。
- ⑦选择自己需要的服务,我这里先选择HDFS、YARN、Zookeeper这三个。
- ⑧根据自己的需求与机器状态分配节点
- ⑨集群设置全部选默认即可
- ⑩数据库设置(数据库名为之前创建的数据库名,若没有创建你需要的服务所需的数据库,可自行再进行创建。),最后等它启动。
- 六、常见问题
一、环境及软件准备
1.环境:Ubuntu16.04 desktop x 3 台
IP分别为: 172.16.20.11 hadoop-master
172.16.20.13 hadoop-slave1
172.16.20.15 hadoop-slave2
用户统一使用root用户
2.需下载安装的软件
Cloudera Manager压缩包(下面简称CM):
CDH离线资源包(parcels):
- CDH-5.16.2-1.cdh5.16.2.p0.8-trusty.parcel
- CDH-5.16.2-1.cdh5.16.2.p0.8-trusty.parcel.sha1
- manifest.json
Mysql驱动Jar包:
mysql-connector-java-5.1.28-bin.jar
其他辅助工具:
- ssh服务
- ntp服务
- oracle-java
3.各节点安装位置
-
cloudera-manager-daemons(主节点)
-
cloudera-manager-server(主节点)
-
cloudera-manager-agent(主节点和从节点)
注意:Ubuntu有多个版本:16.04代号为Xenial Xerus——好客的非洲地松鼠14.04代号为Trusty Tahr——值得信赖的塔尔羊12.04代号为Precise Pangolin——精准的穿山甲,因此16.04需下载xenial版本的文件,否则可能会出现不兼容的问题。详情请看https://blog.csdn.net/zhengmx100/article/details/78352773
二、主机的环境配置
1.修改hostname(所有节点)
①主节点 hadoop-master
root@hadoop-master:~# sudo vi /etc/hostname
# 添加以下内容
#----------------------------------#
hadoop-master
#----------------------------------#
②从节点 hadoop-slave[1-2]
root@hadoop-slave1:~# sudo vi /etc/hostname
# 添加以下内容
#----------------------------------#
hadoop-slave1
#----------------------------------#
③使hostname生效
root@hadoop-slave1:~# sudo /etc/init.d/hostname.sh start
2.修改hosts(所有节点)
root@hadoop-master:~# sudo vi /etc/hosts
# 添加以下内容
#----------------------------------#
127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
# hostname loopback address
#127.0.1.1 i-gezafer6
172.16.20.11 hadoop-master
172.16.20.13 hadoop-slave1
172.16.20.15 hadoop-slave2
#----------------------------------#
3.更新软件包(所有节点)
root@hadoop-master:~# sudo apt update
4.关闭防火墙(所有节点)
root@hadoop-master:~# sudo ufw disable
root@hadoop-master:~# sudo apt-get remove iptables(为方便操作,我卸载iptables组件,你们随意,只要关闭就行。)
5.ssh服务配置(所有节点)
①如果未安装ssh服务则先进行安装(所有节点)
root@hadoop-master:~# sudo apt install openssh-server openssh-client
②修改/etc/ssh/sshd_config配置文件(所有节点)
root@hadoop-master:~# sudo vim /etc/ssh/sshd_config
# 查找并修改以下内容,若有#号注释的删除#号并更改即可
#----------------------------------#
PermitRootLogin yes
PasswordAuthentication yes
#----------------------------------#
root@hadoop-master:~# sudo /etc/init.d/ssh restart
③配置各节点之间的免密登陆(主节点)
# 在每个节点上分别生成密钥,生成密钥 一路回车,如果之前已有生成,提示是否重新生成时填y即可
root@hadoop-master:~# sudo ssh-keygen -t rsa
# 会在~/.ssh下面生成2个文件
# id_rsa,id_rsa.pub
# 以下按顺序执行,分别把密钥文件分发给其它节点
# 注意:如果出现无法连接的 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED 错误时 清楚~/.ssh 文件下know_hosts文件找到与登录错误的IP的公钥删除即可
root@hadoop-master:~# sudo cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
root@hadoop-master:~# sudo scp ~/.ssh/authorized_keys root@hadoop-slave1:~/.ssh/
root@hadoop-master:~# sudo ssh hadoop-slave1
root@hadoop-master:~# sudo cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
root@hadoop-master:~# sudo scp ~/.ssh/authorized_keys root@hadoop-slave2:~/.ssh/
root@hadoop-master:~# sudo ssh hadoop-slave2
root@hadoop-master:~# sudo cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
root@hadoop-master:~# sudo scp ~/.ssh/authorized_keys root@hadoop-slave1:~/.ssh/
root@hadoop-master:~# sudo scp ~/.ssh/authorized_keys root@hadoop-master:~/.ssh/
6.配置ntp服务(所有节点)
①安装ntp服务(所有节点)
root@hadoop-master:~# sudo apt-get install ntp
②启动ntp服务(所有节点)
root@hadoop-master:~# sudo service ntp restart
7.安装配置JAVA(所有节点)
①安装java(所有节点)
##因为cm必须安装oracle的java,而ubuntu的源中默认只有openjdk所以需要添加源
root@hadoop-master:~# sudo apt-get install software-properties-common python-software-properties
root@hadoop-master:~# sudo add-apt-repository ppa:webupd8team/java
root@hadoop-master:~# sudo apt-get update
②修改/etc/profile文件添加JAVA_HOME(所有节点)
root@hadoop-master:~# sudo vi /etc/profile
# 在文末添加
#----------------------------------#
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=$PATH:${JAVA_HOME}/bin:{JRE_HOME}/bin:$PATH
#----------------------------------#
③更新环境变量(所有节点)
root@hadoop-master:~# source /etc/profile
8.安装配置mysql(主节点)
①安装mysql服务(主节点)
root@hadoop-master:~# sudo apt-get install mysql-client mysql-server
②重启mysql服务(主节点)
root@hadoop-master:~# sudo service mysql restart
9.重启系统(所有节点)
root@hadoop-master:~# sudo reboot
到现在我们的准备工作已经做完了!!
三、测试环境是否正常
1.测试host是否正常(所有节点)
如果都能ping通,说明host并没有问题,可以直接测试下一步,如果不能ping通,则需要检查下host。
①ping hadoop-master(所有节点)
root@hadoop-master:~# ping hadoop-master
②ping hadoop-slave1(所有节点)
root@hadoop-master:~# ping hadoop-slave1
③ping hadoop-slave2(所有节点)
root@hadoop-master:~# ping hadoop-slave1
2.测试免密码登录ssh(所有节点)
# 若正常进入,输入exit退出
root@hadoop-master:~# sudo ssh hadoop-master
root@hadoop-master:~# sudo ssh hadoop-slave1
root@hadoop-master:~# sudo ssh hadoop-slave2
四、安装Cloudera Manager
1.第一种方式:tar.gz软件包的安装
1.配置本地源
①将下载的tar.gz包上传到指定目录下并解压(我把tar.gz包解压到/opt目录下,你们随意)(主节点)
root@hadoop-master:~# tar -zxvf cloudera-manager-xenial-cm5.16.2_amd64.tar -C /opt/
②创建parcle-repo本地CDH源以及parcels目录(所有节点)
root@hadoop-master:~# mkdir /opt/cloudera /opt/cloudera/parcels /opt/cloudera/parcel-repo
③将下载好的CDH离线资源包(parcels)上传到指定(主节点)
#在这里需要将sha1更名为sha否则无法识别
root@hadoop-master:~# mv ~/CDH-5.16.2-1.cdh5.16.2.p0.4-xenial.parcel.sha1 /opt/cloudera/parcel-repo/
root@hadoop-master:~# mv ~/CDH-5.16.1-2.cdh5.16.2.p0.4-xenial.parcel /opt/cloudera/parcel-repo/
root@hadoop-master:~# mv ~/manifest.json /opt/cloudera/parcel-repo/
④将下载好的Mysql驱动上传到指定目录(主节点)
root@hadoop-master:~# mv ~/mysql-connector-java-5.1.28-bin.jar /usr/share/java/
root@hadoop-master:~# mv ~/mysql-connector-java-5.1.28-bin.jar /opt/cm-5.16.2/share/cmf/lib/
2.配置cm数据库账户
1.进入MySQL(主节点)
root@hadoop-master:~# mysql -uroot -p
2.创建数据库(主节点)
①创建语句模板(可根据自己的需求创建相应的数据库)
#其中<database>指数据库名称、<user>指数据库账号、<password>指数据库密码。
root@hadoop-master:~# CREATE DATABASE <database> DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
root@hadoop-master:~# GRANT ALL ON <database>.* TO '<user>'@'%' IDENTIFIED BY '<password>';
②我的创建语句
# 创建scm数据库,账户名为scm,密码为ok。
#-----------------------------------------------------------------------------------------------------#
root@hadoop-master:~# CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
root@hadoop-master:~# GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'ok';
#-----------------------------------------------------------------------------------------------------#
# 创建amon数据库,账户名为amon,密码为ok。
#-----------------------------------------------------------------------------------------------------#
root@hadoop-master:~# CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
root@hadoop-master:~# GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'ok';
#-----------------------------------------------------------------------------------------------------#
# 创建rman数据库,账户名为rman,密码为ok。
#-----------------------------------------------------------------------------------------------------#
root@hadoop-master:~# CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
root@hadoop-master:~# GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'ok';
#-----------------------------------------------------------------------------------------------------#
# 创建hue数据库,账户名为hue,密码为ok。
#-----------------------------------------------------------------------------------------------------#
root@hadoop-master:~# CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
root@hadoop-master:~# GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'ok';
#-----------------------------------------------------------------------------------------------------#
# 创建hive数据库,账户名为hive,密码为ok。
#-----------------------------------------------------------------------------------------------------#
root@hadoop-master:~# CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
root@hadoop-master:~# GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'ok';
#-----------------------------------------------------------------------------------------------------#
# 创建nav数据库,账户名为nav,密码为ok。
#-----------------------------------------------------------------------------------------------------#
root@hadoop-master:~# CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
root@hadoop-master:~# GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'ok';
#-----------------------------------------------------------------------------------------------------#
# 创建oozie数据库,账户名为oozie,密码为ok。
#-----------------------------------------------------------------------------------------------------#
root@hadoop-master:~# CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
root@hadoop-master:~# GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'ok';
#-----------------------------------------------------------------------------------------------------#
③退出MySQL
root@hadoop-master:~# exit;
3.创建scm数据库(主节点)
# 重新配置时,防止scm数据库已经存在而终止执行命令可加参数 -f
# 脚本用来创建和配置CMS需要的数据库。各参数是指:
mysql:数据库用的是mysql,如果安装过程中用的oracle,那么该参数就应该改为oracle。
第一个scm:我们上面创建的数据库名。
第二个scm:我们上面创建的数据库用户名。
ok:我们上面创建的数据库密码。
# 最后四个参数分别是:数据库类型,数据库名,数据库用户名,数据库密码。
root@hadoop-master:~# /opt/cm-5.16.2/share/cmf/schema/scm_prepare_database.sh mysql scm scm ok
4.配置agent(主节点)
root@hadoop-master:~# sudo vim /opt/cm-5.16.2/etc/cloudera-scm-agent/config.ini
# 修改以下内容
server_host修改为cloudera-manager-server节点名
如端口冲突可以再修改下server_port
#--------------------------#
server_host=hadoop-master
server_port=7182
#--------------------------#
5.复制master节点的cm-5.16.2文件夹至slave节点(主节点)
root@hadoop-master:~# sudo scp -r /opt/cm-5.16.2 hadoop-slave1:/opt/
root@hadoop-master:~# sudo scp -r /opt/cm-5.16.2 hadoop-slave2:/opt/
6.创建cloudera-scm用户(所有节点)
root@hadoop-master:~# useradd --system --home=/opt/cm-5.16.2/run/cloudera-scm-server --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
7.更改文件夹所有用户与用户组(所有节点)
root@hadoop-master:~# sudo chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcels
root@hadoop-master:~# sudo chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
root@hadoop-master:~# sudo chown -R cloudera-scm:cloudera-scm /opt/cm-5.16.2
8.启动Cloudera Manager Server和Agent(所有节点)
①启动Cloudera Manager Server
#在hadoop-masterm执行
root@hadoop-master:~# /opt/cm-5.16.2/etc/init.d/cloudera-scm-server start
# 查看运行状态
root@hadoop-master:~# /opt/cm-5.16.2/etc/init.d/cloudera-scm-server status
# 查看server日志
root@hadoop-master:~# tail -f /opt/cm-5.16.2/log/cloudera-scm-server/cloudera-scm-server.log
①启动Cloudera Manager Agent
#在各个节点执行
root@hadoop-master:~# /opt/cm-5.16.2/etc/init.d/cloudera-scm-agent start
# 查看运行状态
root@hadoop-master:~# /opt/cm-5.16.2/etc/init.d/cloudera-scm-agent status
# 查看agent日志
root@hadoop-master:~# tail -f /opt/cm-5.16.2/log/cloudera-scm-agent/cloudera-scm-agent.log
2.第二种方式:apt-get 安装方法
有空补上
3.第三种方式:deb 包的安装方
有空补上式
五.图形化安装
①进入CM管理界面: 通过<主节点ip:7180> 进入
http://172.16.20.11:7180/
# 账号密码均为admin
②选择版本
③选择安装的主机:如果没有启动cloudera-scm-agent服务会出现部分节点不在以管理的主机中,启动再刷新就可以了(图是我偷得,我的已经装好了,所以大家将就下。)
④选择cdh的版本,选择自己下载在parcels-repo包中的cdh版本,这里应该选CDH-5.16.2-cdh5.16.2p0.3(这张也是我偷的图,不过大家知道用法就行了。)
⑤进行集群安装,刚开始可能会出现connect refused 再等待一会应该就会重新进行分配
⑥集群安装检查主机正确性,确保所有验证都为绿色
如果大家出现这个问题可以参考以下说明:
解决方法:在出现问题的节点上运行:echo 10 > /proc/sys/vm/swappiness
echo后面的10 为需要的设置的值。
⑦选择自己需要的服务,我这里先选择HDFS、YARN、Zookeeper这三个。
⑧根据自己的需求与机器状态分配节点
⑨集群设置全部选默认即可
⑩数据库设置(数据库名为之前创建的数据库名,若没有创建你需要的服务所需的数据库,可自行再进行创建。),最后等它启动。