全网史上最详细全面的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 接受条款和协议

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

2.2 选择免费

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

2.3 指定主机

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

2.4 选择CDH的版本5.12.1

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

2.5 等待下载安装

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

2.6 选择自定义安装

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

2.7 只安装HDFS、YARN、Hive、Zookeeper

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

2.8 分配节点

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

2.9 数据库设置

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

2.10 全部选默认即可

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

2.11 完成

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

2.12 修改hdfs的权限配置

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

2.13 配置hadoop支持lzo

(1) 依次打开 “主机”->”Parcel”->”配置”
全网史上最详细全面的CDH安装流程和环境配置(建议收藏+关注)

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

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

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

(3)返回Parcel列表,可以看到多出了LZO,选择下载,下载完成后选择分配,分配完成后选择激活。
全网史上最详细全面的CDH安装流程和环境配置(建议收藏+关注)

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

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

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

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

上一篇:cm修改 cdh集群 ip


下一篇:CDH搭建Hadoop集群_Centos7