其他分享
首页 > 其他分享> > 全网史上最详细全面的CDH安装流程和环境配置(建议收藏+关注)

全网史上最详细全面的CDH安装流程和环境配置(建议收藏+关注)

作者:互联网

详细全面的CDH安装流程和环境配置

1.1 环境准备

注意:以下步骤均以root权限操作

1.1.1 虚拟机准备

克隆三台虚拟机(linux01、linux02、linux03),
修改虚拟机的网络配置

vi /etc/sysconfig/network-scripts/ifcfg-eth0

配置好对应主机的网络IP

vi /etc/udev/rules.d/70-persistent-net.rules 

永久修改主机名

 vi /etc/sysconfig/network

配置域名映射

vi /etc/hosts

关闭防火墙
service iptables stop 状态查看-----status

1)linux01、linux02、linux03的主机对应内存分别是:10G、2G、2G
2)在linux01的/opt目录上创建apps和software目录

1.1.2 SSH免密登录

配置linux01对linux01、linux02、linux03三台主机的免密登陆。
(1)生成公钥和私钥:

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

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

[root@linux01 .ssh]$ ssh-copy-id linux01
[root@linux01 .ssh]$ ssh-copy-id linux02
[root@linux01 .ssh]$ ssh-copy-id linux03

1.1.3 集群同步脚本

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

[root@linux01 ~]$ mkdir bin
[root@linux01 ~]$ cd bin/
[root@linux01 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@linux01 bin]$ chmod 777 xsync

1.1.4 安装JDK(三台)

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

[root@linux01 opt]# mkdir apps
[root@linux01 opt]# mkdir software

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

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

4)解压JDK到/opt/apps目录下

[root@linux01 software]$ tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/apps/

5)配置JDK环境变量
(1)先获取JDK路径

[root@linux01 jdk1.8.0_144]$ pwd
/opt/apps/jdk1.8.0_144
(2)打开/etc/profile文件
[root@linux01 software]$ vi /etc/profile

在profile文件末尾添加JDK路径

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

(3)保存后退出

:wq

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

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

6)测试JDK是否安装成功

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

7)将linux01中的JDK和环境变量分发到linux02、linux03两台主机

[root@linux01 opt]# xsync /opt/apps/
[root@linux01 opt]# xsync /etc/profile

分别在linux02、linux03上source一下

[root@linux02 ~]$ source /etc/profile
[root@linux03 ~]# source /etc/profile

1.1.5 集群整体操作脚本

1)在/root/bin目录下创建脚本xcall.sh
[root@linux01 bin]$ vim xcall.sh
2)在脚本中编写如下内容
#! /bin/bash

for i in linux01 linux02 linux03
do
        echo --------- $i ----------
        ssh $i "$*"
done

3)修改脚本执行权限

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

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

[root@linux01 apps]# cat /etc/profile >> ~/.bashrc
[root@linux02 apps]# cat /etc/profile >> ~/.bashrc
[root@linux03 apps]# cat /etc/profile >> ~/.bashrc

5)测试

[root@linux01 bin]# xcall.sh jps

1.1.6 安装MySQL

注意:一定要用root用户操作如下步骤;先卸载MySQL再安装

1)安装包准备
(1)查看MySQL是否安装

[root@linux01 桌面]# rpm -qa|grep mysql
mysql-libs-5.1.73-3.el6_5.x86_64
mysql-server-5.1.73-3.el6_5.x86_64
mysql-5.1.73-3.el6_5.x86_64

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

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

rpm -e --noscripts  mysql-server-5.1.73-3.el6_5.x86_64

查找之前老版本mysql的目录、并且删除老版本mysql的文件和库

whereis mysql

删除对应
注意:卸载后/etc/my.cnf不会删除,需要进行手工删除mysql目录

rm -rf /etc/my.cnf	

再次查找机器是否安装mysql

rpm -qa|grep -i mysql

