适合国内网速的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. 如果机器较多可以通过配置DNS服务器来解析主机名

  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. 集群间机器无密码ssh登录

说明:

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

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

c. ssh无密码登录原理是生成一对公钥和密钥,把公钥给别人,别人就可有无密码访问自己了。比如A把生成的公钥给B那B就可以无密码访问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上

[[email protected] ~]#scp ~/.ssh/id_rsa.pub
[email protected]:~/.ssh/work02.pub

[[email protected]3
~]# scp ~/.ssh/id_rsa.pub [email protected]:~/.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上

[[email protected]
~]# scp ~/.sshauthorized_keys
[email protected]:~/.ssh/

[[email protected]
~]# scp ~/.sshauthorized_keys
[email protected]3:~/.ssh/

注意:无密码登录只对生成公钥的帐号有效,注意这里产生公钥的帐号要与之后需要远程启动服务的帐号一致

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 安装文件

下载地址: http://archive.cloudera.com/cm5/installer/latest/cloudera-manager-installer.bin

6.2 运行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个文件)

根据6.3得到的地址下载:http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5/RPMS/x86_64/

Name Last modified Size Description


Parent Directory


-


cloudera-manager-agent-5.0.2-1.cm502.p0.297.el6.x86_64.rpm


11-Jun-2014 18:09


3.7M


cloudera-manager-daemons-5.0.2-1.cm502.p0.297.el6.x86_64.rpm


11-Jun-2014 18:09


315M


cloudera-manager-server-5.0.2-1.cm502.p0.297.el6.x86_64.rpm


11-Jun-2014 18:09


8.0K


cloudera-manager-server-db-2-5.0.2-1.cm502.p0.297.el6.x86_64.rpm


11-Jun-2014 18:09


9.6K


enterprise-debuginfo-5.0.2-1.cm502.p0.297.el6.x86_64.rpm


11-Jun-2014 18:09


669K


jdk-6u31-linux-amd64.rpm


11-Jun-2014 18:09


68M


oracle-j2sdk1.7-1.7.0+update45-1.x86_64.rpm


11-Jun-2014 18:09


131M


6.6 手动安装下载的 rpm文件

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)

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();‘ 192.168.1.198 7182

END (0)

BEGIN which wget

/usr/bin/wget

END (0)

BEGIN wget -qO- -T 1 -t 1 http://169.254.169.254/latest/meta-data/public-hostname && /bin/echo

END (4)

说明:

不明白cloudera的初衷,这里已经得到 Cloudera Manager Server的ip了,却还要把ip解析成主机名来连接

由于DNS反向解析没有配置好,根据Cloudera Manager Server 的ip解析主机名却得到了localhost,造成之后的连接错误

这里的解决方案是直接把/usr/bin/host删掉,这样Cloudera Manager就会直接使用 ip进行连接,就没有错了

参考:

cloudera manager 4.8 添加设备DNS反向解析有关问题

http://www.reader8.cn/jiaocheng/20140419/2307406.html


问题 2 NTP:

问题 2.1

问题描述:

Bad Health --Clock Offset

The host‘s NTP service did not respond to a request for the clock offset.

解决:

配置NTP服务

步骤参考:

CentOS配置NTP Server:

http://www.hailiangchen.com/centos-ntp/

国内常用NTP服务器地址及IP

http://www.douban.com/note/171309770/

修改配置文件:

[[email protected] ~]# vim /etc/ntp.conf

# Use public servers from the pool.ntp.org project.

# Please consider joining the pool (http://www.pool.ntp.org/join.html).

server s1a.time.edu.cn prefer

server s1b.time.edu.cn

server s1c.time.edu.cn

restrict 172.16.1.0 mask 255.255.255.0 nomodify   <===放行局域网来源

启动ntp

#service ntpd restart    <===启动ntp服务

客户端同步时间(work02,work03):

ntpdate work01

说明:NTP服务启动需要大约五分钟时间,服务启动之前,若客户端同步时间,则会出现错误“no server suitable for synchronization found”

定时同步时间:

在work02和 work03上配置crontab定时同步时间

crontab -e

00 12 * * * root /usr/sbin/ntpdate 192.168.56.121 >> /root/ntpdate.log 2>&1

问题 2.2

描述:

Clock Offset

  • Ensure that the host‘s hostname is configured properly.
  • Ensure that port 7182 is accessible on the Cloudera Manager Server (check firewall rules).
  • Ensure that ports 9000 and 9001 are free on the host being added.
  • Check agent logs in /var/log/cloudera-scm-agent/ on the host being added (some of the logs can be found in the installation details).

问题定位:

在对应host(work02、work03)上运行 ‘ntpdc -c loopinfo‘

[[email protected] work]# ntpdc -c loopinfo

ntpdc: read: Connection refused

解决:

开启ntp服务:

三台机器都开机启动 ntp服务

chkconfig ntpd on


问题 3 heartbeat:

错误信息:

Installation failed. Failed to receive heartbeat from agent.

解决:关闭防火墙


问题 4 Unknow Health:

Unknow Health

重启后:Request to theHost Monitor
failed.

service --status-all| grep clo

机器上查看scm-agent状态:cloudera-scm-agent dead but pid file exists

解决:重启服务

service cloudera-scm-agent restart

service cloudera-scm-server restart


问题 5 canonial name hostname consistent:

Bad Health

The hostname and canonical name for this host are not consistent when checked from a Java process.

canonical name:

4092 Monitor-HostMonitor throttling_logger WARNING  (29 skipped) hostname work02 differs from the canonical name work02.xinzhitang.com

解决:修改hosts 使FQDN和 hostname相同

ps:虽然解决了但是不明白为什么主机名和主机别名要一样

