CentOS7搭建CDH5.16.1教程

简介

因为之前我搭建的是Apache原生的,维护起来很麻烦,重启什么的都需要写脚本,太麻烦了,所以这次公司需要搭建集群,我就选择了CDH5.16.1的进行搭建。

环境及角色分配

环境是ContOS7系统的6台机器,1.8T磁盘,32G内存,8核16线程的CPU。

ip 主机名 角色
192.168.25.120 server server
192.168.25.121 agent1 agent
192.168.25.122 agent2 agent
192.168.25.123 agent3 agent
192.168.25.124 agent4 agent
192.168.25.125 agent5 agent

因为是公司的机器,配置好,我就玩命的造次了。
在这里插入图片描述

软件下载

不想自己找资源的朋友点这个
链接:点我哟~~~
提取码:a6cu

安装CM前主机准备

1. JDK的安装(压缩包里有jdk1.8的包),先(java -version)看一下有没有自带的,有的话删除了再装。

mkdir -p /usr/share/java/

cd /usr/share/java/

把JDK上传到这个目录下,然后解压。

tar -zxvf ./jdk-8u201-linux-x64.tar.gz

配置环境变量

vim /etc/profile

在最后面添加

#jdk配置
export JAVA_HOME=/usr/share/java/jdk1.8.0_201
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

2.主机名映射

vim /etc/hosts

添加

192.168.25.120 server
192.168.25.121 agent1
192.168.25.122 agent2
192.168.25.123 agent3
192.168.25.124 agent4
192.168.25.125 agent5

3.关闭防火墙(每台都要做)

systemctl stop firewalld
 
systemctl disable firewalld

4.禁止交互(每台都要做)

vim /etc/sysctl.conf

添加一行 vm.swappiness=0

sudo sysctl vm.swappiness=0

5.禁止大页面(每台都要做)
执行命令1

echo never > /sys/kernel/mm/transparent_hugepage/defrag
 
echo never > /sys/kernel/mm/transparent_hugepage/enabled

执行命令2

vim /etc/rc.local

增加两行:
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
执行命令3

chmod +x /etc/rc.d/rc.local

6.免密登录

ssh-keygen -t rsa

四个回车就好了

cd ~/.ssh

然后

ssh-copy-id xxxx

xxxx就是你要发送的主机名,前提是你做了主机名映射,不然就写对应的ip。
7.mysql的安装
先查看有没有自带的数据库,有的话就卸载掉

rpm -qa | grep mariadb

rpm -e --nodeps  mariadb-libs-5.5.56-2.el7.x86_64

如果你的机器有网的话看这里

cd /usr/local/src
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
yum -y install mysql-server

四条命令依次执行就好了。
没网的话需要自己下载离线包安装哟。之前的连接里有mysql5.7.24的离线包。
百度一个离线安装的教程就好了,我没记错的话是解压之后依次安装common,lib,client,server。

然后你还需要做的就是修改初始密码,创建表,给权限,这里我就把命令放在下面;

grant all on *.* to '你的用户名'@'%' identified by '你的密码'  with grant option;  -- 授权

create database hive; 

create database hue;

create database ooz;

create database scm;

我都空格好了,直接复制执行就好。

上传数据库驱动,压缩包里有
在所有节点,将准备好的数据库驱动上传到/usr/share/java目录下

友情提示:到这里你的准备工作就做完了,如果是虚拟机里做的,这里最好做一个快照。

CM的安装和CDH的装备

1.不同节点创建文件夹并授权

mkdir -p /opt/cloudera-manager	--在所有上创建

mkdir -p /opt/cloudera/parcel-repo	--在server上创建

mkdir -p /opt/cloudera/parcels	--在所有的agent节点上创建

mkdir -p  /opt/cloudera-manager/cm-5.16.1/run/cloudera-scm-agent	 --在所有的agent节点上创建

chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/   -在server上

chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcels   -在agent上

2.上传源
将cloudera-manager-centos7-cm5.16.1_x86_64.tar.gz,CDH5.16.1的三个文件上传到服务器,自己创建一个文件夹。(记住创建在哪了)
3.在所有节点,解压该文件到/opt/cloudera-manager目录。

