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

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及其上各组件的端口列表

# 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(在所有节点操作)

先查询看系统是否已安装 openjdk

sudo rpm -qa openjdk

卸载 openjdk

sudo rpm -e --nodeps 上面步骤找到的包名
...

安装 jdk

# jdk-7u67-linux-x64.rpm 需要事先下载好
sudo rpm -ivh jdk-7u67-linux-x64.rpm

配置环境变量

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/5114352e6c478a187500c88441f98c7c.html