CM&CDH超详细完美成功安装学习记录(比Ambari好装多了-__-!)

1.1 CM简介

1.1.1 CM简介

Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具,使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。
在这里插入图片描述

1.1.2 CM架构

在这里插入图片描述

1.2 环境准备

1.2.1 虚拟机准备

克隆三台虚拟机(hadoop102、hadoop103、hadoop104),配置好对应主机的网络IP、主机名称、关闭防火墙。
设置hadoop102、hadoop103、hadoop104的主机对应内存分别是:8G、4G、4G

1.2.2 SSH免密登录

配置hadoop102对hadoop102、hadoop103、hadoop104三台服务器免密登录。
1)生成公钥和私钥:

[root@hadoop102 .ssh]$ ssh-keygen -t rsa

然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
2)将公钥拷贝到要免密登录的目标机器上

[root@hadoop102 .ssh]$ ssh-copy-id hadoop102
[root@hadoop102 .ssh]$ ssh-copy-id hadoop103
[root@hadoop102 .ssh]$ ssh-copy-id hadoop104

3)重复1和2的操作,配置hadoop103对hadoop102、hadoop103、hadoop104三台服务器免密登录。

1.2.3 集群同步脚本

1)在/root目录下创建bin目录,并在bin目录下创建文件xsync,文件内容如下:

[root@hadoop102 ~]$ mkdir bin
[root@hadoop102 ~]$ cd bin/
[root@hadoop102 bin]$ vi xsync

在该文件中编写如下代码

#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi

#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname

#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir

#4 获取当前用户名称
user=`whoami`

#5 循环
for((host=103; host<105; host++)); do
        echo ------------------- hadoop$host --------------
        rsync -av $pdir/$fname $user@hadoop$host:$pdir
done

2)修改脚本 xsync 具有执行权限

[root@hadoop102 bin]$ chmod 777 xsync
1.2.4 安装JDK(三台)

1)在hadoop102的/opt目录下创建module和software文件夹

[root@hadoop102 opt]# mkdir module
[root@hadoop102 opt]# mkdir software

2)用SecureCRT将jdk-8u144-linux-x64.tar.gz导入到hadoop102的/opt/software目录
3)在Linux系统下的opt目录中查看软件包是否导入成功

[root@hadoop102 software]$ ls
jdk-8u144-linux-x64.tar.gz

4)解压JDK到/opt/module目录下,并修改文件的所有者和所有者组为root

[root@hadoop102 software]$ tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/
[root@hadoop102 module]# chown root:root jdk1.8.0_144/ -R

5)配置JDK环境变量
(1)打开/etc/profile文件
[root@hadoop102 software]$ vi /etc/profile

在profile文件末尾添加JDK路径

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin 

(2)让修改后的文件生效

 [root@hadoop102 jdk1.8.0_144]$ source /etc/profile

6)测试JDK是否安装成功

[root@hadoop102 jdk1.8.0_144]# java -version
java version "1.8.0_144"

7)将hadoop102中的JDK和环境变量分发到hadoop103、hadoop104两台主机

[root@hadoop102 opt]# xsync /opt/module/
[root@hadoop102 opt]# xsync /etc/profile

分别在hadoop103、hadoop104上source一下

[root@hadoop103 ~]$ source /etc/profile
[root@hadoop104 ~]# source /etc/profile
1.2.5 集群整体操作脚本

1)在/root/bin目录下创建脚本xcall.sh

  [root@hadoop102 bin]$ vim xcall.sh

2)在脚本中编写如下内容

#! /bin/bash

for i in hadoop102 hadoop103 hadoop104
do
        echo --------- $i ----------
        ssh $i  "$*"
done

3)修改脚本执行权限

[root@hadoop102 bin]$ chmod 777 xcall.sh

4)将/etc/profile文件追加到~/.bashrc后面

[root@hadoop102 module]# cat /etc/profile >> ~/.bashrc
[root@hadoop103 module]# cat /etc/profile >> ~/.bashrc
[root@hadoop104 module]# cat /etc/profile >> ~/.bashrc

