一、准备工作
1、下载安装包,规划三台机器
Cloudera Manager 5.9http://archive-primary.cloudera.com/cm5/cm/5/cloudera-manager-el6-cm5.9.0_x86_64.tar.gz
CDH5.9 主文件http://archive-primary.cloudera.com/cdh5/parcels/5.9.0.23/CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel
CDH5.9 sha文件http://archive-primary.cloudera.com/cdh5/parcels/5.9.0.23/CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1
manifest 文件http://archive-primary.cloudera.com/cdh5/parcels/5.9.0.23/manifest.json
下载后将这些包上传到node1机器的/opt/cdn目录下
2、修改/etc/hosts文件
192.168.233.131 node1
192.168.233.132 node2
192.168.233.133 node3
临时修改主机名
hostname node1
hostname node2
hostname node3
3、均做免密码登陆配置
ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub node1
ssh-copy-id -i /root/.ssh/id_rsa.pub node2
ssh-copy-id -i /root/.ssh/id_rsa.pub node3
4、关闭防火墙
防火墙可能引起Hadoop相关组件之间的通讯,所以关闭它,均执行以下操作。
service iptables stop (临时关闭)
chkconfig iptables off (重启后生效)
关闭SELINUXsetenforce 0临时生效,另外修改修改/etc/selinux/config 下的SELINUX=disabled,重启机器
5、编写shell
实用shell这一小节主要是讲的后续安装过程可能是考虑到各个机器间需要拷贝文件啥的,用脚本的方式批处理,这是破击手文中提到的非常棒的想法,我就照搬不误的啦,在屏幕面前静静滴看着刷刷的快感。
在node1机器root目录下,产生一个nodes文件,文件内容如下,主要将各节点的主机名维护起来
node02
node03
在node1机器root目录下,产生一个scp.sh文件,文件内容如下,输入需要传送的源文件路径与目标机器的存放路径两个参数,路径都是绝对路径。
#!/bin/bash
cat nodes | while read host
do
{
scp -r $1 $host:$2
}&wait
done
6、安装jdk
①都卸载自带jdk
[root@node3 ~]# rpm -qa|grep java
java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
tzdata-java-2013g-1.el6.noarch
java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
[root@node3 ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
[root@node3 ~]# rpm -e --nodeps tzdata-java-2013g-1.el6.noarch
[root@node3 ~]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
②在node1上上传jdk1.8,解压到/usr/local/下
并修改环境变量 vi /etc/profile
export JAVA_HOME=/usr/local/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH
③利用shell拷贝
sh scp.sh /usr/local/jdk1.8/ /usr/local/jdk1.8/
sh scp.sh /etc/profile /etc/
是环境变量生效(全执行)
source /etc/profile
echo "JAVA_HOME=/usr/local/jdk1.8" >> /etc/environment
7、配置yum
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
mv /etc/yum.repos.d/CentOS-Debuginfo.repo /etc/yum.repos.d/CentOS-Debuginfo.repo.bak
mv CentOS-Vault.repo CentOS-Vault.repo.bak
vi /etc/yum.repos.d/CentOS-Media.repo
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/
gpgcheck=1
enabled=1
gpgkey=file:///mnt/RPM-GPG-KEY-CentOS-6
挂载镜像
mount /dev/cdrom /mnt
yum list 查看是否配置yum成功
8、安装mysql
yum -y install mysql-server
chkconfig mysqld on
service mysqld restart
create user 'CDH' identified by '123456';
必须设置远程可登陆
grant all privileges on *.* to CDH@'%' identified by '123456' with grant option;
flush privileges;
9、
设置swap空间
echo "vm.swappiness = 10" >> /etc/sysctl.conf
sh scp.sh /etc/sysctl.conf /etc/
关闭大页面压缩
试过只设置defrag,但貌似个别节点还是会有警告,干脆全部设置,编辑/etc/rc.local,末尾添加如下命令
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
同步到各个节点机器sh scp.sh /etc/rc.local /etc/,然后重启reboot生效。
二、安装CM
1、进入/opt/cdh目录,将CM解压到/opt目录下,不能解压到其他地方,因为cdh5的源会默认在/opt/cloudera/parcel-repo寻找,而CM可以按照个人喜好安装
tar -zxvf cloudera-manager-el6-cm5.9.0_x86_64.tar.gz -C /opt/
mkdir -p /opt/program
mv /opt/cm-5.9.0/ /opt/program/
ln -s /opt/program/cm-5.9.0/ /opt/cm
2、将CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel 和 CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1移动到/opt/cloudera/parcel-repo,这样安装时CM就能直接找到了
mv CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1 /opt/cloudera/parcel-repo/
3、将CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1重命名为CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha(去掉结尾的1),非常重要。我试安装时,这点遗漏了,导致安装CDH的时候一直刷不出5.9版本,通过日志发现,没有manifest.json就会去下载,不能访问外网就报错了,但不影响安装CDH,还是mv一下吧。
mv manifest.json /opt/cloudera/parcel-repo/
cd /opt/cloudera/parcel-repo/
mv CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha1 CDH-5.9.0-1.cdh5.9.0.p0.23-el6.parcel.sha
4、修改配置文件中的server_host,编辑/opt/cm/etc/cloudera-scm-agent/config.ini
server_host=node1
将mysql的JDBC驱动放入CM的lib目录下,下载地址http://dev.mysql.com/downloads/connector/j/,gz和zip都无所谓,最终要的是里面的jar包。解压获得mysql-connector-java-5.1.40-bin.jar上传到集群。
mv mysql-connector-java-5.1.40-bin.jar /opt/cm/share/cmf/lib/
5、为CM创建数据库
/opt/cm/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p123456 --scm-host localhost scm scm scm
6、为每个节点创建cloudera-scm用户,均执行
useradd --system --home=/opt/cm/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
7、接下来其实可以直接在node1上启动服务安装了,但因为其它节点没有CM,最后还是通过远程的yum在线下载再安装,我这设置了内部网络,其它节点是访问不了外网的,所以拷贝CM到其它节点进行完全离线安装。拷贝CM到每个节点,在拷贝之前在其余节点执行mkdir /opt/program
sh scp.sh /opt/program/cm-5.9.0/ /opt/program/cm-5.9.0/
ln -s /opt/program/cm-5.9.0/ /opt/cm (每台机手动执行)
8、 在node1上启动CM的service服务
/opt/cm/etc/init.d/cloudera-scm-server start
在所有节点上面节点上启动CM的agent服务
/opt/cm/etc/init.d/cloudera-scm-agent start
service服务过程需要启动几分钟,这看机器性能,如果用netstat -apn|grep 7180能够查看到端口占用,就可以用浏览器打开http://node1IP:7180/进行访问,登录用户名与密码分别为admin
到此基本上CM的安装启动己完成,接下来就可以用过WEB界面进行安装CDH了,哗啦哗啦,前面安装的步骤到不是很复杂,但安装的东西倒不少
三、图像化安装CDH
- 登陆
- 勾选然后继续
- 按需选择,我选择免费
- 继续
- 因为我们在节点上启动了agent,所以直接点“当前管理的主机”,此时当前管理主机有5个。如果节点上没有CM,只有master上有,这边可以在新主机下去搜索,例如192.168.2.[100-104],但这样最后从节点会去yum在线安装。
- 全部勾上,然后继续
- 选择版本,然后继续
- 开始安装了,等着吧
- 好了之后继续
- 全部是勾,完美!炒鸡兴奋呀
- 集群设置,按需选择
- 角色分配,按需分配,我这里选择默认,妈呀第一次不敢乱动
- 创建Mysql数据库并测试(按需创建,比如你没选oozie,就不用创建oozie的数据库,如下,其实我们己经在前面安装MYSQL的时候己经建库了