适合国内网速的CDH5安装

Posted lxjshuju

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了适合国内网速的CDH5安装相关的知识,希望对你有一定的参考价值。

0.集群规划

说明:因为CDH能够方便的动态加入删除主机,动态改变主机上的服务,所以后面再对各机器上跑得服务进行分配。


共三台机器

操作系统: centos6.5

机器名work01、work02、work03

work03执行Cloudera Manager

1.关闭防火墙 和 SELinux

  
说明:假设不关闭集群间通信可能会出问题,造成服务不能正常启动。

生产环境假设要做为在线服务还是须要。

  1.1 关闭防火墙:

    service iptables stop (暂时关闭)

    chkconfig iptables off(重新启动后生效)

  1.2 关闭SELINUX:

    setenforce 0 (暂时生效)(这种方法我没有执行成功)  

    改动 /etc/selinux/config 下的 SELINUX=disabled (重新启动后永久生效 )该方法測试有效。

             查看selinux状态:/usr/sbin/sestatus -v

注意:三台机器都须要进行同样操作

2. FQDN 改动主机名

说明:

a. 三台机器都须要进行同样操作

b./etc/sysconfig/network 配置相应的主机名

c./etc/hosts 三台机器内容同样,来实现三台机器相互能够通过主机名訪问

d. 假设机器较多能够通过配置DNSserver来解析主机名


  1)改动/etc/sysconfig/network文件

NETWORKING=yes    

HOSTNAME=work01

  2)改动/etc/hosts文件

192.168.1.185 work01 work01
192.168.1.141 work02 work02
192.168.1.198 work03 work03

  3)重新启动网络服务后生效:service network restart 

       測试中重新启动网络服务会断网,并且不会自己主动连接。须要点击一下连接图标才干再次连接,请慎重操作

3. 集群间机器无passwordssh登录

说明:

a. 机器之间会通过ssh拷贝一些文件,发送一些服务启动命令,建立集群间的无passwordssh登录,不用你每次启动服务都输入一大堆password了。

b. 貌似Cloudera Manager已经管理登录password了。这一步可能能够跳过,感兴趣的能够试试。

c. ssh无password登录原理是生成一对公和密钥,把公给别人。别人就可有无password訪问自己了。比方A把生成的给B那B就能够无password訪问A了。

d.生成的公id_rsa.pub要訪问的机器保存在authorized_keys文件里

e.为了保存多台机器的公钥,以追加的方式加入到authorized_keys

1)work01机器上切换root帐号

su

2)生成root帐号在work01上的密钥和公钥

ssh-keygen -t rsa

一路回车下去生成公钥id_rsa.pub和密钥id_rsa

3)生成root帐号在work02、work03上的密钥和公钥

4)将work02和work03上的公钥文件复制到work01上

 [root@work02 ~]#scp ~/.ssh/id_rsa.pub root@work01:~/.ssh/work02.pub

 [root@work03 ~]# scp ~/.ssh/id_rsa.pub root@work01:~/.ssh/work03.pub

拷贝时注意区分文件名称

5)将work01、work02和work03三台机器的公钥都增加work01的authorized_keys文件里

catid_rsa.pub >>authorized_keys

cat work02.pub >>authorized_keys

catwork03.pub >>authorized_keys

6)将work01上的authorized_keys文件复制到work02、work03上

 [root@work01 ~]# scp ~/.sshauthorized_keys root@work02:~/.ssh/

 [root@work01 ~]# scp ~/.sshauthorized_keys root@work03:~/.ssh/

注意:无password登录仅仅对生成公钥的帐号有效。注意这里产生公钥的帐号要与之后须要远程启动服务的帐号一致


4.yum源配置

说明:系统自带的yum源在国外。安装软件时会非常慢,配置国内的yun源,能够提高安装速度

1)进入yum源配置文件夹

cd /etc/yum.repos.d

2)备份系统自带的yum源

mv CentOS-Base.repo CentOS-Base.repo.bk

3)下载163的yum源:

wget http://mirrors.163.com/.help/CentOS-Base-163.repo

mv CentOS6-Base-163.repo CentOS-Base.repo

3)更新完yum源后,运行下边命令更新yum配置,使操作马上生效

yum makecache

yum clean all


5. 下载CDH parcels安装包

说明:
a. centos 6.x应用的CDH版本号为CDH-xxxx-
el6.parcel,centos 5.x应用的CDH版本号为CDH-xxxx-el5.parcel
b. Cloudera Manager 会自己主动下载该文件,因为网速问题下载过程非常慢,可能持续数个小时。并且一旦出错会从头下载,提前下载能够加快安装速度。配置方法第7步介绍


下载链接:http://archive.cloudera.com/cdh5/parcels/latest/

下载  CDH-5.1.0-1.cdh5.1.0.p0.53-el6.parcel

和 manifest.json


6. 安装 Cloudera Manager

说明:

a. Cloudera Manager的安装文件会自己主动下载所须要的rpm文件。可是因为这些文件的yum源在国外所以安装过程非常慢,因此这里通过手动下载这些rpm文件来提高下载速度。

b. 须要先执行Cloudera Manager的安装文件得到须要的rpm文件的地址

6.1下载cloudera Manager 安装文件 

chmod u+x cloudera-manager-installer.bin
./cloudera-manager-installer.bin

