Misc Notes

CentOS 6.7 安装 CDH 5.7 笔记

本笔记适用于 CentOS 6.7 + CDH 5.7.0 的部署

1、网络配置及基础组件安装

打开网络,配hostname

1
$ vi /etc/sysconfig/network
1
2
NETWORKING=yes
HOSTNAME=master

配置IP地址

1
$ vi /etc/sysconfig/network-scripts/ifcfg-eth0

网络调通后,安装必要组件

1
$ yum install psmisc libxslt-devel

关闭防火墙

1
2
service iptables stop
chkconfig iptables off

2、设置SSH无密码访问

在每台机器上执行

1
$ ssh-keygen -t rsa

一路回车到底

1
2
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys

把所有机器的key文件放到master机器上

1
$ scp /root/.ssh/id_rsa.pub root@master:/root/.ssh/机器名_id_rsa.pub

在master上

1
2
$ cat /root/.ssh/机器1_id_rsa.pub >> /root/.ssh/authorized_keys
$ cat /root/.ssh/机器2_id_rsa.pub >> /root/.ssh/authorized_keys

最终再把authorized_keys放到每台机器上

1
$ scp /root/.ssh/authorized_keys root@机器名:/root/.ssh/

3、关闭SELINUX(官方文档上有这一步,实陆发现不做也行)

1
2
3
4
$ setenforce 0
```修改文件 `/etc/selinux/config`
```Ini
SELINUX=disabled

重启

4、安装mysql,建库,hive hue oozie

1
2
$ yum install -y mysql-server mysql mysql-devel
$ service mysqld start

设置数据库密码

1
$ mysql_secure_installation

建库

1
2
3
4
5
6
7
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

grant all privileges on *.* to'root'@'master' identified by 'ddssoft' with grant option;
flush privileges;

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
2
3
4
5
6
7
8
9
server 210.72.145.44 perfer
server 202.112.10.36
server 59.124.196.83
restrict 210.72.145.44 nomodify notrap noquery
restrict 202.112.10.36 nomodify notrap noquery
restrict 59.124.196.83 nomodify notrap noquery

server 127.127.1.0
fudge 127.127.1.0 stratum 10

保存退出后先同步一下时间,再打开ntp服务

1
2
3
$ ntpdate 202.112.10.36
$ service ntpd start
$ chkconfig ntpd on

每台机器修改配置,把原有的server全部注释掉

1
2
3
4
5
server master
restrict master nomodify notrap noquery

server 127.127.1.0
fudge 127.127.1.0 stratum 10

保存退出后先同步一下时间,再打开ntp服务

1
2
3
$ ntpdate master
$ service ntpd start
$ chkconfig ntpd on

6、安装jdk,从oracle下载1.7u80下载

1
$ rpm -ivh jdk-7u80-linux-x64.rpm

修改profile

1
$ vi /etc/profile

添加以下内容

1
2
3
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

立即应用一下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
2
3
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
manifest.json

下载后把 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
2
$ cd /opt/cm-5.7.0/share/cmf/lib/
$ ln /usr/java/default/jre/lib/mysql-connector-java-5.1.41-bin.jar ./ -s

然后初始化数据库

1
2
$ cd /opt/cm-5.7.0/share/cmf/schema/
$ ./scm_prepare_database.sh mysql cm -hmaster -uroot -pddssoft --scm-host master scm scm scm

启动CM管理控制台服务端

1
$ /opt/cm-5.7.0/etc/init.d/cloudera-scm-server start

在所有机器上进行Agent配置:

1
2
3
$ useradd --system --home=/opt/cm-5.7.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
$ vi /opt/cm-5.7.0/etc/cloudera-scm-agent/config.ini
$ server_host=master

创建运行目录

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
2
3
4
5
$ echo 10 > /proc/sys/vm/swappiness
$ sysctl -w vm.swappiness=10

$ echo never > /sys/kernel/mm/transparent_hugepage/defrag
$ echo never > /sys/kernel/mm/transparent_hugepage/enabled

修改 /etc/rc.local

1
$ vi /etc/rc.local

在最底下添加

1
2
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

8、通过浏览器进行安装

  • 登录地址:
    http://master1:7180/进行安装配置

  • 在选择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
2
$ cd /opt/cloudera/parcels/CDH-5.7.0-1.cdh5.7.0.p0.45/lib/hive/lib
$ ln /usr/java/default/lib/mysql-connector-java-5.1.41-bin.jar ./ -s

oozie 数据库驱动

1
$ cp mysql-connector-java-5.1.41-bin.jar /usr/share/java/mysql-connector-java.jar