(3)解压mysql-libs.zip文件到当前目录

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

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

 [root@linux01 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服务器
(1)安装MySQL服务端

yum install libaio
[root@linux01 mysql-libs]# rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm

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

[root@linux01 mysql-libs]# cat /root/.mysql_secret
OEXaQuS8IWkG19Xs

(3)查看MySQL状态

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

(4)启动MySQL

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

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

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

(2)链接MySQL

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

(3)修改密码

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

(4)退出MySQL

mysql>exit

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

[root@linux01 mysql-libs]# mysql -uroot -p123456

(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='linux01';
delete from user where Host='127.0.0.1';
delete from user where Host='::1';

(9)刷新

mysql>	flush

(10)退出

mysql>quit;

1.1.7 创建CM用的数据库

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

(0)启动数据库

[root@linux01 ~]# mysql -uroot -p123456

(1)集群监控数据库

mysql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

(2)Hive数据库

mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

(3)Oozie数据库

mysql> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

(4)Hue数据库

mysql> create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

(5)关闭数据库

mysql> quit;

1.1.8 关闭SELINUX

安全增强型Linux(Security-Enhanced Linux)简称SELinux,它是一个 Linux
内核模块,也是Linux的一个安全子系统。

SELinux的结构及配置非常复杂,所以为了避免出现各种错误,建议关闭,有如下两种关闭方法:
(1)临时关闭:

[root@linux01 ~]# setenforce 0

但是这种方式只对当次启动有效,重启机器后会失效,建议使用第二种方式。
(2)永久关闭
修改配置文件/etc/selinux/config

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

vi /etc/selinux/config
将SELINUX=enforcing 改为SELINUX=disabled
SELINUX=disabled

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

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

(4)重启linux01、linux02、linux03主机

[root@linux01 ~]# reboot
[root@linux02 ~]# reboot
[root@linux03 ~]# reboot

1.1.9 下载第三方依赖

依次在三台节点(所有agent的节点)上执行下载第三方依赖

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

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

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

1.2.0 NTP服务器设置(用于不同节点间实现时间同步)

yum -y install ntp

vi /etc/ntp.conf

注释掉所有server ..*的指向,新添加一条可连接的ntp服务器(百度一下ntp服务器,我选的是上海交大的)

server ntp.sjtu.edu.cn iburst

在其他节点上把ntp指向master服务器地址即可(/etc/ntp.conf下)

server 192.168.133.3 iburst

执行同步命令:

[root@localhost ~]# ntpdate time1.aliyun.com

1.2 CM安装

注:以下所有操作均使用root用户

1.2.1 上传cloudera-manager-el6-cm5.12.1_x86_64.tar.gz到/opt/software目录下

1.2.2 解压cloudera-manager-el6-cm5.12.1_x86_64.tar.gz到/opt/apps/cm目录

[root@linux01 apps]# mkdir /opt/apps/cm
[root@linux01 apps]# tar -zxvf /opt/apps/cloudera-manager-el6-cm5.12.1_x86_64.tar.gz -C /opt/apps/cm/

1.2.3 分别在linux01、linux02、linux03创建用户cloudera-scm

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

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

[root@linux03 apps]# 
useradd \
--system \
--home=/opt/apps/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,创建完该用户后,将自动使用此用户。

1.2.4 修改CM Agent配置

修改文件/opt/apps/cm/cm-5.12.1/etc/cloudera-scm-agent/ config.ini的主机名称

[root@linux01 cloudera-scm-agent]# vim /opt/apps/cm/cm-5.12.1/etc/cloudera-scm-agent/config.ini
修改主机名称
server_host=linux01

1.2.5 配置CM的数据库

拷贝mysql-connector-java-5.1.27-bin.jar文件到目录 /usr/share/java/

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

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

[root@linux01 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

1.2.6 使用CM自带的脚本,在MySQL中创建CM库

[root@linux01 cm-5.12.1]# 
/opt/apps/cm/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hlinux01 -uroot -p123456 --scm-host linux01 scm scm scm
参数说明
-h:Database host
-u:Database username
-p:Database Password
--scm-host:SCM server's hostname

1.2.7 分发cm

 [root@linux01 apps]# xsync /opt/apps/cm
[root@linux01 apps]#  scp -r cm linux02:$PWD

1.2.8 创建Parcel-repo

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

1.2.9 拷贝下载文件到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 到linux01的/opt/cloudera/parcel-repo/目录下

[root@linux01 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

1.2.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@linux01 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

1.2.11 在linux01,linux02,linux03上创建目录/opt/cloudera/parcels

 [root@linux01 apps]# mkdir -p /opt/cloudera/parcels 
 [root@linux02 apps]# mkdir -p /opt/cloudera/parcels 
 [root@linux03 apps]# mkdir -p /opt/cloudera/parcels 

1.2.12 修改linux01、linux02、linux03中/opt/cloudera/parcels文件的所属用户及用户组为cloudera-scm

[root@linux01 apps]# 
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels

[root@linux02 apps]# 
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels

[root@linux03 apps]# 
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels

1.2.13 分发/opt/cloudera/

[root@linux01 opt]# xsync /opt/cloudera/
 scp -r /opt/cloudera/ linux02:$PWD

1.3 启动和关闭CM Server&Agent 服务

1.3.1 启动服务

1)启动服务节点:linux01

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

2)启动工作节点:linux01、linux02、linux03

[root@linux01 cm]# /opt/apps/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent start
正在启动 cloudera-scm-agent:                              [确定]

[root@linux02 cm]# /opt/apps/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent start
正在启动 cloudera-scm-agent:                              [确定]

[root@linux03 cm]# /opt/apps/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent start
正在启动 cloudera-scm-agent:                              [确定]

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

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

(4)访问http://linux01:7180,(用户名、密码:admin)

1.3.2 关闭服务

1)关闭工作节点:linux01、linux02、linux03

[root@linux01 cm]# /opt/apps/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent stop
Stopping cloudera-scm-agent:                               [确定]
[root@linux02 cm]# /opt/apps/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent stop
Stopping cloudera-scm-agent:                               [确定]
[root@linux03 cm]# /opt/apps/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent stop
Stopping cloudera-scm-agent:                               [确定]

2)关闭服务节点:linux01

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

