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
~]# .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)

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/

国内经常使用NTPserver地址及IP

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

改动配置文件:

[root@work03 ~]# 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服务

client同步时间(work02,work03):

ntpdate work01

说明:NTP服务启动须要大约五分钟时间,服务启动之前,若client同步时间,则会出现错误“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'

[root@work03 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安装的更多相关文章

  1. Python安装第三方包(模块/工具)出现链接超时,网速慢,安装不上的问题如何解决

    之前我的电脑重新装了系统以后,发现安装完Python后, 使用pip linstall 安装第三方包的时候,网速慢的一匹 有时候只有几百b/s ,而且还动不动就会出现无法安装,链接超时等问题. 今天我 ...

  2. 网速监控-nload

    用来监控系统网卡实时网速的. 安装 yum install nload -y # 或 apt install nload -y 使用 # 直接运行默认监控第一个网卡, 使用上下方向键来切换网卡. nl ...

  3. 基于gulp编写的一个简单实用的前端开发环境好了,安装完Gulp后,接下来是你大展身手的时候了,在你自己的电脑上面随便哪个地方建一个目录,打开命令行,然后进入创建好的目录里面,开始撸代码,关于生成的json文件请点击这里https://docs.npmjs.com/files/package.json,打开的速度看你的网速了注意:以下是为了演示 ,我建的一个目录结构,你自己可以根据项目需求自己建目

    自从Node.js出现以来,基于其的前端开发的工具框架也越来越多了,从Grunt到Gulp再到现在很火的WebPack,所有的这些新的东西的出现都极大的解放了我们在前端领域的开发,作为一个在前端领域里 ...

  4. 【树莓派】Linux 测网速及树莓派源

    这篇文章比较杂,其中包含三点:linux环境中测试网络速度,树莓派下载软件的源,部分我写好的脚本: 一.Linux 测网速 Linux 测网速: sar -n DEV 1 100 1代表一秒统计并显示 ...

  5. 【转】Syncthing – 数据同步利器---自己的网盘,详细安装配置指南,内网使用,发现服务器配置

    Syncthing – 数据同步利器---自己的网盘,详细安装配置指南,内网使用,发现服务器配置 原贴:https://www.cnblogs.com/jackadam/p/8568833.html ...

  6. Syncthing – 数据同步利器---自己的网盘,详细安装配置指南,内网使用,发现服务器配置

    简介: 无论办公.文件共享.团队协作还是家庭照片.视频.音乐.高清电影的存储,我们常常都有文件同步和存储的需求.但随着国内各大网盘的花式阵亡或限速,早已没什么好选择了.好吧,我已经转战使用onedri ...

  7. linux上限值网速、限值带宽

    Linux操作系统中的流量控制器TC(Traffic Control)用于Linux内核的流量控制,主要是通过在输出端口处建立一个队列来实现流量控制. Linux流量控制的基本原理如下图所示. 接收包 ...

  8. 提升网速的路由器优化方法(UPnP、QoS、MTU、交换机模式、无线中继)

    在上一篇<为什么房间的 Wi-Fi 信号这么差>中,猫哥从微波炉.相对论.人存原理出发,介绍了影响 Wi-Fi 信号强弱的几大因素,接下来猫哥再给大家介绍几种不用升级带宽套餐也能提升网速的 ...

  9. [转]搬瓦工教程之九:通过Net-Speeder为搬瓦工提升网速

    搬瓦工教程之九:通过Net-Speeder为搬瓦工提升网速 有的同学反映自己的搬瓦工速度慢,丢包率高.这其实和你的网络服务提供商有关.据我所知一部分上海电信的同学就有这种问题.那么碰到了坑爹的网络服务 ...

随机推荐

  1. R语言学习 - 线图绘制

    线图是反映趋势变化的一种方式,其输入数据一般也是一个矩阵. 单线图 假设有这么一个矩阵,第一列为转录起始位点及其上下游5 kb的区域,第二列为H3K27ac修饰在这些区域的丰度,想绘制一张线图展示. ...

  2. 梦想MxWeb3D协同设计平台 2019.01.24更新

    SDK开发包下载地址:http://www.mxdraw.com/ndetail_10124.html1.  编写快速入门教程2.  重构前端代码,支持一个页面多个三维控件同时加载,或二维和三维同时加 ...

  3. 有关bash,我希望我能知晓的十件事

    简介 我之前的一篇文章比我预想的更受欢迎,因此我想再写一篇文章来介绍一些不太知名的bash功能 正如之前所言,由于我觉得bash是一种要经常使用(且需理解)的技术,所以我在研究bash时写了一本书.虽 ...

  4. BZOJ1509: [NOI2003]逃学的小孩 (树形DP)

    题意:给一棵树 选三个点A,B,C 求A到B的再从B到C的距离最大值 需要满足AB的距离小于AC的距离 题解:首先树上的最大距离就想到了直径 但是被样例误导了TAT BC两点构成了直径 我一开始以为A ...

  5. 洛谷——P2590 [ZJOI2008]树的统计(树链剖分模板练手)

    P2590 [ZJOI2008]树的统计 I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问 ...

  6. Python学习笔记(3)动态类型

    is运算符 ==是值相等而is必须是相同的引用才可以 l=[1,2,3] m=[1,2,3] print(l==m) # True print(l is m) # False sys模块 getref ...

  7. python3接口测试某个模块的很多接口有的用post有的用get

    没啥好说的,啊哈哈  大神提示可以判断下用post还是get,但是加到哪里合适呢?仔细看认真看 耶耶耶

  8. 使用js将Unix时间戳转换为普通时间

    var unixtime=1358932051;formatTime (time) { let unixtime = time let unixTimestamp = new Date(unixtim ...

  9. BZOJ 4385 洛谷3594 POI2015 WIL-Wilcze doły

    [题解] 手残写错调了好久QAQ...... 洛谷的数据似乎比较水.. n个正整数!!这很重要 这道题是个类似two pointer的思想,外加一个单调队列维护当前区间内长度为d的子序列中元素之和的最 ...

  10. 《hello-world》第八次团队作业:Alpha冲刺

    项目 内容 这个作业属于哪个课程 2016级计算机科学与工程学院软件工程(西北师范大学) 这个作业的要求在哪里 实验十二 团队作业8:软件测试与Alpha冲刺 团队名称 <hello--worl ...