5)测试

[root@hadoop102 bin]# xcall.sh jps
1.2.6 安装MySQL

注意:一定要用root用户操作如下步骤;先卸载MySQL再安装
1)安装包准备
(a)查看MySQL是否安装

[root@hadoop102 桌面]# rpm -qa|grep mysql
 mysql-libs-5.1.73-7.el6.x86_64

(b)如果安装了MySQL,就先卸载

[root@hadoop102 桌面]# 
rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_64

(c)上传mysql-libs.zip到hadoop102的/opt/software目录,并解压文件到当前目录

[root@hadoop102 software]# unzip mysql-libs.zip
[root@hadoop102 software]# ls
mysql-libs.zip
mysql-libs

(d)进入到mysql-libs文件夹下

 [root@hadoop102 mysql-libs]# ll
总用量 76048
-rw-r--r--. 1 root root 18509960 3月  26 2015 MySQL-client-5.6.24-1.el6.x86_64.rpm
-rw-r--r--. 1 root root  3575135 12月  1 2013 mysql-connector-java-5.1.27.tar.gz
-rw-r--r--. 1 root root 55782196 3月  26 2015 MySQL-server-5.6.24-1.el6.x86_64.rpm

2)安装MySQL服务器
(a)安装MySQL服务端

[root@hadoop102 mysql-libs]# rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm

(b)查看产生的随机密码

[root@hadoop102 mysql-libs]# cat /root/.mysql_secret
AFXaCuS6IBdG21kB

(c)查看MySQL状态

[root@hadoop102 mysql-libs]# service mysql status

(d)启动MySQL

[root@hadoop102 mysql-libs]# service mysql start

3)安装MySQL客户端
(a)安装MySQL客户端

[root@hadoop102 mysql-libs]# rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm

(b)链接MySQL(密码替换成产生的随机密码)

[root@hadoop102 mysql-libs]# mysql -uroot -pOEXaQuS8IWkG19Xs

(c)修改密码

mysql>SET PASSWORD=PASSWORD('000000');

(d)退出MySQL

mysql>exit

4)MySQL中user表中主机配置
配置只要是root用户+密码,在任何主机上都能登录MySQL数据库。
(1)进入MySQL

[root@hadoop102 mysql-libs]# mysql -uroot -p000000

(2)显示数据库

mysql>show databases;

(3)使用MySQL数据库

mysql>use mysql;

(4)展示MySQL数据库中的所有表

mysql>show tables;

(5)展示user表的结构

mysql>desc user;

(6)查询user表

mysql>select User, Host, Password from user;

(7)修改user表,把Host表内容修改为%

mysql>update user set host='%' where host='localhost';

(8)删除root用户的其他host

mysql>
delete from user where Host='hadoop102';
delete from user where Host='127.0.0.1';
delete from user where Host='::1';

(9)刷新

mysql>flush privileges;

(10)退出

mysql>quit;
1.2.7 创建CM用的数据库

在MySQL中依次创建监控数据库、Hive数据库、Oozie数据库、Hue数据库
1)启动数据库

[root@hadoop102 ~]# mysql -uroot -p000000

2)集群监控数据库

mysql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

3)Hive数据库

mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

4)Oozie数据库

mysql> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

5)Hue数据库

mysql> create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

6)关闭数据库

mysql> quit;
1.2.8 下载第三方依赖

依次在三台节点(所有Agent的节点)上执行下载第三方依赖(注意:需要联网

[root@hadoop102 ~]# yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb

[root@hadoop103 ~]# yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb

[root@hadoop104 ~]# yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb
1.2.9 关闭SELINUX

安全增强型Linux(Security-Enhanced Linux)简称SELinux,它是一个 Linux 内核模块,也是Linux的一个安全子系统。为了避免安装过程出现各种错误,建议关闭,有如下两种关闭方法:
1)临时关闭(不建议使用)
[root@hadoop102 ~]# setenforce 0
但是这种方式只对当次启动有效,重启机器后会失效。
2)永久关闭(建议使用)
修改配置文件/etc/selinux/config