第2章CM的集群部署

2.1 接受条款和协议

在这里插入图片描述

2.2 选择免费

在这里插入图片描述

2.3 指定主机

在这里插入图片描述

2.4 选择CDH的版本5.12.1

在这里插入图片描述

2.5 等待下载安装

在这里插入图片描述

2.6 选择自定义安装

在这里插入图片描述

2.7 只安装HDFS、YARN、Hive、Zookeeper

在这里插入图片描述

2.8 分配节点

在这里插入图片描述

2.9 数据库设置

在这里插入图片描述

2.10 全部选默认即可

在这里插入图片描述

2.11 完成

在这里插入图片描述

2.12 修改hdfs的权限配置

在这里插入图片描述

2.13 配置hadoop支持lzo

(1) 依次打开 “主机”->”Parcel”->”配置”
在这里插入图片描述

在这里插入图片描述

(2)找到远程Parcel存储库URL,点击最后一栏的加号,增加一栏,输入http://archive.cloudera.com/gplextras/parcels/latest/,保存更改

在这里插入图片描述

(3)返回Parcel列表,可以看到多出了LZO,选择下载,下载完成后选择分配,分配完成后选择激活。
在这里插入图片描述

(4)安装完LZO后,打开HDFS配置,找到“压缩编码解码器”一栏,点击加号,添加com.hadoop.compression.lzo.LzopCodec后保存更改

在这里插入图片描述
在这里插入图片描述

(5)关闭集群,点击重新配置客户端环境,之后重启集群即可

在这里插入图片描述

标签:opt,cloudera,linux01,cm,流程,全网,CDH,mysql,root
来源: https://blog.csdn.net/yu7888/article/details/112978816