Centos7离线安装CDH5.13.1-Hadoop集群

1.软件准备

安装之前需要准备以下安装包或者安装必要环境

  • 1.jdk1.8
    (不要安装openjdk,要安装oracle官网的jdk1.8)
  • 2.mysql(这里我使用docker运行,因为docker方便,当然你也可以自己部署mysql)
  • 3.Cloudera Manager,
    http://archive.cloudera.com/cm5/cm/5/
    下载对应操作系统版本的cm,centos7下载cloudera-manager-centos7-cm5.13.1_x86_64.tar.gz
  • 4.CDH安装包
    http://archive.cloudera.com/cdh5/parcels/latest/
    下载
    CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel
    CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha1(下载后名字改为CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha)
    manifest.json

2.硬件环境

节点 角色
nod81 scm-server,scm-agent
nod82 scm-agent
nod83 scm-agent

3个节点均为虚拟机测试安装cdh,虚拟机最好在初始化环境的时候打上快照,这样可以很容易恢复到初始化状态,反复安装测试。

3.机器准备

以下操作均需要(root)管理员权限

3.1网络配置(所有节点)

修改主机名:vim /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=node81
NETWORKING_IPV6=no
PEERNTP=no

通过service network restart重启网络服务
修改ip与主机名的对应关系:vim /etc/hosts

192.168.1.81 node81
192.168.1.82 node82
192.168.1.83 node83

3.2 ssh无密码访问

ssh-keygen -t rsa(主节点上输入回车到结束)
ssh-copy-id 0.0.0.0(根据提示输入密码)
ssh-copy-id node82(根据提示输入密码)
ssh-copy-id node83(根据提示输入密码)
##最后ssh测试是否需要无密码

3.3 安装jdk(所有节点)

rpm -ivh jdk-8u101-linux-x64.rpm 

3.4 关闭防火墙(所有节点)

注意: 需要在所有的节点上执行,因为涉及到的端口太多了,临时关闭防火墙是为了安装起来更方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。
关闭防火墙:

service iptables stop (临时关闭)  
chkconfig iptables off (重启后生效)

关闭SELINUX

setenforce 0 (临时生效)  
修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)

3.5 添加cm用户(所有节点)

useradd --system --home=/opt/cm-5.13.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

3.6 安装其它必要软件

yum install -y perl psmisc

4.安装数据库(主节点)

#数据库我使用docker安装mysql
#启动命令
docker run -d --restart=always --name=mysql \
-p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 \
-v /var/lib/mysql:/var/lib/mysql \
mysql:5.6

5.配置cm(主节点)

5.1 解压cm

cm一般都解压在/opt/下面,因为cm里面一些配置默认就是这个目录
将cloudera-manager-centos7-cm5.13.1_x86_64.tar.gz拷贝到/opt下面解压

tar xzvf cloudera-manager-centos7-cm5.13.1_x86_64.tar.gz
## 解压后会出现两个文件夹,cm以及cloudera
[root@node81 ~]# ll
drwxr-xr-x  4 1106 4001        34 Nov 15 07:34 cloudera
-rw-r--r--. 1 root root 753729280 Jan 19 10:20 cloudera-manager-centos7-cm5.13.1_x86_64.tar.gz
drwxr-xr-x  9 1106 4001        81 Nov 15 07:34 cm-5.13.1

5.2 放入安装包

将离线安装包CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel等三个放入/opt/cloudera/parcel-repo下面

[root@node81 opt]# cd cloudera/parcel-repo/
[root@node81 parcel-repo]# ll
total 1888980
-rw-r--r--. 1 root root 1934231261 Jan 19 10:20 CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel
-rw-r--r--  1 root root         41 Dec  6 01:30 CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha
-rw-r--r--  1 root root      73766 Dec  6 01:32 manifest.json

5.3 配置cm

Agent配置
修改/opt/cm-5.13.1/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名。

5.4 初始化数据库

