本笔记适用于 CentOS 6.7 + CDH 5.7.0 的部署
1、网络配置及基础组件安装
打开网络,配hostname
1 | vi /etc/sysconfig/network |
1 | NETWORKING=yes |
配置IP地址
1 | vi /etc/sysconfig/network-scripts/ifcfg-eth0 |
网络调通后,安装必要组件
1 | yum install psmisc libxslt-devel |
关闭防火墙
1 | service iptables stop |
2、设置SSH无密码访问
在每台机器上执行
1 | ssh-keygen -t rsa |
一路回车到底
1 | cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys |
把所有机器的key文件放到master机器上
1 | scp /root/.ssh/id_rsa.pub root@master:/root/.ssh/机器名_id_rsa.pub |
在master上
1 | cat /root/.ssh/机器1_id_rsa.pub >> /root/.ssh/authorized_keys |
最终再把authorized_keys放到每台机器上
1 | scp /root/.ssh/authorized_keys root@机器名:/root/.ssh/ |
3、关闭SELINUX(官方文档上有这一步,实陆发现不做也行)
1 | setenforce 0 |
重启
4、安装mysql,建库,hive hue oozie
1 | yum install -y mysql-server mysql mysql-devel |
设置数据库密码
1 | mysql_secure_installation |
建库
1 | create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci; |
5、安装ntp
1 | yum install ntp |
在这里,我们使用master作为集群的时间同步服务器,修改master上的ntp配置
1 | vi /etc/ntp.conf |
首先加上这一句,允许内网的机器从本机同步时间
1 | restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap |
再把原有的server全部注释掉,换成
1 | server 210.72.145.44 perfer |
保存退出后先同步一下时间,再打开ntp服务
1 | ntpdate 202.112.10.36 |
每台机器修改配置,把原有的server全部注释掉
1 | server master |
保存退出后先同步一下时间,再打开ntp服务
1 | ntpdate master |
6、安装jdk,从oracle下载1.7u80下载
1 | rpm -ivh jdk-7u80-linux-x64.rpm |
修改profile
1 | vi /etc/profile |
添加以下内容
1 | export JAVA_HOME=/usr/java/default |
立即应用一下profile
1 | source /etc/profile |
7、下载CDH并部署
下载压缩包:http://archive.cloudera.com/cm5/cm/5/cloudera-manager-el6-cm5.7.0_x86_64.tar.gz
并解压:
1 | tar -xzvf cloudera-manager-el6-cm5.7.0_x86_64.tar.gz |
把解压后的文件夹拷贝至 /opt/cloudera/
1 | mv cloudera cm-5.7.0 /opt/ |
下载三个文件:http://archive.cloudera.com/cdh5/parcels/5.7.0/
1 | CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel |
下载后把 CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha1
重命名为 CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha
再把三个文件拷到/opt/cloudera/parcel-repo/目录中
1 | cp CDH-5.7.0-1.cdh5.7.0.p0.45-el6* manifest.json /opt/cloudera/parcel-repo/ |
我们把CM管理控制台安装在主节点,在master机器上操作
首先把mysql的JDBC驱动文件放到java的lib目录下,因为后面多次会用到,所以个人习惯感觉放这里好一些,
用winscp将 mysql-connector-java-5.1.41-bin.jar
放到 /usr/java/default/lib/和/usr/java/default/jre/lib/
然后在cm管理台的文件夹下创建该驱动文件的链接,后面在别的组件里也会用到
1 | cd /opt/cm-5.7.0/share/cmf/lib/ |
然后初始化数据库
1 | cd /opt/cm-5.7.0/share/cmf/schema/ |
启动CM管理控制台服务端
1 | /opt/cm-5.7.0/etc/init.d/cloudera-scm-server start |
在所有机器上进行Agent配置:
1 | useradd --system --home=/opt/cm-5.7.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm |
创建运行目录
1 | mkdir /opt/cm-5.7.0/run/cloudera-scm-agent |
启动每台机器上的Agent
1 | /opt/cm-5.7.0/etc/init.d/cloudera-scm-agent start |
在每台机器上配置
1 | echo 10 > /proc/sys/vm/swappiness |
修改 /etc/rc.local
1 | vi /etc/rc.local |
在最底下添加
1 | echo never > /sys/kernel/mm/transparent_hugepage/defrag |
8、通过浏览器进行安装
在选择Hosts界面上,输入机器名:
master1,master2,node1,node2,node3,node4,node5
在接下来选择版本的界面上,一定要选
CDH-5.7.0-1.cdh5.7.0.p0.45
,其它都默认,如果选错版本后面又要进入漫长的重新下载过程JDK不要勾,我们已经安装过了
后面一路默认,在
Provide SSH login credentials.
界面输入root登录密码
在安装hive和oozie的过程中,需要输入mysql数据库信息,这时候检查数据库连接会不成功,需要单独处理一下mysql jdbc驱动。
hive 数据库驱动
1 | cd /opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/lib/hive/lib |
oozie 数据库驱动
1 | cp mysql-connector-java-5.1.41-bin.jar /usr/share/java/mysql-connector-java.jar |