[root@hadoop102 ~]# vim /etc/selinux/config

将SELINUX=enforcing 改为SELINUX=disabled
SELINUX=disabled

3)同步/etc/selinux/config配置文件

[root@hadoop102 ~]# xsync /etc/selinux/config

4)重启hadoop102、hadoop103、hadoop104主机

[root@hadoop102 ~]# reboot
[root@hadoop103 ~]# reboot
[root@hadoop104 ~]# reboot

1.3 CM安装部署

1.3.1 CM下载地址

1)CM下载地址:http://archive.cloudera.com/cm5/cm/5/
2)离线库下载地址:http://archive.cloudera.com/cdh5/parcels

1.3.2 CM安装

注:以下所有操作均使用root用户
1)创建/opt/module/cm目录

[root@hadoop102 module]# mkdir –p /opt/module/cm

2)上传cloudera-manager-el6-cm5.12.1_x86_64.tar.gz到hadoop102的/opt/software目录,并解压到/opt/module/cm目录

[root@hadoop102 software]# tar -zxvf cloudera-manager-el6-cm5.12.1_x86_64.tar.gz -C /opt/module/cm

3)分别在hadoop102、hadoop103、hadoop104创建用户cloudera-scm

[root@hadoop102 module]# 
useradd \
--system \
--home=/opt/module/cm/cm-5.12.1/run/cloudera-scm-server \
--no-create-home \
--shell=/bin/false \
--comment "Cloudera SCM User" cloudera-scm

[root@hadoop103 module]# 
useradd \
--system \
--home=/opt/module/cm/cm-5.12.1/run/cloudera-scm-server \
--no-create-home \
--shell=/bin/false \
--comment "Cloudera SCM User" cloudera-scm

[root@hadoop104 module]# 
useradd \
--system \
--home=/opt/module/cm/cm-5.12.1/run/cloudera-scm-server \
--no-create-home \
--shell=/bin/false \
--comment "Cloudera SCM User" cloudera-scm

参数说明:
–system 创建一个系统账户
–home 指定用户登入时的主目录,替换系统默认值/home/<用户名>
–no-create-home 不要创建用户的主目录
–shell 用户的登录 shell 名
–comment 用户的描述信息
注意:Cloudera Manager默认去找用户cloudera-scm,创建完该用户后,将自动使用此用户。
4)修改CM Agent配置
修改文件/opt/module/cm/cm-5.12.1/etc/cloudera-scm-agent/ config.ini的主机名称

[root@hadoop102 cloudera-scm-agent]# vim /opt/module/cm/cm-5.12.1/etc/cloudera-scm-agent/config.ini

修改主机名称

server_host=hadoop102

5)配置CM的数据库
拷贝mysql-connector-java-5.1.27-bin.jar文件到目录 /usr/share/java/

[root@hadoop102 cm]# mkdir –p /usr/share/java/
[root@hadoop102 mysql-libs]# tar -zxvf mysql-connector-java-5.1.27.tar.gz

[root@hadoop102 mysql-libs]# cp /opt/software/mysql-libs/mysql-connector-java-5.1.27/mysql-connector-java-5.1.27-bin.jar /usr/share/java/

[root@hadoop102 mysql-libs]# mv /usr/share/java/mysql-connector-java-5.1.27-bin.jar /usr/share/java/mysql-connector-java.jar

注意:jar包名称要修改为mysql-connector-java.jar
6)使用CM自带的脚本,在MySQL中创建CM库

[root@hadoop102 cm-5.12.1]# 
/opt/module/cm/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hhadoop102 -uroot -p000000 --scm-host hadoop102 scm scm scm

参数说明
-h:Database host
-u:Database username
-p:Database Password
–scm-host:SCM server’s hostname
7)分发cm

[root@hadoop102 module]# xsync /opt/module/cm

8)创建Parcel-repo

[root@hadoop102 module]# mkdir -p /opt/cloudera/parcel-repo
[root@hadoop102 module]# chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo

