文章目录
- 前言
- 1.组件版本
- 2.集群规划(三台服务器为例)
- 3.配置linux静态IP
- 4.修改hosts文件,并实现免密登录
- 5.创建集群分发脚本
- 6.关闭防火墙和SELINUX(所有节点)
- 7.配置NTP时钟同步
- 8.安装jdk和mysql
- 9.搭建本地yum源并安装
- 10.在数据库中建库
- 11.启动服务
- 12.访问网页及集群操作
- 总结
前言
Cloudera’s Distribution Including Apache Hadoop。简称CDH,解决了原生Apache hadoop版本管理混乱、部署过程繁琐、升级过程复杂、兼容性差、安全性低等缺点,能够对集群进行集中的管理和运维。其内各服务组件的安装也是非常的简单。通过的web页面也是极大的方便了人们对于集群状态的查看。
1.组件版本
Centos7
Mysql 5.7.25
Jdk1.8.0_144
Cm6.3.1
Cdh6.3.2
2.集群规划(三台服务器为例)
3.配置linux静态IP
IPADDR=192.168.2.201
GATEWAY=192.168.2.1
DNS1=8.8.8.8
4.修改hosts文件,并实现免密登录
[xu@node1 ~]$ ssh-keygen -t rsa
[xu@node1 ~]$ ssh-copy-id node1
[xu@node1 ~]$ ssh-copy-id node2
[xu@node1 ~]$ ssh-copy-id node3
5.创建集群分发脚本
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi
#2 获取文件名称
p1=
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环
for((host=1; host<=3; host++)); do
echo ------------------- node$host --------------
rsync -av $pdir/$fname $user@node$host:$pdir
done
6.关闭防火墙和SELINUX(所有节点)
修改配置文件/etc/selinux/config
[root@node1 bin]# vim /etc/selinux/config
将SELINUX=enforcing 改为SELINUX=disabled,然后将该文件分发;
需要重启
关闭防火墙
[root@node1 selinux]# systemctl stop firewalld.service
[root@node1 selinux]# systemctl disable firewalld.service
7.配置NTP时钟同步
1)NTP服务端配置
[root@node1 ~]# vi /etc/ntp.conf
注释掉所有的restrict开头的配置
修改#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
为restrict 192.168.2.201 mask 255.255.255.0 nomodify notrap
将所有server配置进行注释
添加下面两行内容
server 127.127.1.0
fudge 127.127.1.0 stratum 10
2)启动NTP服务 service ntpd start
[root@node1~]# service ntpd start
3)NTP客户端配置(在agent主机上进行配置node2,node3)
[root@hadoop103 ~]# vi /etc/ntp.conf
注释所有restrict和server配置
添加server 192.168.2.201
4)手动测试
[root@hadoop103~]# ntpdate 192.168.2.201
显示如下内容为成功:
17 Jun 15:34:38 ntpdate[9247]: step time server 192.168.1.102 offset 77556618.173854 sec
如果显示如下内容需要先关闭ntpd:
17 Jun 15:25:42 ntpdate[8885]: the NTP socket is in use, exiting
5)启动ntpd并设置为开机自启(每个节点node1,node2,node3)
[root@node2 ~]# chkconfig ntpd on
[root@node2 ~]# service ntpd start
6)使用群发date命令查看结果
8.安装jdk和mysql
安装JDK(三台)
1)在node1创建/usr/java目录
[root@node1 opt]# mkdir /usr/java (cloudera会到该目录下寻找JDK,即使配置java_home也不行)
2)用Xshell将jdk-8u144-linux-x64.tar.gz上传至hadoop102,并解压到/usr/java目录下。
[root@node1 ~]# tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/java/
3)配置JAVA_HOME环境变量
(1)打开/etc/profile文件
[root@node1 software]$ vi /etc/profile
在profile文件末尾添加JDK路径
#JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
(2)让修改后的文件生效
[root@node1 jdk1.8.0_144]$ source /etc/profile
4)测试JDK是否安装成功
[root@node1 jdk1.8.0_144]# java -version
java version "1.8.0_144"
5)将node1中的JDK和环境变量分发到node2、node3两台主机
[root@node1 opt]# xsync /usr/java/
[root@node1 opt]# xsync /etc/profile
分别在node2、node3上source一下
[root@node2 ~]$ source /etc/profile
[root@node3 ~]# source /etc/profile
安装MySQL及其驱动
mysql要安装在master中。
卸载原有的Maradb和Mysql
rpm -qa|grep mariadb
rpm -e --nodeps mariadb-libs
rpm -qa | grep mysql
解压之后
rpm -Uvh *.rpm --nodeps --force
1.首先关闭mysql服务 service mysqld stop
2.修改配置文件 vim /etc/my.cnf 添加skip-grant-tables
3.即可实现空密码登录
4.登录后先 flush privileges 改密码 set password for root@localhost = password('123456');
5.设置远程登录
6.重启mysql并设置为开机自启
9.搭建本地yum源并安装
[root@master ~]# yum -y install httpd
[root@master ~]# service httpd restart
Redirecting to /bin/systemctl restart httpd.service
[root@master ~]# chkconfig httpd on
编辑本地yum源配置文件,如果是纯没有网络的环境,需要将Centos-Base.repo改名
vim /etc/yum.repos.d/cloudera-manager.repo
文件内容如下
[cloudera-manager]
name=cloudera-manager
baseurl=http://192.168.2.201/cm6.3.1/
enabled=1
gpgcheck=0
然后使用之前编写的分发脚本分发该配置文件;
yum clean all
yum repolist
yum makecache
三个节点进行安装:
[root@node1 ~]# yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
[root@node2 ~]# yum install cloudera-manager-agent cloudera-manager-daemons
[root@node3 ~]# yum install cloudera-manager-agent cloudera-manager-daemons
报错:缺少一些环境,手动下载rpm包进行安装即可。
修改配置文件:
vim /etc/cloudera-scm-agent/config.ini
10.在数据库中建库
1)创建各组件需要的数据库
mysql> CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
2)为CM配置数据库(自带脚本)
下载数据库连接驱动:https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz
全部节点:并将jar包放在 /usr/share/java中。并改名为 mysql-connector-java.jar
将jar包拷贝
cp mysql-connector-java.jar /opt/cloudera/cm/schema/../lib/
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm root 123456
// scm 是数据库
11.启动服务
[root@node1 ~]# systemctl start cloudera-scm-server
[root@node1 ~]# systemctl start cloudera-scm-agent
[root@node2 ~]# systemctl start cloudera-scm-agent
[root@node3 ~]# systemctl start cloudera-scm-agent
12.访问网页及集群操作
通过 https://node1:7180 进行访问 用户和密码都是admin
使用本地的Parcel;
Hive的元数据需要放在安装mysql的Node1上。