如果感兴趣,可以移驾我的博客,原文地址:https://hywelzhang.github.io/2017/11/03/%E9%9B%86%E7%BE%A4%E6%90%AD%E5%BB%BA-CDH%E6%90%AD%E5%BB%BA.html
本方法采用离线安装,需要先下载好cloudera manager和CDH的parcel安装包。
系统为CentOS,jdk版本为1.8,CDH版本5.5.4和5.10.0都安装过,没有区别,所以CDH版本也不影响。
A. 安装jdk
这一步大家都经常接触,很熟悉,所以这里就只大概叙述
- 将下载好的jdk-1.8.tar.gz包解压到指定目录(我习惯是放在/usr/local/java/)
- 配置环境变量,在
/etc/profile
中新增JAVA_HOME,CLASS_PATH,并添加到PATH
export JAVA_HOME=/usr/local/java/jdk1.8.0_65/
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
小备注:配置环境变量的主要目的是将java/bin下边的命令添加到PATH路径,这样能够在任意路径调用java/bin下的执行命令。至于添加CLASS_PATH这个路径是指定java编译运行时可能需要的部分类包的位置>。主要是dt.jar和tools.jar,前者主要是Swing包的运行环境类库,后者主要是工具类库,一般java/bin下的命令实际代码是在这个里边实现的。
source /etc/profile
将配置在当前账户立刻生效。或者重启也可以。
B. SSH免密互信
配置集群间的机器免密互信,可以不用密码进行ssh通信
原理:所谓”公钥登录”,就是用户将自己的公钥储存在远程主机上。登录的时候,远程主机会向用户发送一段随机字符串,用户用自己的私钥加密后,再发回给远程主机。远程主机用事先储存的公钥进行解密>,如果成功,就证明用户是可信的,直接允许登录shell,不再要求密码。
安装SSH服务:
yum install openssh-server
生成公密匙(每台服务器,包含master):
ssh-keygen –t rsa
将每台服务器的公钥(包含master,得到一份完整的authorized_keys)都拷贝到master的
authorized_keys
:
ssh-copy-id master@server
(至此master各节点机器可以无密码登录master)将master上这一份完整的authorized_keys拷贝到各节点机器:
scp ~/.ssh/authorized_keys spark@slave1:~/.ssh/
(实现各机器间可以无密码登录)
C. 修改hostname和hosts,将节点IP和hostname绑定
- 修改hostname(可选)
vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=master
- 修改hosts(/etc/hosts),绑定IP和hostname
127.0.0.1 localhost
(保留本地的对应解析)
192.168.194.128 master
192.168.194.129 slave1
192.168.194.130 slave2
...
D. 关闭防火墙和SELinux
安装CDH