6.3 得到须要安装的rmp文件的下载地址

1)进入 yum 源文件夹

cd /etc/yum.repos.d

2)查看cloudera-manager yum 源文件是否已经下载下来

多了一个 cloudera-manager.repo 文件

3)得到rpm下载地址

cat cloudera-manager.repo

当中rpm下载地址为:baseurl=http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5/

6.4 关闭Cloudera Manager安装向导

1)关闭 cloudera-manager-installer.bin

2)杀掉 Cloudera Manager安装向导 启动的yum进程

ps aux|grep yum(得到cm安装向导启动的yum的进程号)

kill xxxx      (按进程号杀掉对应进程)


6.5 手动下载对应的rpm文件(一共7个文件)


yum localinstall --nogpgcheck *.rpm

6.7 再次执行Cloudera Manager安装文件

执行中出现了两个错误,各自是:

        1)问题描写叙述:fatal erro

    解决方法:rm -rf /usr/share/cmf/

        2)问题描写叙述:Installation failed. Failed to start Embedded Service and Configuration Database,See vim /var/log/cloudera-manager-installer/5.start-embedded-db.log for details.

                 bash: /usr/share/cmf/bin/initialize_embedded_db.sh: No such file or directory

           解决方法:重新启动安装向导错误没有复现


7. 配置CDH parcels包

说明:

a. 使用Cloudera Manager安装CDH 也有两种方式,一种是使用rpm包,还有一种是使用parcels包,本測试使用parcels包

b. Cloudera Manager 会自己主动下载须要的parcels包,可是由于连接的是国外网站速度会非常慢

c. 配置第5步下载的CDH parcels文件能够使Cloudera Manager直接读取本地的parcels文件

7.1 将前面下载的CDH parcels文件放到 /opt/cloudera/parcel-repo 文件夹下

7.2 生成相应的sha文件

1)在第5步下载的 manifest.json 文件里依照版本号“CDH-5.1.0-1.cdh5.1.0.p0.53-el6.parcel”找到相应的 hash值

"hash": "67fc4c86b260eeba15c339f1ec6be3b59b4ebe30"

2)hash值保存在sha文件里

echo \'67fc4c86b260eeba15c339f1ec6be3b59b4ebe30\'>CDH-5.1.0-1.cdh5.1.0.p0.53-el6.parcel.sha


8. 启动Cloudera Manager

说明:
a. 依照Cloudera Manager安装向导的提示在浏览当中打开Cloudera Manager
b. 第一次启动会有CDH安装向导。依照向导来进行配置就可以

安装中出现例如以下问题,详细解决方案见 “问题列表” 问题1:
python -c \'import socket; import sys; s = socket.socket(socket.AF_INET); s.settimeout(5.0); s.connect(("localhost", int(7182))); s.close();\'


9. 加入服务

说明:
a. 本次測试仅仅安装了HDFS和HBase
b. 能够使用Cloudera Manager高速的加入和卸载服务
c. 加入服务时会提示依赖的服务是否已经安装

參考文档:

说明:尽量把全部的參考文档都列了出来,假设有遗漏欢迎提醒。

Cloudera Manager 和CDH 4 终极安装http://www.tuicool.com/articles/AnuiUra

C​l​o​u​d​e​r​a​M​a​n​a​g​e​r​和​C​D​H​4​安​装:http://wenku.baidu.com/link?

url=SOOI3r56NN7Un55Z3jsNprQp9PpOc-F8_ByXPJ7v4GJmAioEMLM6vL0Hkc2c0HSxztlWWvPOA13Grs1vf2-0wJdbueQfbEAvuNbGIldxxou

CDH套件半手动安装流程http://www.douban.com/note/352772895/

使用yum安装CDH Hadoop集群(cdh5 禁用ipv6、hostname设置、设置yum源、时钟同步): http://blog.javachen.com/2013/04/06/install-cloudera-cdh-by-yum/ 

查看 SELinux状态及关闭SELinux:http://bguncle.blog.51cto.com/3184079/957315

CentOS6.5中改动yum源:http://www.cnblogs.com/liuling/p/2014-4-14-001.html


问题列表:





问题 1 PTR localhost

描写叙述:

DNS反向解析错误,不能正确解析Cloudera Manager Server主机名
日志:
Detecting Cloudera Manager Server...
Detecting Cloudera Manager Server...

BEGIN host -t PTR 192.168.1.198

198.1.168.192.in-addr.arpa domain name pointer localhost. 

END (0) 

using localhost as scm server hostname 

BEGIN which python 

/usr/bin/python 

END (0) 

BEGIN python -c \'import socket; import sys; s = socket.socket(socket.AF_INET); s.settimeout(5.0); s.connect((sys.argv[1], int(sys.argv[2]))); s.close();\' localhost 7182

Traceback (most recent call last): 

File "<string>", line 1, in <module> 

File "<string>", line 1, in connect 

socket.error: [Errno 111] Connection refused

END (1) 

could not contact scm server at localhost:7182, giving up 

waiting for rollback request


不优雅的解决方式:

将连不上的机器 /usr/bin/host 文件删掉

BEGIN host -t PTR 192.168.1.198

/tmp/scm_prepare_node.8OX5y7is/scm_prepare_node.sh: line 100: /usr/bin/host: 权限不够

END (126) 

BEGIN which python 

/usr/bin/python 

END (0)