centos7安装CDH-5.12.1

1.1 CM简介

1.1.0 下载镜像

# 建议使用centos6
# centos镜像下载
https://blog.csdn.net/Aria_Miazzy/article/details/84750427

1.1.0 参考地址

https://www.cnblogs.com/MWCloud/p/11342883.html

1.1.1 CM简介

​ Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个哦你根据,使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。

在这里插入图片描述

1.2 环境准备

1.2.1 虚拟机准备

# 配置好对应主机的网络IP、主机名称、关闭防火墙、SELINUX
设置hadoop01、hadopp02、hadoop03的主机对应内存分别事:16G、4G、4G

1.2.2 SSH免密登录

# 生成ssh密钥
ssh-keygen -t rsa

cd ~/.ssh
ls 

# 在主节点(hadoop01)上将公钥拷到一个特定文件authorized_keys中
cp id_rsa.pub authorized_keys

# 把authorized_keys拷贝到hadoop02上
scp authorized_keys root@hadoop02:~/.ssh/

# 登录hadoop02主机
cd .ssh/
cat id_rsa.pub >> authorized_keys
# 在把authorized_keys拷贝到hadoop03上
scp authorized_keys root@hadoop03:~/.ssh/

# 登录hadoop03主机
cd .ssh/
cat id_rsa.pub >> authorized_keys
# 把生成好的authorized_keys拷贝到hadoop01,hadoop02
scp authorized_keys root@hadoop01:~/.ssh/
scp authorized_keys root@hadoop02:~/.ssh/

# 验证免密登录
使用ssh 用户名@节点名或ssh ip地址命令验证免密码登录
ssh root@hadoop02

# 第二种,针对root账号
# 每台服务器上,生成ssh密钥
ssh-keygen -t rsa
# 在hadoop01
# hadoop01服务器上会自动生成authorized_keys
ssh-copy-id hadoop02  
ssh-copy-id hadoop03
# 在hadoop02
ssh-copy-id hadoop01
ssh-copy-id hadoop03
# 在hadoop03
ssh-copy-id hadoop01
ssh-copy-id hadoop02
ssh免密登录原理
A服务器
# 生成ssh密钥,生成一对公钥和私钥
ssh-keygen -t rsa

# 把A服务器的公钥(id_rsa.pub) 拷贝到 B服务器(授权authorized_keys)

A服务器 ssh访问B(数据用私钥A加密)  B服务器接收到数据后,去授权key中查找A公钥,并解密数据
B采用A公钥加密的数据返回给A  A服务器接收到数据后,用A的私钥解密数据

在这里插入图片描述

1.2.3 安装JDK8

### wget下载jdk8
​```shell
https://blog.csdn.net/u014700139/article/details/89960494
# 把下载好的jdk拷贝到hadoop02,hadoop03,hadoop04
scp -r -P 22 jdk.xxx.gz root@hadoop02:~/
scp -r -P 22 jdk.xxx.gz root@hadoop03:~/
​```

### 配置JDK环境

​```shell
tar -zxvf jdk.tat.gz -C /opt/module/

# 配置java环境
vim /etc/profile
# Java
export JAVA_HOME=/opt/module/jdk1.8.0_241
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin

cat >> /etc/profile << EOF
# Java
export JAVA_HOME=/opt/module/jdk1.8.0_241
export CLASSPATH=\$JAVA_HOME/lib/
export PATH=\$PATH:\$JAVA_HOME/bin
EOF

# 使环境变量生效
source /etc/profile

# 验证java安装
java -version
​```
### 

1.2.4 安装Mysql5.6

# 安装Mysql5.6
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm 
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum –y install mysql-server

systemctl start mysqld
systemctl enable mysqld

# 进入mysql,无密码
SET PASSWORD=PASSWORD('123456');   # 修改密码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

# 一定要做下面的操作
use mysql;
select User, Host, Password from user;
update user set host='%' where host='localhost';
delete from user where Host='hadoop101';
delete from user where Host='127.0.0.1';
delete from user where Host='::1';

flush privileges;
quit;

1.2.5 创建CM用的数据库

# 集群监控数据库
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

# Hive数据库
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

# Oozie数据库
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

# Hue数据库
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

# 关闭数据库
quit;

1.2.6 下载第三方依赖

# 所有Agent的节点
sudo yum install -y chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb

1.2.7 安装ntp

# 每一台
# 安装ntp
yum -y install ntp
# 设置开机启动 
systemctl enable ntpd
systemctl start ntpd
# 设置时间同步
ntpdate 202.120.2.101

1.2.8 关闭防火墙

# 关闭防火墙
systemctl stop firewalld

# 关闭自启动
systemctl disable firewalld

# centos6
关闭防火墙 /etc/init.d/iptables stop
关闭防火墙开机自启:chkconfig iptables off
防火墙状态:/etc/init.d/iptables status

1.2.9 关闭SELINUX

临时关闭

setenforce 0

永久关闭

# 修改配置文件
sudo vim /etc/selinux/config
# 将 SELINUX=enforcing 改为 SELINUX=disabled
# 然后重启
reboot

1.3 CM安装部署

1.3.1 CM下载地址

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

# 下载centos6版本
cloudera-manager-el6-cm5.12.1_x86_64.tar.gz
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

# 这个是cento7下载的版本
cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz
CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel
CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1
manifest.json

1.3.2 CM安装

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

# 1、创建/opt/module/cm 目录(hadoop01)
mkdir -p /opt/module/cm

# 2、上传cloudera-manager-centos7-cm5.12.1_x86_64.tar.gz到hadoop01的/opt/software目录
tar -zxvf cloudera-manager-el6-cm5.12.1_x86_64.tar.gz -C /opt/module/cm

