CENTOS 7.5离线安装Cloudera Manager 5和CDH5(5.15.0) 完全教程

CDH admin 2年前 (2018-08-16) 66次浏览 0个评论 扫描二维码

特别声明:LZ按照教程完整的走了一遍,最终所有组件都是正常的,中间遇到很多坑,做了一些修改,本文最后会将遇到的一些坑总结到一片新文章中

windows虚拟机安装CDH

cpu 16G内存
默认单核单线 DEV2 Server&&Agent 5G
默认单核单线 DEV3 Agent 1G
默认单核单线 DEV4 Agent 1G

关于CDH和Cloudera Manager

CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可直接用于生产环境。

Cloudera Manager则是为了便于在集群中进行Hadoop等大数据处理相关的服务安装和监控管理的组件,对集群中主机、Hadoop、Hive、Spark等服务的安装配置管理做了极大简化。

系统环境

  • 实验环境:Windows(16G内存)下VMware虚拟机
  • 操作系统:CentOS 7.5 x64 (主节点设置的5G内存,两个从节点是1G,建议主节点高一些,前面安装系统的时候还没什么,后续启动应用之后,占用还是很高的,剩余内存仅剩下3百多兆)
  • Cloudera Manager:5.15.0
  • CDH:5.15.0
    centos 7.5镜像:
    https://mirrors.163.com/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-Minimal-1804.iso

相关包的下载地址

Cloudera Manager下载地址:
https://archive.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz

CDH安装包地址: https://archive.cloudera.com/cdh5/parcels/latest/
由于我们的操作系统为CentOS7.5,需要下载以下文件:
- CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel
- CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1
- manifest.json
mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar
mysql-connector-java-5.1.46.tar.gz


准备工作:系统环境搭建

以下操作均用root用户操作。

1. 网络配置(所有节点)

注意:这里需要自行配置静态IP,因为不配置静态IP,如果机器重启后IP发生变化,则集群间的通信就失败了
配置静态ip:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
修改:
虚拟机链接方式改成桥接

BOOTPROTO=static
ONBOOT=yes

新增:

IPADDR=192.168.0.102
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
DNS1=202.106.0.20

这里的DNS1根据自己的情况,我这里设置的是北京联通,设置后linux就能连接网络,通过yum安装一些必须的包
通过 service network restart 重启网络,静态ip生效,是同ip addrc查看ip是否生效。

vi /etc/sysconfig/network 修改hostname:

NETWORKING=yes
HOSTNAME=DEV2

通过 service network restart 重启网络服务生效。
vi /etc/hosts ,修改ip与主机名的对应关系

192.168.0.102   DEV2
192.168.0.103   DEV3
192.168.0.104   DEV4

注意: 这里需要将每台机器的ip及主机名对应关系都写进去,本机的也要写进去,否则启动Agent的时候会提示hostname解析错误。

2.打通SSH,设置ssh无密码登陆(所有节点)

在主节点上执行 ssh-keygen -t rsa 一路回车,生成无密码的密钥对。
将公钥添加到认证文件中:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
并设置authorized_keys的访问权限:
chmod 600 ~/.ssh/authorized_keys
scp文件到所有datenode节点(传完后进入到DEV3中执行上述操作):
scp ~/.ssh/authorized_keys root@DEV3:~/.ssh/
这里需要注意DEV3中的~/.ssh/目录下需要存在authorized_keys文件。否则会有一些奇怪的问题

测试: 在主节点上ssh DEV3,正常情况下,不需要密码就能直接登陆进去了。

3.安装Oracle的Java(所有节点)

CentOS,自带OpenJdk,不过运行CDH5需要使用Oracle的Jdk,需要Java 7的支持
jdk-7u79-linux-x64.rpm:
https://pan.baidu.com/s/1H_uJg8-8AA8s1sECz5SfIw
卸载自带的OpenJdk,使用 rpm -qa | grep java 查询java相关的包,使用 rpm -e --nodeps 包名 卸载之。
使用 rpm -ivh 包名 安装之
/usr/java/jdk-7u79-linux-x64.rpm,在/usr/java/目录下运行rpm -ivh jdk-7u79-linux-x64.rpm

JAVA_HOME=/usr/java/jdk1.7.0_79
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar 
PATH=$JAVA_HOME/bin:$HOME/bin:$HOME/.local/bin:$PATH
4. 关闭防火墙(所有节点)

centos 7 默认使用的是firewall,不是iptables

systemctl stop firewalld.service
systemctl mask firewalld.service
5. 关闭SELinux(所有节点)
[root@DEV1 .ssh]# vim/etc/selinux/config

设置SELINUX=disabled
6. 配置NTP服务(所有节点)

安装

[root@DEV1 .ssh]# yum install ntp
设置开机启动
[root@DEV1 .ssh]# chkconfig ntpd on
服务启动
[root@DEV1 .ssh]# service ntpd start
7. 所有节点上创建用户(所有节点)
useradd --system 
--home=/opt/cm-5.15.0/run/cloudera-scm-server/ 
--no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
8. 安装MySQL(主节点安装即可)
(1)卸载mariadb

此处需要注意的是centos 7 默认安装的是mariadb,如果不卸载直接安装的话会报错,报错信息mariadb-libs is obsoleted by mysql-community-libs-5.7.21-1.el7.x86_64
注意:必须先做一下步骤,要先删除mariadb

rpm -qa | grep mariadb #查看安装信息
rpm --nodeps -e mariadb-libs-5.5.56-2.el7.x86_64 #根据查找到的软件包信息卸载
(2)安装MySQL(必须按以下顺序安装)