#拷贝数据库驱动到lib里面
cp /opt/cm-5.13.1/share/cmf/common_jars/mysql-connector-java-5.1.38.jar /opt/cm-5.13.1/share/cmf/lib/
#初始化数据库,首先在mysql里面创建一个cm的database
 /opt/cm-5.13.1/share/cmf/schema/scm_prepare_database.sh -h localhost -P 3306 -u root -p123456 mysql  cm root 123456
 #-h数据库地址
 #-P 端口
 #-u 数据库用户名
 #-p 数据库密码
 #mysql 数据库类型
 #cm 数据库名
 #root cm连接数据库用户名
 #123456 cm连接数据库密码 

6.启动

将主节点上cm拷贝到其它子节点上

scp -r /opt/cm-5.13.1 node82:/opt
scp -r /opt/cm-5.13.1 node83:/opt
#启动cm-server
/opt/cm-5.13.1/etc/init.d/cloudera-scm-server start
#在所有子节点上启动cm-agent
/opt/cm-5.13.1/etc/init.d/cloudera-scm-agent start

等两分钟左右,访问网页,http://ip:7180/,默认帐号密码admin admin
Centos7离线安装CDH5.13.1-Hadoop集群_第1张图片

7.安装cdh

选择安装版本
Centos7离线安装CDH5.13.1-Hadoop集群_第2张图片

选择管理节点,显示三台启动agent的节点
Centos7离线安装CDH5.13.1-Hadoop集群_第3张图片

这里看到下载的cdh包
Centos7离线安装CDH5.13.1-Hadoop集群_第4张图片

拷贝cdh包到其它节点
Centos7离线安装CDH5.13.1-Hadoop集群_第5张图片

检查主机
Centos7离线安装CDH5.13.1-Hadoop集群_第6张图片

选择安装组合
Centos7离线安装CDH5.13.1-Hadoop集群_第7张图片

配置角色
Centos7离线安装CDH5.13.1-Hadoop集群_第8张图片

设置,如果hue这里出现如图的错误,看下面错误里面的解决方法
Centos7离线安装CDH5.13.1-Hadoop集群_第9张图片

确认组件配置项
Centos7离线安装CDH5.13.1-Hadoop集群_第10张图片

安装组件,安装中出现错误,看下面错误里面解决方法
Centos7离线安装CDH5.13.1-Hadoop集群_第11张图片

Centos7离线安装CDH5.13.1-Hadoop集群_第12张图片

8 错误

8.1 line 109: pstree: command not found

# /opt/cm-5.13.1/etc/init.d/cloudera-scm-server start
/opt/cm-5.13.1/etc/init.d/cloudera-scm-server: line 109: pstree: command not found
Starting cloudera-scm-server:                              [FAILED]
# /opt/cm-5.13.1/etc/init.d/cloudera-scm-agent start
/opt/cm-5.13.1/etc/init.d/cloudera-scm-agent: line 108: pstree: command not found
Starting cloudera-scm-agent:                               [FAILED]

遇到这个错误安装下面的包

yum -y install psmisc

8.2 Unexpected error. Unable to verify database connection

hue Unexpected error. Unable to verify database connection
这个错误很头疼,很难找到原因在哪,网上说的各种方法都不行,经过查看日志,发现执行一个sh脚本错误,sh脚本里面执行的是java -jar命令,最后找到原因是权限问题,设置java的权限为777

yum install -y python-lxml
chmod 777 ${JAVA_HOME}/bin/java

8.3 部署hive时报错

拷贝mysql driver到hive的lib中

cp mysql-connector-java-5.1.38.jar /var/lib/hive
cp mysql-connector-java-5.1.38.jar /var/lib/oozie
cp mysql-connector-java-5.1.38.jar /var/lib/hue

日志

其它不能正常启动的,可以通过查看scm的日志来查找原因
日志地址/opt/cm-5.13.1/log/

你可能感兴趣的:(hadoop,从零开始学习hadoop)