/etc/hosts

192.168.1.185 work01 work01

192.168.1.141 work02 work02

192.168.1.198 work03 work03


问题 6 Concerning Health:

Concerning Health Issue

--  Network Interface Speed --

描述:The host has 2 network interface(s) that appear to be operating at less than full speed. Warning threshold: any.

详细:

This is a host health test that checks for network interfaces that appear to be operating at less than full speed.

A failure of this health test may indicate that network interface(s) may be configured incorrectly and may be causing performance problems. Use the ethtool
command to check and configure the host‘s network interfaces to use the fastest available link speed and duplex mode.

解决:

本次测试修改了 Cloudera Manager 的配置,应该不算是真正的解决



适合国内网速的CDH5安装,布布扣,bubuko.com

时间: 2024-11-02 23:26:34

适合国内网速的CDH5安装的相关文章

统计代码陷阱之无形中影响了网速

http://www.yilingsj.com/xwzj/2016-08-30/435.html 说起网站统计代码,稍微有过了解的看官肯定会想起一堆统计平台,例如:百度统计.51.la统计.友盟统计等等.而这些统计代码中也是存在陷阱的哦! 一.回顾优化网页常识 通常来说,我们会将js代码置于闭合的</body>前,因为这样做的好处就是:网页是从上往下进行加载的,js放最下面是最后加载,这样可以提升打开网页的速度. 虽然道理看官都懂,不就是将js放最下面嘛,有什么好说的.可看官真的懂??? 二.

提高网速的21个技巧

提高网速的21个技巧 1.去掉无关的选项 在Windows XP中,双击"控制面板"中的"文件夹选项",再单击"查看"标签,然后将鼠标指针滚动至窗口的最下方,可以看到有一个"自动搜索网络文件夹和打印机"项,默认是选中的,将它去掉.这样,当我们打印时,Wi ndows XP不会自作主张去寻找http://局域网上的打印机并安装驱动程序,以防止不经意将机密文档打到别的部门打印机上而自己却还找不到.同时,将此项去掉后,当我们通过&q

使用Python根据网速自动切换网关

公司里装了两条不同的宽带,根据使用的情况,比如拨VPN,或者使用人数过多,网速不行了就要切换下.每次手动去切换很不方便,而且网速也很难判断.这里分享下如何用Python检测网速,然后自动切换网关. 参考原文:How to Change Windows Gateway by Broadband Speed in Python 作者:Xiao Ling 翻译:yushulx 使用speedtest-cli测试网速 相信很多人都用过speedtest.net来测试网络速度,speedtest-cli是

centos 7 上测试网速

下面 我给大家说说 centos 7 上测试网速的一个小工具speedtest Speedtest.net强大而知名的全球宽带网络速度测试网站,采用Flash载入界面,Alexa世界排名非常高,Speedtest.net在全球有数百个测试节点,国内有测速节点几十个.作为一款在线并且可视化的网速测试工具.使用方法简单,无需下载.安装Speedtest.net还推出了命令行下测速工具speedtest.py 就能够实时测试网速. 第一步:下载安装包 wget https://raw.githubus

Ubuntu实时查看网速、CPU、内存等信息

Indicator-Sysmonitor : 好像版本没有下载对,没有办法显示网速 但是百分比的显示非常喜欢..而且还能顺便编辑点字显示 Indicator-Multiload : 下面可以显示很多但是是图形化,百分比就好了干净清晰 sudo add-apt-repository ppa:indicator-multiload/stable-daily sudo apt-get update sudo apt-get install indicator-multiload 参考链接: http:

使用Linux命令行测试网速

使用Linux命令行测试网速http://www.linuxde.net/2014/01/15561.html 当发现上网速度变慢时,人们通常会先首先测试自己的电脑到网络服务提供商(通常被称为"最后一公里")的网络连接速度.在可用于测试宽带速度的网站中,Speedtest.net也许是使用最广泛的. Speedtest.net的工作原理并不复杂:它在你的浏览器中加载JavaScript代码并自动检测离你最近的Speedtest.net服务器,然后向服务器发送HTTP GET and P

ruby on rails 网页上如何实时显示服务器网速?

要在网页上实时显示网速,需要实时请求服务器(由于许多浏览器不支持web socket,这里还是用ajax轮询的方式),这里的服务器以centos为例,使用sysstat,不同的服务器,可能需要不同的软件支持. 一.centos里安装sysstat yum  install sysstat 安装完成后,使用sar -V查看 二.sar的使用 首先使用ifconfig查看使用的网上,确认一个要查看的网卡的名称,这里我使用的是eth0 然后使用sar获取网速: sar -n DEV 1 1 | gre

ios测试基础六:ios模拟不同网速

iOS模拟不同网络速度,模拟2G 3G网速下,检验手机上运行是否正常,各种loading图标使用是否正常等 前提准备: 1. 电脑 上安装 charles或者fiddler 代理软件: 2. iphone真机或模拟器: 操作步骤: 1.将iphone真机绑定 代理,电脑上打开代理软件,比如charles 2. 在charles菜单 栏上 选择 "Proxy"--"Throttle Setting"; 3. 在打开的弹框中,作如下选择,点击"ok"

Ubuntu 14.04 标题栏实时显示上下行网速、CPU及内存使用情况

首先当然是用wget下载indicator-sysmonitor,终端执行命令:wget -c https://launchpad.net/indicator-sysmonitor/trunk/4.0/+download/indicator-sysmonitor_0.4.3_all.deb .下载好后,先不要急于安装,因为软件有些依赖关系还没解决.终端执行:sudo apt-get install python python-psutil python-appindicator 安装依赖.sud