tar -zxvf /xxx/cloudera-manager-centos7-cm5.16.1_x86_64.tar.gz -C /opt/cloudera-manager	--xxx是你们的目录,不要直接复制

4.在所有节点,创建用户,这是CM需要使用的用户

sudo useradd --system --home=/opt/cloudera-manager/cm-5.16.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

5.在所有的agent节点,执行命令

vim /opt/cloudera-manager/cm-5.16.1/etc/cloudera-scm-agent/config.ini

修改server_host为server节点的主机名,我的就是server_host=server

6.在server节点上执行命令。初始化数据库scm。mysql table username password分别代表:数据库类型 database名称 数据库用户名 数据库密码

/opt/cloudera-manager/cm-5.16.1/share/cmf/schema/scm_prepare_database.sh  mysql table username password 

注意:这条命令要执行成功,需要server和MySQL在一个节点上。如果不在一个节点上,需要使用-hmysqlserver命令指定MySQL主机位置,比如如果MySQL安装机器IP为192.168.1.101,那么执行命令为

/opt/cloudera-manager/cm-5.16.1/share/cmf/schema/scm_prepare_database.sh -h 192.168.1.101   mysql table username password

如果出现如下提示,则证明CM元数据创建成功。

All done, your SCM database is configured correctly!
7.将准备好的CDH5.16.1的3个文件,上传至主节点/opt/cloudera/parcel-repo路径下
记得把一个.sha1的文件重命名为.sha
8.启动CM

/opt/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-server start	--server节点运行

/opt/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-agent start	--agent节点运行

9.当问server:7180
在这里插入图片描述
不要急,如果没出现可以等一下,不过一般会很快就出现。
如果出现上面界面就说明成功了,用户名密码都是admin。接下来就是一步一步的配置

10.web界面操作安装cdh
这里我就不细说了,根据提示的步骤一步一步来就行了。
但是补充几点。
1)hue
如果显示链接不上数据库
通过查看日志:tail -f 300 /opt/cloudera-manager/cm-5.16.1/log/cloudera-scm-server/cloudera-scm-server.log

可以看到在说什么这个错误:

Error loading MySQLdb module: libmysqlclient.so.18: cannot open shared object file: No such file or directory

原因是:

/usr/lib64/mysql目录下没有libmysqlclient.so.18文件,可能可以看到libmysqlclient.so.20文件

原因是mysql-community-libs-compat-5.7.23-1.el7.x86_64.rpm没有安装(具体版本和你安装的MySQL版本有关)

解决办法是:

去MySQL官网,找到安装的对应MySQL版本的这个mysql-community-libs-compat-5.7.23-1.el7.x86_64.rpm包,只有几兆

然后下载下来上传到server上(我的server和MySQL安装在同一个节点上,如果server和MySQL不在同一个节点,那么可以尝试这两个节点都去安装一下),安装:

rpm -ivh mysql-community-libs-compat-5.7.23-1.el7.x86_64.rpm

然后群集设置重新检测一下就OK。

怎么找rpm包,可以参考https://blog.csdn.net/smiles13/article/details/81460617

2)oozie界面
oozie界面不展示是因为缺少ExtJs2.2。
下载ext-2.2.zip
将ext-2.2.zip上传到/var/lib/oozie/

cd /var/lib/oozie/

 unzip ./ext-2.2.zip
 
 chown -R oozie:oozie ext-2.2

然后去刷新页面就会好了。

3.hue load balancer启动失败
运行下面两行命令,再从7180界面重启就好了(记得是安装load balancer的那台服务器)

yum -y install httpd

yum -y install mod_ssl

搭建好之后修改权限 dfs.permissions,去掉勾就好了,不然root用户操作不了hdfs。

现在就大功告成了。

CentOS7搭建CDH5.16.1教程_第1张图片

补充:
hue就是不成功,运行这个安装
sudo yum install krb5-devel cyrus-sasl-gssapi cyrus-sasl-deve libxml2-devel libxslt-devel mysql mysql-devel openldap-devel python-devel python-simplejson sqlite-devel -y

你可能感兴趣的:(CentOS7搭建CDH5.16.1教程)