一、准备工作


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

  1. 登陆
  2. 欧拉系统 在线 安装 mysql 8 欧拉操作系统安装_欧拉系统 在线 安装 mysql 8

  3. 勾选然后继续
  4. 欧拉系统 在线 安装 mysql 8 欧拉操作系统安装_CentOS_02

  5. 按需选择,我选择免费
  6. 继续
  7. 因为我们在节点上启动了agent,所以直接点“当前管理的主机”,此时当前管理主机有5个。如果节点上没有CM,只有master上有,这边可以在新主机下去搜索,例如192.168.2.[100-104],但这样最后从节点会去yum在线安装。
  8. 全部勾上,然后继续
  9. 选择版本,然后继续
  10. 开始安装了,等着吧
  11. 好了之后继续
  12. 全部是勾,完美!炒鸡兴奋呀
  13. 集群设置,按需选择
  14. 角色分配,按需分配,我这里选择默认,妈呀第一次不敢乱动
  15. 创建Mysql数据库并测试(按需创建,比如你没选oozie,就不用创建oozie的数据库,如下,其实我们己经在前面安装MYSQL的时候己经建库了