转载

CDH 5.x 离线安装 Cloudera

要配置生产环境前,最好严格按照官方文档/说明配置环境。比如,官方说这个安装包用于RETHAT6, CENTOS6,那就要装到6的版本下,不然很容易出现各种各样的错。

配置这个CDH5我入了很多坑,最重要的有2点

1. HP GEN9 DL60服务器装CentOS系统, 开始想装7的版本, 官方只说支持到6. 经过各种折腾确实装好了(后面会单开一章写服务器装CentOS7)

2. CDH暂不官方支持CentOS 7, 查到国外有人是安装成功了,但是会有各种小问题需要息解决. 如7带的是python2.7, 而CDH5还是用的2.6, 所以会有包缺失. 所以最终我还是把我的服务器重装回6.5了

==================准备安装==========================

1. 查看并下载最新的CDH版本: http://archive.cloudera.com/cdh5/parcels/latest/ ( 20150530时还是5.3.3的版本), 如果是CentOS6, 则下载带el6的 .

CDH 5.x 离线安装 Cloudera

需要下载的文件有三个, 对应的parcel, parcel.sha1, manifest.json

下载完.sha1后改后缀为.sha

2. 下载对应的CM版本: http://archive-primary.cloudera.com/cm5/cm/5/ (如上面看到是5.3.3, 则推荐下载对应的版本的CM版本)

CDH 5.x 离线安装 Cloudera

3. 下载oracle java JDK, 我使用的是1.7

http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.rpm

下载完后把这些文件全部上传到局域网内的FTP上 

4. 用记事本准备好会使用的配置, 命令, 可以把下面的内容全部copy下来备用:

hosts文件配置:

192.168.10.250 n1

192.168.10.212 n2

192.168.10.213 n3

192.168.10.214 n4

192.168.10.215 n5

192.168.10.216 n6

192.168.10.217 n7

192.168.10.218 n8

192.168.10.219 n9

我的机器就只有4台, 但hosts文件可多配几个, 以备以后添加时不需要每个机器去修改. 其中n1为namenode, 其于全作为datanode

==================环境设计     ====================

namenode: E5       24G     内存   服务器一台

datanode  :  i5/i7    8G/16G内存   PC      3台

全部安装最小化的CentOS 6.5

==================系统环境准备====================

步骤一, 配置所有节点( 包含 namenode和datanode)

以下操作全部使用root帐户

1. 修改网络配置(所有节点)

1.1 修改hostname

#vi /etc/sysconfig/network

NETWORKING=yes  HOSTNAME=n1

改好后执行: service network restart生效

1.2 修改hosts文件

#vi /etc/hosts

插入上面设计好的hosts文件(必须包含本机IP与主机名的映射)

192.168.10.250 n1 192.168.10.212 n2 192.168.10.213 n3 192.168.10.214 n4 192.168.10.215 n5 192.168.10.216 n6 192.168.10.217 n7 192.168.10.218 n8 192.168.10.219 n9

2. 安装wget工具到所有节点

#yum install wget

3. 安装Java JDK

3.1 下载 JDK

#cd /home

#wget ftp://192.168.10.211/public/jdk-7u79-linux-x64.rpm

3.2 安装 JDK

#rpm -ivh jdk-7u79-linux-x64.rpm

# echo  "JAVA_HOME=/usr/java/latest/" >> /etc/environment

3.3 删除 JDK 安装文件

#rm -rf jdk-7u79-linux-x64.rpm

4. 关闭防火墙和SELinux

4.1 关闭防火墙

#service iptables stop

#chkconfig iptables off

4.2 关闭SELinux

#setenforce 0

#vi /etc/selinux/config

SELINUX=disabled

5. 安装并配置ntp服务

5.1 安装ntp服务(所有节点都安装)

#yum install ntp

5.2 配置ntp服务( 除n1外的节点按下配置 )

删除默认文件配置的server, 仅添加n1

#vi /etc/ntp.conf

restrict default kod nomodify notrap nopeer noquery restrict -6 default kod nomodify notrap nopeer noquery #主节点的主机名或ip server n1

5.3 启动ntp服务

#service ntpd start

#chkconfig ntpd on

6. 安装 mysql connector

#yum install mysql-connector-java.noarch

7. 准备好scm帐户

#useradd --system --home= /opt/cm- 5.3 .3/run/cloudera-scm-server/ --no-create-home --shell= /bin/ false --comment "Cloudera SCM User" cloudera-scm

注意--home=/opt/cm-5.3.3要对应你安装的版本

步骤二, 配置namenode (n1)

1. SSH无密码登录(只需要主机可以无密码登录所有子节点就行了)

