CDH 5.x 离线安装指南

简述


hadoop 体系衍生了许多商业发行版,其中国内最常用的是 CDH。CDH是在原生 apache hadoop 的基础上封装的发行版,拥有 Cloudera Manager (简称CM,是一个管理、监控CDH运行的软件),将 hadoop 集群很好的监控和管理了起来,目前 CDH 最高版本是 5.7.x,对应 apache hadoop 2.7.x,这里我们采用 CDH 5.7.0。其安装的简要说明及系统要求见以下链接:
Download Cloudera Manager

CDH 的安装相比原生 hadoop 安装,将会少敲很多命令,少写很多配置文件,但是在过程中许多步骤都需要用到 root 权限。整个安装过程,大致上可以分成两个步骤:首先是先安装 CM 控制台(即一个web管理界面),然后通过 CM 来安装 CDH。也就是说,整个CDH集群的安装,是可以在CM界面上进行操作的,包括后面添加节点,也是在CM界面上进行操作。

搭建过程


系统环境

CentOS release 6.5 x64
CDH 5.7.0
三台主机节点,内存都为10G

节点角色说明
IP 主机名 角色描述
10.1.2.126 hadoop01 CM, Agent
10.1.2.142 hadoop02 Agent
10.1.2.144 hadoop03 Agent

一开始可能只有一台机器,那么本文的的所有安装步骤可以先只在其中一台机器上操作,那么这台机器也就是主控节点了,因为这台机器上将会安装CM,那么以后集群添加其他机器便可以在CM上操作了。例如,选择 hadoop01 作为主控节点,hadoop02和hadoop03 当做受控节点,那么仅需要在 hadoop01 节点上执行本文的所有安装步骤。等安装完成,CM界面可以正常打开运行,再添加 hadoop02和hadoop03 节点。

配置主机域名
  • 分别在每一台主机上操作
  • 方法1:
sudo vim /etc/sysconfig/network
HOSTNAME=hadoop01
# 修改 HOSTNAME 为该节点主机名,例如 hadoop01
# 然后重新启动即可
  • 方法2:
sudo vim /etc/hostname # centos系统可能没有该文件,创建即可
hadoop01 # 该节点主机名

将该文件内容修改为对应的主机名,例如 hadoop02

域名解析
  • 配置 /etc/hosts,将以下代码追加到文件末尾即可
  • 分别在所有三台主机上操作
sudo vim /etc/hosts
10.1.2.126 hadoop01 
10.1.2.142 hadoop02 
10.1.2.144 hadoop03

!!! Ubuntu系统,须删掉 /etc/hosts 映射 127.0.1.1/127.0.0.1 !!!
Check that there isn't an entry for your hostname mapped to 127.0.0.1 or 127.0.1.1 in /etc/hosts (Ubuntu is notorious for this).
127.0.1.1 h01.vm.com # must remove

不然可能会引起 hadoop、zookeeper 节点间通信的问题

服务器安全配置
  • 分别在所有三台主机上操作
  • 关闭 iptables (如果不允许关闭,则采用配置 iptables 策略的方法)
service iptables stop    # 临时关闭
chkconfig iptables off  # 永久关闭 重启后生效
# ACCEPT=允许  DROP=拒绝

# 443
iptables -A INPUT -p tcp -s 10.1.2.0/24 --dport 443 -j ACCEPT # 允许10.1.2.0的IP访问本机443端口
iptables -A OUTPUT -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT # 允许443端口出

# zookeeper
iptables -A INPUT -p tcp -s 10.1.2.0/24 --dport 2181 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 2181 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -s 10.1.2.0/24 --dport 2888 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 2888 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -s 10.1.2.0/24 --dport 3888 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 3888 -m state --state ESTABLISHED -j ACCEPT

# yarn

# 重启 iptables
service iptables save
service iptables restart
  • 关闭 SELinux
setenforce 0 # 临时生效
sudo vim /etc/selinux/config
SELINUX=disabled
# 将 SELINUX 设置为 disabled 即永久关闭了 SELinux
配置免密码ssh登录

hadoop 主节点需要能远程登陆集群内的所有节点(包括自己),以执行命令。所以需要配置免密码的ssh登陆。可选的ssh秘钥对生成方式有rsa和dsa两种,这里选择rsa。

  • 分别所有节点操作
ssh-keygen -t rsa
# 注意在接下来的命令行交互中,直接按回车跳过输入密码
  • 分别在所有节点操作:以下命令将本节点的公钥 id_rsa.pub 文件的内容追加到远程主机的 authorized_keys 文件中(默认位于 ~/.ssh/)