9)拷贝下载文件manifest.json 、CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha1 、CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel到hadoop102的/opt/cloudera/parcel-repo/目录下

[root@hadoop102 parcel-repo]# ls
CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel  CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha1  
manifest.json

10)将CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha1:需改名为
CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha

[root@hadoop102 parcel-repo]# mv CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha1 CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha

11)在hadoop102上创建目录/opt/cloudera/parcels,并修改该目录的所属用户及用户组为cloudera-scm

[root@hadoop102 module]# mkdir -p /opt/cloudera/parcels 
[root@hadoop102 module]# chown cloudera-scm:cloudera-scm /opt/cloudera/parcels

12)分发/opt/cloudera/

[root@hadoop102 opt]# xsync /opt/cloudera/
1.3.3 启动CM服务

1)启动服务节点:hadoop102

[root@hadoop102 cm]# /opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-server start
Starting cloudera-scm-server:                              [确定]

2)启动工作节点:hadoop102、hadoop103、hadoop104

[root@hadoop102 cm]# /opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent start

[root@hadoop103 cm]# /opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent start

[root@hadoop104 cm]# /opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent start

注意:启动过程非常慢,Manager启动成功需要等待5分钟左右,过程中会在数据库中创建对应的表需要耗费一些时间。
3)查看被占用则表示安装成功了!!!

[root@hadoop102 cm]# netstat -anp | grep 7180
tcp        0      0 0.0.0.0:7180                0.0.0.0:*                   LISTEN      5498/java 

4)访问http://hadoop102:7180,(用户名、密码:admin)
在这里插入图片描述

1.3.4 关闭CM服务

1)关闭工作节点:hadoop102、hadoop103、hadoop104

[root@hadoop102 cm]# /opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent stop
Stopping cloudera-scm-agent:                               [确定]
[root@hadoop103 cm]# /opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent stop
Stopping cloudera-scm-agent:                               [确定]
[root@hadoop104 cm]# /opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent stop
Stopping cloudera-scm-agent:                               [确定]

2)关闭服务节点:hadoop102

[root@hadoop102 cm]# /opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-server stop
停止 cloudera-scm-server:                                 [确定]

1.4 CM的集群部署

1.4.1 接受条款和协议

在这里插入图片描述

1.4.2 选择免费

在这里插入图片描述

1.4.3 指定主机

在这里插入图片描述

1.4.4 选择CDH的版本5.12.1

在这里插入图片描述

1.4.5 等待下载安装

在这里插入图片描述

2.1 HDFS、YARN、Zookeeper安装

2.1.1 选择自定义安装

在这里插入图片描述

2.1.2 选择安装服务

在这里插入图片描述

2.1.3 分配节点

在这里插入图片描述

2.1.4 集群设置全部选默认即可

在这里插入图片描述

2.1.5 自动启动进程

在这里插入图片描述

2.1.6 修改HDFS的权限检查配置

关闭HDFS中的权限检查:dfs.permissions。
在这里插入图片描述

2.1.7 配置Hadoop支持LZO

1)点击主机,在下拉菜单中点击Parcel
在这里插入图片描述
2)点击配置
在这里插入图片描述
3)找到远程Parcel存储库URL,点击最后一栏的加号,增加一栏,输入http://archive.cloudera.com/gplextras/parcels/latest/,之后点击保存更改
在这里插入图片描述
4)返回Parcel列表,可以看到多出了LZO,选择下载,下载完成后选择分配,分配完成后选择激活。
在这里插入图片描述
5)安装完LZO后,打开HDFS配置,找到“压缩编码解码器”一栏,点击加号,添加com.hadoop.compression.lzo.LzopCodec后保存更改

在这里插入图片描述
在这里插入图片描述
6)打开YARN配置,找到MR 应用程序 Classpath,添加/opt/cloudera/parcels/HADOOP_LZO/lib/hadoop/lib/hadoop-lzo-cdh4-0.4.15-gplextras.jar
在这里插入图片描述
7)更新过期配置,重启进程
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值