# 3、分别在hadoop01、hadoop02、hadoop03创建用户cloudera-scm
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 ,创建完该用户后,将自动使用此用户

1.3.3 修改CM Agent配置

# 修改文件/opt/module/cm/cm-5.12.1/etc/cloudera-scm-agent/config.ini的主机名称
server_host=hadoop01

1.3.4 配置CM的数据库

下载数据库驱动
https://blog.csdn.net/qq_41950447/article/details/90085170
数据库驱动下载
wget https://cdn.mysql.com//Downloads/Connector-J/mysql-connector-java-5.1.48.tar.gz
拷贝mysql5.6驱动
# 拷贝 mysql-connector-java-5.1.48-bin.jar 文件到目录 /usr/share/java
mkdir -p /usr/share/java
cp -r /opt/software/mysql-connector-java-5.1.27-bin.jar /usr/share/java/
# 修改名字,因为文件/opt/module/cm/cm-5.12.1/etc/cloudera-scm-agent/config.ini里最后一行引用的就是该路径的名字
mv /usr/share/java/mysql-connector-java-5.1.27-bin.jar /usr/share/java/mysql-connector-java.jar

1.3.5 使用CM自带脚本

配置CM Server数据库
拷贝mysql jar文件到目录 /usr/share/java/

注意jar包名称要修改为mysql-connector-java.jar

方式一:
	/opt/module/cm/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -h hadoop01 -uroot -p123456 --scm-host hadoop01 scm scm scm
	格式:数据库类型、数据库、数据库服务器、用户名、密码、cm server服务器

方式二:
	create database cm DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
	create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
	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;
	grant all on cm.* TO 'cm'@'%' IDENTIFIED BY '123456';
	grant all on amon.* TO 'amon'@'%' IDENTIFIED BY '123456';
	grant all on hive.* TO 'hive'@'%' IDENTIFIED BY '123456';
	grant all on oozie.* TO 'oozie'@'%' IDENTIFIED BY '123456';
	grant all on hue.* TO 'hue'@'%' IDENTIFIED BY '123456';
	flush privileges;
	
	主节点修改server的配置:
	vim /opt/module/cm/cm-5.12.1/etc/cloudera-scm-server/db.properties
	com.cloudera.cmf.db.type=mysql
	com.cloudera.cmf.db.host=hadoop01
	com.cloudera.cmf.db.name=cm
	com.cloudera.cmf.db.user=root
	com.cloudera.cmf.db.password=123456
	com.cloudera.cmf.db.setupType=EXTERNAL
# 使用CM自带脚本,在Mysql中创建CM库
/opt/module/cm/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -h hadoop01 -uroot -p123456 --scm-host hadoop01 scm scm scm

# 执行上面如果报错,添加数据库用户scm,并授权
CREATE USER 'scm'@'%' IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'scm'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;

注意:如果这个不行的话,就使用上面的第二种方法

# 数据库远程连接密码和服务器连接密码:123456

# 参数说明
--scm-host:SCM server's hostname

1.3.6 分发cm

xsync /opt/module/cm

1.3.7 创建Parcel-repo(离线目录)

mkdir -p /opt/cloudera/parcel-repo
chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo

1.3.8 拷贝和下载文件

# 拷贝下载文件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到hadoop01的/opt/cloudera/parcel-repo目录下
mv CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel* /opt/cloudera/parcel-repo/
mv manifest.json /opt/cloudera/parcel-repo/

1.3.9 改文件名

# 将 CDH-5.12.1-1.cdh5.12.1.p0.3-el6.parcel.sha1 改名为:CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha
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.3.10 修改目录权限

# 在 hadoop01 上创建目录 /opt/cloudera/parcels,并修改该目录的所属用户及用户组为 cloudera-scm
mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels

1.3.11 分发/opt/cloudera

xsync /opt/cloudera

1.3.12 启动CM服务

# 1、启动服务节点:hadoop01,等一段时间
/opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-server start 

# 2、启动工作节点:hadoop01、hadoop02、hadoop03
/opt/module/cm/cm-5.12.1/etc/init.d/cloudera-scm-agent start

# 查看日志
cd /opt/module/cm/cm-5.12.1/log/cloudera-scm-agent
cd /opt/module/cm/cm-5.12.1/log/cloudera-scm-server

# 注意:
启动过程非常慢,Manager启动成功需要等待5分支左右,过程中会在数据库中创建对应的表需要耗费一些时间

# 3、产看被占用则表示安装成功了
netstat -nltp | grep 7180

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

1.3.13 CentOS 6 安装 CDH 5.12.1

https://www.cnblogs.com/MWCloud/p/11342883.html
CentOS 7 安装 CDH 5.12.1

1.3.14 CDH视频

https://www.bilibili.com/video/BV1mE411h7

1.4 其它

1.4.1 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 = 02; host <= 03; host++ )); do
    echo ------------------ hadoop0$host ------------------
    rsync -rvl $pdir/$fname $user@hadoop0$host:$pdir
done

1.4.2 xcall工具

  • 在所有主机上同时执行相同的命令
  • 在/usr/local/bin目录下创建xcall文件
  • 修改脚本xcall具有执行权限
  • 调用脚本形式:xcall 操作命令
#!/bin/bash
pcount=$#
if [ pcount == 0 ]; then
    echo "no args";
    exit;
fi

echo ----------- localhost -----------
$@
for (( host = 2; host <= 3; host++ )); do
    echo ----------- hadoop0$host ------------------
    ssh hadoop0$host $@
done

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章