1.1 在n1机器生成公钥文件

#ssh-keygen -t rsa

一路回车直到生成密码成功, 如下图:

CDH 5.x 离线安装 Cloudera

1.2 把公钥添加到认证文件中

#cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

1.3 设置认证文件权限(极重要)

#chmod 600 ~/.ssh/authorized_keys

1.4 拷贝认证文件到所有datanode(n2,n3,n4)节点

#scp ~/.ssh/authorized_keys root@n2:~/.ssh/

1.5 测试是否可以无密码登录

#ssh n2

如果没有提示密码, 直接登录了n2则说名配置成功了

2. 安装并配置 mysql

2.1 安装 mysql

#yum install mysql-server

#service mysqld start

#chkconfig mysqld on

2.2 配置 mysql

#mysqladmin -u root password '{psd}'

2.3 准备数据库

#mysql -uroot -p{psd}

#hive create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci; #activity monitor create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

授权数据库访问

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

3. 安装ntp服务

3.1 如第一步骤中的安装方法安装ntp服务

#yum install ntp

3.2 配置ntp服务

#vi /etc/ntp.conf

restrict default nomodify notrap  server 1.cn.pool.ntp.org prefer  server 127.127.1.0 fludge 127.127.1.0 stratum 10

我选的是1.cn.pool.ntp.org这个Server, 每个机房线路可能延迟不太一样, 各自找比较快的ntp的服务.

3.3 启动ntp服务

#service ntpd start

#chkconfig ntpd on

注意: ntp同步一般需要等待5-10分钟, 可用ntpstat命令查看同状态

主节点查看应该如下是个外网地址:

CDH 5.x 离线安装 Cloudera

其它节点查看应该是主节点IP:

CDH 5.x 离线安装 Cloudera

==================准备部署            ====================

以下全在主节点用root帐户操作

1. 从内网FTP上下载CM5, 并解压到/opt

#cd /opt

#wget ftp://192.168.10.211/public/cloudera-manager-el6-cm5.3.3_x86_64.tar.gz

#tar -xzvf cloudera-manager-el6-cm5.3.3_x86_64.tar.gz

2. 准备 Parcels

一定要安装到/opt/cloudera/parcel-repo中

#cd /opt/cloudera/parcel-repo/

#wget ftp://192.168.10.211/public/CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel

#wget ftp://192.168.10.211/public/CDH-5.3.3-1.cdh5.3.3.p0.5-el6.parcel.sha

#wget ftp://192.168.10.211/public/manifest.json

3. 修改agent配置

#vi /opt/cm-5.3.3/etc/cloudera-scm-agent/config.ini

server_host=n1

4. 拷贝agent到各datanode节点(n2-n4)

#scp -r /opt/cm-5.3.3 root@n2:/opt/

5. 初始化数据库

/opt/cm-5.3.3/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p{psd} --scm-host localhost scm scm scm

==================部署           ====================

1. 在namenode启动server和agent( 主节点也是要做到集群中的, 所以主节点也要开启Agent )

#/opt/cm-5.3.3/etc/init.d/cloudera-scm-server start

#/opt/cm-5.3.3/etc/init.d/cloudera-scm-agent start

2. 在所有datanode启动agent

#/opt/cm-5.3.3/etc/init.d/cloudera-scm-agent start

3. 在局域网内访问: http://192.168.10.250:7180/cmf/login, 如果你是windows可以修改hosts文件后用: http://n1:7180/cmf/login

默认帐号密码:admin

选择Free版本

CDH 5.x 离线安装 Cloudera

CDH 5.x 离线安装 Cloudera

4. 选择需要部署的机器

CDH 5.x 离线安装 Cloudera

5. 选择安装包

CDH 5.x 离线安装 Cloudera

6. 部署完成

CDH 5.x 离线安装 Cloudera

7. 服务器检查

CDH 5.x 离线安装 Cloudera

这里有个问题: Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0, 当前设置为 60.

#echo 0 > /proc/sys/vm/swappiness 即可解决。

7.2 JAVA JDK 版本不匹配( 最佳好像是75?), 问题不是很大

8. 选择安装服务

CDH 5.x 离线安装 Cloudera

9. 后面基本一路配置下去直到结束

10. 可能出的错

10.1 Hive还是Hue启动不起来, 提示ImportError: libxslt.so.1 ... 其实真正的错是缺少libxml2. 但是用yum install libxml2并不能解决的, 要用yum install python-libxml2

10.2 HDFS或是别的经常会有启动错误. 不用一直停在那个安装服务界面. 你可以进入http://n1:7180/home, 点Hosts, 然后一个个把节点的role启动起来

正文到此结束
Loading...