ssh-copy-id root@hadoop01 # root是远程主机用户名
ssh-copy-id root@hadoop02
ssh-copy-id root@hadoop03
  • 在每个节点上测试无密码 ssh 登录到 hadoop01 hadoop02 hadoop03
ssh hadoop01
ssh hadoop02
ssh hadoop03

!!! 注意使用rsa模式生成密钥对时,不要轻易覆盖原来已有的,确定无影响时方可覆盖 !!!

安装jdk(在所有节点操作)
  1. 先查询看系统是否已安装 openjdk
sudo rpm -qa openjdk
  1. 卸载 openjdk
sudo rpm -e --nodeps 上面步骤找到的包名
...
  1. 安装 jdk
# jdk-7u67-linux-x64.rpm 需要事先下载好
sudo rpm -ivh jdk-7u67-linux-x64.rpm
  1. 配置环境变量
sudo vim /etc/profile
# 在该文件末尾添加以下行
JAVA_HOME=/usr/java/jdk1.7.0_67
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/jt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME PATH CLASSPATH
  1. 使环境变量立即生效
source /etc/profile
  1. 测试jdk安装是否成功
java -version
# 如显示了jdk的版本,则安装成功
时间同步:在内网中搭建 ntp 服务器
  1. 安装 ntp(在所有节点操作)
sudo yum install ntp
  1. 设置NTP服务开机启动(在所有节点操作)
chkconfig ntpd on
chkconfig --list ntpd
# 2-5为on即成功
  1. 配置主节点(在 hadoop01 操作)
vim /etc/ntp.conf

该配置文件全部内容如下

driftfile /var/lib/ntp/ntp.drift #草稿文件

# Hosts on local network are less restricted.
# 允许内网其他机器同步时间
restrict 10.1.2.0 mask 255.255.255.0 nomodify notrap
 
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# 中国这边最活跃的时间服务器 : [http://www.pool.ntp.org/zone/cn](http://www.pool.ntp.org/zone/cn)
server 210.72.145.44 perfer   # 中国国家受时中心
server 202.112.10.36             # 1.cn.pool.ntp.org
server 59.124.196.83             # 0.asia.pool.ntp.org
 
#broadcast 192.168.1.255 autokey        # broadcast server
#broadcastclient                        # broadcast client
#broadcast 224.0.1.1 autokey            # multicast server
#multicastclient 224.0.1.1              # multicast client
#manycastserver 239.255.254.254         # manycast server
#manycastclient 239.255.254.254 autokey # manycast client
 
# allow update time by the upper server 
# 允许上层时间服务器主动修改本机时间
restrict 210.72.145.44 nomodify notrap noquery
restrict 202.112.10.36 nomodify notrap noquery
restrict 59.124.196.83 nomodify notrap noquery
 
# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available. 
# 外部时间服务器不可用时,以本地时间作为时间服务
server  127.127.1.0     # local clock
fudge   127.127.1.0 stratum 10
  • 保存后重启服务
service ntpd restart

# 查看同步状态
netstat -tlunp | grep ntp
watch ntpd –p

# 手动同步 
ntpdate –u ip
  • 配置子节点(在所有非主节点操作)
vim /etc/ntp.conf

该配置文件全部内容如下

driftfile /var/lib/ntp/ntp.drift # 草稿文件

# 日志文件
statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# 让NTP Server为内网的ntp服务器
server 10.1.2.126
fudge 10.1.2.126 stratum 5

# 不允许来自公网上ipv4和ipv6客户端的访问
restrict -4 default kod notrap nomodify nopeer noquery 
restrict -6 default kod notrap nomodify nopeer noquery

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1
  • 保存后重启服务(在每一台子节点操作)
service ntpd restart

# 手工同步
netdate -u 10.1.2.126
准备包(用parcel 方式安装)
  1. cloudera-manager-agent-5.7.0-1.cm570.p0.76.el6.x86_64.rpm
  2. cloudera-manager-daemons-5.7.0-1.cm570.p0.76.el6.x86_64.rpm
  3. cloudera-manager-server-5.7.0-1.cm570.p0.76.el6.x86_64.rpm
  4. cloudera-manager-server-db-2-5.7.0-1.cm570.p0.76.el6.x86_64.rpm
  5. enterprise-debuginfo-5.7.0-1.cm570.p0.76.el6.x86_64.rpm
  6. oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm
  1. CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel
  2. CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha1
  3. cloudera-manager-installer.bin
  4. manifest.json
  1. cloudera-manager-installer.bin
