前言一、安装配置虚拟机
(1)安装1个master和2个slave节点(2)配置主机名称(3)建立ip映射(4)配置免密登录(5)关闭防火墙(6)关闭selinux 二、安装Java三、安装MySQL四、配置ntp服务五、安装CM六、在浏览器安装CDH
前言本文涉及到的资源如下:
(1)CM-5.16.1
(2)CDH-5.16.1
官网下载链接:https://archive.cloudera.com/cm5/repo-as-tarball/5.16.1/
但是官网现在已经不提供开源下载资源
资源来自:https://xiaoguaiguai.blog.csdn.net/article/details/115181682
(3)VMware
https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html
(4)CentOS 7 映像文件
http://mirrors.aliyun.com/centos/7/isos/x86_64/
(5)Java
https://www.java.com/zh-CN/download/linux_manual.jsp
(6)MySQL
在终端用命令下载
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-5.6.22-1.el6.i686.rpm-bundle.tar
(7)mysql-connector-java
https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.46/
安装步骤参考了多篇文章,感谢各位大佬的分享:
https://blog.csdn.net/czz1141979570/article/details/86658416
https://www.cnblogs.com/zhangleisanshi/p/7575579.html
https://www.cnblogs.com/frankdeng/p/10136230.html
https://blog.csdn.net/u010452388/article/details/102822956
VMware及CentOS安装步骤参考:https://blog.csdn.net/m0_50519965/article/details/116175873
按照以上步骤安装好虚拟机之后会遇到以下几个问题:
1.在CM上安装主节点parcel的时候提示磁盘空间不足,因此建议master节点的磁盘空间增加到40G或60G,我的配置是
| 内存 | 磁盘 | ||
|---|---|---|---|
| master | 8G | 60G | Server&Agent |
| slaver1slaver2 | 2G | 20G | Agent |
2.网络ping不通
首先主机查看VMnet8的ip
Windows命令行:ipconfig
注意IPv4地址
在VMware中
“编辑”选项卡下“虚拟网络编辑器”
关闭DHCP,将IP固定,与IPv4地址设置为同一网段
点击NAT设置按钮,修改网关地址
进入机器设置网络连接
如下图,IPv4设置为Manual,DNS为8.8.8.8;
设置ip、子网掩码、网关、DNS等参数,ip与NAT里的网段一致,网关同NAT一样
配置网络文件
vim /etc/sysconfig/network-scripts/ifcfg-ens33
将BOOTPROTO改为static,设置ip、子网掩码、网关、DNS等参数
重启网络服务:service network restart
用ping www.baidu.com检查是否连通网络,如下图已成功
slave节点配置同上
XShell可以将输入的命令发送到所有回话,后续的操作我都在XShell7上进行,关于xshell的使用这里暂不展开叙述
vim /etc/sysconfig/network
NETWORKING=yes HOSTNAME=master
查看主机名hostname(文件修改后没有重启主机名没有生效,可以用hostname临时生效)
(3)建立ip映射vim /etc/hosts 192.168.100.128 master 192.168.100.129 slaver1 192.168.100.130 slaver2(4)配置免密登录
ssh-keygen -t rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys
同理在slave1和slave2节点上进行相同的操作,然后将公钥复制到master节点上的authoized_keys
将master的文件远程传输到其他节点
scp ~/.ssh/authorized_keys root@slave1:~/.ssh/(5)关闭防火墙
systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动 service firewalld status #查看防火墙状态
注:有的文章中用命令stop iptables.service,在CentOS7中默认使用firewall作为防火墙,所以iptables命令并不起作用。防火墙未关闭会导致后面ntp无法开启。
(6)关闭selinuxvim /etc/selinux/config SELINUX=disabled二、安装Java
下载压缩包上传并解压
https://www.java.com/zh-CN/download/linux_manual.jsp
tar zxvf jre-8u321-linux-x64.tar.gz
在/etc/profile文件里添加jdk路径
vim /etc/profile
在profile这个文件末尾增加这几行代码:
export JAVA_HOME=/software/jre1.8.0_321 #jar包解压的目录 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin export JRE_HOME=$JAVA_HOME/jre
使配置文件生效
source /etc/profile
查看java版本
java -version三、安装MySQL
官网下载MySQL安装包后启动报错,好多文章说CentOS7不支持MySQL了,建议直接安装mariadb,如https://blog.csdn.net/miaodichiyou/article/details/99289160
systemctl start mysql.service Failed to start mysqld.service: Unit not found
不过按照这篇文章wget命令下载并安装的方式还是成功了
https://blog.csdn.net/u011174699/article/details/93782631
进入MySQL创建数据库
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci; create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;四、配置ntp服务
修改配置文件ntp.conf
vim /etc/ntp.conf
启用restrice,修改网段,将这行的注释去掉
restrict 192.168.100.0 mask 255.255.255.0 nomodify notrap
注释掉server域名配置
#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 cn.ntp.org.cn iburst server 127.127.1.0 fudge 127.127.1.0 stratum 10
修改配置文件ntpd
vim /etc/sysconfig/ntpd
添加一行配置
SYNC_CLOCK=yes
启动ntp服务
chkconfig ntpd on chkconfig ntpdate on
配置其他机器的同步
在ntp.conf文件中添加
server master iburst
通过contab进行定时同步
查看ntp状态
systemctl list-unit-files | grep ntp五、安装CM
(1)首先上传cm包到所有节点,并解压到指定目录
mkdir /opt/cloudera-manager tar -axvf cloudera-manager-centos7-cm5.16.1_x86_64.tar.gz -C /opt/cloudera-manager
(2)在所有节点创建cloudera-scm用户
useradd --system --home=/opt/cloudera-manager/cm-5.16.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
–system 创建一个系统账户
–home 指定用户登入时的主目录,替换系统默认值/home/<用户名>
–no-create-home 不要创建用户的主目录
–shell 用户的登录 shell 名
–comment 用户的描述信息
(3)配置从节点cloudera-manger-agent指向主节点服务器
vim /opt/cloudera-manager/cm-5.16.1/etc/cloudera-scm-agent/config.ini
将server_host改为master
(4)主节点上配置CM的数据库
1.上传mysql-connector-java
mkdir /usr/share/java/ cp mysql-connector-java-5.1.46-bin.jar /usr/share/java mv /usr/share/java/mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar
注:jar包名称要修改为mysql-connector-java.jar
2.在mysql中创建cm库
/opt/cloudera-manager/cm-5.16.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hmaster -uroot -p123 --scm-host master scm scm scm
mysql:数据库用的是mysql cm:表示在mysql中创建cm数据库
-h:Database host 表示安装数据库的主机名
-u:Database username
-p:Database Password
–scm-host master :cm安装的主机,一般也是mysql安装的主机
最后三个参数是:数据库名,数据库用户名,数据库密码
执行这行命令后,可能会遇到用户权限问题,解决办法可以参考:https://blog.csdn.net/qq_38617531/article/details/83344734
执行完创建cm库的命令后,看到以下信息表明命令操作是成功的
All done, your SCM database is configured correctly!
(5)主节点上创建parcel-repo目录
mkdir -p /opt/cloudera/parcel-repo chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
将CDH的相关文件上传到目录/opt/cloudera/parcel-repo
CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha1 manifest.json
注:其中CDH-5.7.2-1.cdh5.7.2.p0.18-el5.parcel.sha1 后缀要把1去掉
mv CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha1 CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha
(6)所有节点上创建parcels目录
mkdir -p /opt/cloudera/parcels chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
(7)启动主节点cloudera-scm-server
cp /opt/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-server /etc/init.d/cloudera-scm-server chkconfig cloudera-scm-server on
vi /etc/init.d/cloudera-scm-server
修改
CMF_DEFAULTS=${CMF_DEFAULTS:-/etc/default}
为
CMF_DEFAULTS=${CMF_DEFAULTS:-/opt/cloudera-manager/cm-5.16.1/etc/default}
查看状态,如果2-5显示开启表示配置成功
chkconfig --list cloudera-scm-server
启动,并在开机启动脚本中加入命令,保证每次重启都能启动
service cloudera-scm-server start
vim /etc/rc.local service cloudera-scm-server restart
(8)所有节点上启动cloudera-scm-agent
mkdir /opt/cloudera-manager/cm-5.16.1/run/cloudera-scm-agent cp /opt/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-agent /etc/init.d/cloudera-scm-agent chkconfig cloudera-scm-agent on
vim /etc/init.d/cloudera-scm-agent
将
CMF_DEFAULTS=${CMF_DEFAULTS:-/etc/default}
修改为
CMF_DEFAULTS=${CMF_DEFAULTS:-/opt/cloudera-manager/cm-5.16.1/etc/default}
启动,并在开机启动脚本中加入命令,保证每次重启都能启动
service cloudera-scm-agent start
vim /etc/rc.local service cloudera-scm-agent restart
查看端口被占用表示安装成功
netstat -anp | grep 7180六、在浏览器安装CDH
(1)配置Windows hosts文件
C:WindowsSystem32driversetchosts
192.168.100.128 master
192.168.100.129 slaver1
192.168.100.130 slaver2
(2)进入主节点ip:7180
192.168.100.128:7180
默认使用admin admin登录
选择第一个免费版
由于我之前已经安装完成,后面步骤无法再复现截图,以下图片及操作来自:https://blog.csdn.net/czz1141979570/article/details/86658416
可以直接跳转到此博文操作,为了方便阅读我也截图过来了
我在CDH分配的时候有遇到“主机运行状态不良”的提示,解决办法:
https://blog.csdn.net/u011031430/article/details/74057601
删除每个节点的cm_guid文件,然后进入init.d目录重启agent服务
rm -f /opt/cloudera-manager/cm-5.16.1/lib/cloudera-scm-agent/cm_guid cd /opt/cloudera-manager/cm-5.16.1/etc/init.d ./cloudera-scm-agent restart
由于前面配置了ntp时间同步,所以没有时间不同步的问题



