阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CDH-5.XX 离线安装及升级步骤及安装过程常见错误

147次阅读
没有评论

共计 8599 个字符,预计需要花费 22 分钟才能阅读完成。

简述

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  # 永久关闭 重启后生效

  • 或 配置 iptables 策略
    附 CDH、CM 及其上各组件的端口列表
    http://www.cloudera.com/documentation/manager/5-0-x/Cloudera-Manager-Installation-Guide/cm5ig_ports_cm.html
    http://www.cloudera.com/documentation/cdh/5-0-x/CDH5-Installation-Guide/cdh5ig_ports_cdh5.html

# 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 方式安装)
  • CM 包下载地址:
    http://archive.cloudera.com/cm5/RedHat/5/x86_64/cm/5.7.0/RPMS/x86_64/

cloudera-manager-agent-5.7.0-1.cm570.p0.76.el6.x86_64.rpm
cloudera-manager-daemons-5.7.0-1.cm570.p0.76.el6.x86_64.rpm
cloudera-manager-server-5.7.0-1.cm570.p0.76.el6.x86_64.rpm
cloudera-manager-server-db-2-5.7.0-1.cm570.p0.76.el6.x86_64.rpm
enterprise-debuginfo-5.7.0-1.cm570.p0.76.el6.x86_64.rpm
Oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm

  • CDH 包下载地址
    http://archive.cloudera.com/cdh5/parcels/5.7.0

CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel
CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha1
cloudera-manager-installer.bin
manifest.json

  • CM 安装文件下载地址
    http://archive.cloudera.com/cm5/installer/5.7.0/

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. 这里展示一张安装好后,并添加了些许服务的效果图

CDH-5.XX 离线安装及升级步骤及安装过程常见错误 

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-12/149558.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计8599字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中