配置 cloudera yum 源(在 hadoop01 操作)
  1. 添加 cloudera-manager 源
cd /etc/yum.repos.d
wget http://archive.cloudera.com/cm5/redhat/5/x86_64/cm/cloudera-manager.repo
vim cloudera-manager.repo
# 修改该文件以下内容
baseurl=http://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.7.0/
gpgcheck = 0
enabled  =1
  1. 添加 cloudera-cdh5 源
cd /etc/yum.repos.d
wget http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/cloudera-cdh5.repo
vim cloudera-cdh5.repo
# 修改该文件以下内容
baseurl=http://archive.cloudera.com/cdh5/redhat/6/x86_64/cdh/5.7.0/
gpgcheck = 0
enabled  =1
  1. 更新源
sudo yum update 
安装 mysql

(略)

安装 CM(注意安装顺序)
  • 只需要在 hadoop01 节点安装
cd CM包的下载目录
rpm -ivh cloudera-manager-daemons-5.7.0-1.cm570.p0.76.el6.x86_64.rpm
rpm -ivh cloudera-manager-agent-5.7.0-1.cm570.p0.76.el6.x86_64.rpm
rpm -ivh cloudera-manager-server-5.7.0-1.cm570.p0.76.el6.x86_64.rpm
rpm -ivh cloudera-manager-server-db-2-5.7.0-1.cm570.p0.76.el6.x86_64.rpm
rpm -ivh enterprise-debuginfo-5.7.0-1.cm570.p0.76.el6.x86_64.rpm
rpm -ivh oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm
  • 执行安装
rm -f /etc/cloudera-scm-server/db.properties
cd CM包的下载目录
./cloudera-manager-installer.bin --skip_repo_package=1

后面按照提示操作

  • 创建 mysql 数据库
mysql -u用户名 -p
# 然后在mysql控制台执行以下语句
CREATE DATABASE IF NOT EXISTS cmf DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  • 修改 CM 配置文件使支持mysql
vim /etc/cloudera-scm-server/db.properties
# 修改以下配置
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=localhost:3306
com.cloudera.cmf.db.name=cmf
com.cloudera.cmf.db.user=USER
com.cloudera.cmf.db.password=PASSWORD
  • 添加 com.mysql.jdbc.Driver 到 /usr/share/cmf/lib
wget -c http://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.39.tar.gz
tar zxf mysql-connector-java-5.1.39.tar.gz
cp mysql-connector-java-5.1.39/mysql-connector-java-5.1.39-bin.jar /usr/share/cmf/lib/
rm mysql-connector-java-5.1.39 -Rf mysql-connector-java-5.1.39.tar.gz
安装 cloudera-manager-agent (在所有节点操作)
  1. 将所需软件从 hadoop01 复制到其他节点
scp -r /data/soft/* hadoop02:/data/soft
scp -r /data/soft/* hadoop03:/data/soft
  1. 执行安装
rpm -ivh cloudera-manager-daemons-5.7.0-1.cm570.p0.76.el6.x86_64.rpm
rpm -ivh cloudera-manager-agent-5.7.0-1.cm570.p0.76.el6.x86_64.rpm
rpm -ivh enterprise-debuginfo-5.7.0-1.cm570.p0.76.el6.x86_64.rpm
rpm -ivh oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm
将 cdh 复制到/opt/cloudera/parcel-repo
  • 在 hadoop01 操作
cd CDH包的下载目录
cp ./* /opt/cloudera/parcel-repo
cd /opt/cloudera/parcel-repo
mv 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
  • 检验哈希码
cd /opt/cloudera/parcel-repo
vim CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha
# 查看该文件内容是否与以下链接的文件内容一致
# http://archive.cloudera.com/cdh5/parcels/5.7.0/manifest.json
# parcelName: "CDH-5.7.0-1.cdh5.7.0.p0.45-el5.parcel" 所对应的 hash 值
# 如不一致,则将线上的hash值替换到 CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha 文件中
重启 CM 服务
service cloudera-scm-server-db restart
service cloudera-scm-server restart
service cloudera-scm-agent restart
启动 CM Web 界面安装 CDH
  • 如果访问 refused to connect,请耐心等待片刻,服务启动需要时间
  1. 访问 http://hadoop01:7180/
    默认帐号密码是 admin / admin
    强烈要求登录后修改密码

  2. 后面的步骤都在 web 界面操作,这里暂不说明

  3. 这里展示一张安装好后,并添加了些许服务的效果图


    Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容