解压 tar -xf mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar

rpm -ivh mysql-community-common-5.7.21-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.21-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.21-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.21-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-compat-5.7.21-1.el7.x86_64.rpm
(compat解决hue数据库连接不上)
rpm -ivh mysql-community-devel-5.7.21-1.el7.x86_64.rpm
#安装mysqlclient需要用到
(3)基本设置

service mysqld start#启动服务
cat /var/log/mysqld.log |grep password #查看初始密码
mysql -uroot -p #登录

set password = password('1234');#设置密码

报错:

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

首先,修改validate_password_policy参数的值

mysql> set global validate_password_policy=0;

这样,判断密码的标准就基于密码的长度了。这个由validate_password_length参数来决定。

validate_password_length参数默认为8,可以设置为其它值,最小4位

mysql> set global validate_password_length=1;

mysql> set password = password('1234');

Query OK, 0 rows affected,1 warning (0.00 sec)

授权用户root使用密码passwd从任意主机连接到mysql服务器
GRANT ALL PRIVILEGES ON *.* TO 'root'@'DEV2' IDENTIFIED BY 'mysql密码' WITH GRANT OPTION;
flush privileges;

(4)建数据库(用于后边组件安装)
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

安装Cloudera Manager Server 和Agent

(1)解压

将下载好的cloudera-manager-centos7-cm5.15.0_x86_64.tar.gz解压到主节点的/opt/,解压出来的文件夹为cloudera与cm-5.15.0

(2)为Cloudera Manager建立数据库

将前边下载好的mysql-connector-java-5.1.46.tar.gz解压,找到文件夹中的

mysql-connector-java-5.1.45-bin.jar

cp mysql-connector-java-5.1.45-bin.jar /opt/cm-5.15.0/share/cmf/lib/
cp mysql-connector-java-5.1.45-bin.jar /usr/java/

/opt/cm-5.15.0/share/cmf/schema/scm_prepare_database.sh mysql -hlocalhost -uroot -p scm scm

(3)配置Agent

vim /opt/cm-5.14.0/etc/cloudera-scm-agent/config.ini
server_host=DEV2

拷贝到其他节点
[root@DEV1]# scp -r /opt/cm-5.15.0/ root@DEV3:/opt/
[root@DEV1]# scp -r /opt/cm-5.15.0/ root@DEV4:/opt/

(4)准备parcels

将CDH相关文件拷贝到主节点/opt/cloudera/parcel-repo/

相关文件

CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel
CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1
manifest.json

需要将CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1改成CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcell.sha,否则安装时会重新下载,很重要!!

[root@DEV1]# mv CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha1 CDH-5.15.0-1.cdh5.15.0.p0.21-el7.parcel.sha

(5)启动

主节点
/opt/cm-5.15.0/etc/init.d/cloudera-scm-server start
主节点及其他节点
/opt/cm-5.15.0/etc/init.d/cloudera-scm-agent start

启动需要点时间,可以查看数据库scm中的HOSTS表,如果里面出现节点信息表示server启动完成

安装hadoop集群:

安装的时候没有做截图,将我参考的文章的图片放在下边

1.登录主界面

登录主节点IP的7180端口,默认登录用户名和密码都是admin
#

2.选择安装版本

#

3.为CDH群集安装指定主机

#

4.集群安装

#

5.主机检查

#

第一个警告直接在所有节点上执行echo 10 > /proc/sys/vm/swappiness

第二个警告按照上面的说明,在所有节点上执行这两条命令

echo never >/sys/kernel/mm/transparent_hugepage/defrag >> /etc/rc.local

echo never > /sys/kernel/mm/transparent_hugepage/enabled>> /etc/rc.local

6.集群设置

#

服务配置,保持默认就可以(Cloudera Manager会根据机器的配置自动进行配置)
#

数据库设置(这个位置我的HUE表一直连不上,按照网上的一些说法做了一些操作也没能解决,最终没办法,为了能成功安装完CDH,最终返回前边将hue去掉了)
#

审查更改(默认即可)
#

开始安装

此处hive ,oozie会安装失败,失败信息如下。因为我们使用了MySQL作为hive元数据存储,需要将mysql驱动拷贝到hive和oozie目录下。(所有节点)

cp /opt/cm-5.14.0/share/cmf/lib/mysql-connector-java-5.1.45-bin.jar /opt/cloudera/parcels/CDH-5.15.0-1.cdh5.15.0.p0.21/lib/hive/lib/

cp /opt/cm-5.15.0/share/cmf/lib/mysql-connector-java-5.1.45-bin.jar /var/lib/oozie/

安装完成
错误解决:

1、pstree: command not found

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

因为系统是最小化安装,默认没有安装

解决方法

yum install psmisc -y

中途安装失败,重新安装

关闭所有服务

主节点
[root@DEV1 opt]# /opt/cm-5.15.0/etc/init.d/cloudera-scm-server stop
主节点及其他节点
[root@DEV1 opt]# /opt/cm-5.15.0/etc/init.d/cloudera-scm-agent stop

删除agent uuid

rm -rf /opt/cm-5.15.0/lib/cloudera-scm-agent/*

删除数据库scm

重新配置数据库

/opt/cm-5.15.0/share/cmf/schema/scm_prepare_database.sh mysql -hlocalhost -uroot -p scm scm

启动Cloudera server和agent,按照之前步骤安装即可


codeobj , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:CENTOS 7.5离线安装Cloudera Manager 5和CDH5(5.15.0) 完全教程
喜欢 (0)
[a37free@163.com]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址