CDH(5.13.1)大数据平台环境搭建
1准备工作
1.1版本选型
NO. 软件名称 版本
2)CM包:
CM版本:5.13.1
cloudera-manager-centos7-cm5.13.1_x86_64.tar.gz
下载地址:http://archive-primary.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.13.1_x86_64.tar.gz
3)CDH包
CDH版本:5.13.1,
CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel;
CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha1;
manifest.json
下载地址:
http://archive-primary.cloudera.com/cdh5/parcels/5.13.1/manifest.json
http://archive-primary.cloudera.com/cdh5/parcels/5.13.1/CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha1
http://archive-primary.cloudera.com/cdh5/parcels/5.13.1/CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel
4)JDBC连接jar包:
jar包版本:5.1.43,
mysql-connector-java-5.1.43.jar
下载地址:http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.43/mysql-connector-java-5.1.43.jar
1.4vm配置信息
1.6配置网卡信息
修改网卡 vi /etc/sysconfig/network-scripts/ifcfg-ens33
将该网卡信息修改为静态ip,配置如下
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=c41486f2-cec3-4113-b023-d2f2a24e245f
DEVICE=ens33
ONBOOT=yes
IPADDR=172.16.3.168
NETMASK=255.255.255.0
DNS1=172.16.3.2
GATEWAY=172.16.3.2
PREFIX=24
2基础环境配置
2.1修改机器名称(所有节点)
127.0.0.1 localhost.node168
172.16.3.168 node168
172.16.3.169 node169
172.16.3.170 node170
注意:第一行建议保留
2.2关闭防火墙(所有节点)
注意:安装部署可以关闭防火墙
关闭防火墙命令:
#(查询防火墙状态)
#systemctl stop firewalld.service (关闭防火墙)
#systemctl start firewalld.service (开启防火墙)
#systemctl disable firewalld.service (禁止firewall开机启动)
2.3关闭SELINUX(所有节点)
修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)
内容增加:
SELINUX=disabled
重启后生效:
查看SELINUX 是否关闭:
#sestatus
2.4修改内核参数(所有节点)
1设置swappiness,控制换出运行时内存的相对权重,Cloudera 建议将 swappiness 设置为 10:
//查看swappiness
//永久性修改,执行下面两条命令
2关闭透明大页面:
首先查看透明大页是否启用,[always] never表示已启用,always [never]表示已禁用:
[root@node168 ~]# cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
[root@node168 ~]# cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
以上状态表示已经打开
永久关闭:
//编辑/etc/rc.d/rc.local
//在文件后添加下面内容:
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
赋予权限
[root@node168 ~]# chmod +x /etc/rc.d/rc.local
3修改文件句柄数
//查看文件句柄数,显示1024,显然太小
1024
修改限制:
[root@node168 ~]# vi /etc/security/limits.conf
//在文件后加入下面内容:
#yum install -y python-lxml
#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
2.6配置时间同步(所有节点)
注:在centos7安装时候默认选择为上海时间,集群时间上保持同步
2.7安装jdk(所有节点)
1卸载自带jdk
2解压文件
[root@node168 local]# pwd
/usr/java
[root@node168 java]# mkdir java
[root@node168 software]# tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local/java/
注:jdk安装目录一定要在/usr/local/java下面,不然后面会出问题
3配置环境变量
[root@node168 java]# vi /etc/profile
//添加环境变量
export JAVA_HOME=/usr/java/jdk1.8.0_151
export PATH= P A T H : PATH: PATH:JAVA_HOME/bin
//生效
[root@node168 java]# source /etc/profile
2.8配置免密码登录
[root@node168 ~]# pwd
/root
[root@node168 ~]# ssh-keygen -t rsa
把公钥拷贝至node169服务器上 :
如果提示下面信息,则需要创建./ssh目录:
-bash: /root/.ssh/authorized_keys: No such file or directory
//创建/.ssh目录,再追加公钥内容
并设置authorized_keys的访问权限:
测试:在node168点上执行ssh node169,正常情况下,不需要密码就能直接登陆进去了。
在node168节点出现下面表示成功登录node169节点:
2.9安装mysql(主节点)
1解压安装包
[root@node168 software]# tar -xvf mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar -C /usr/mysql/
2按次序安装
按common–>libs–>client–>server的顺序安装:
注意:此处有bug,应该是依赖相互冲突导致
解决方法,移除相应依赖
[root@node168 mysql]# yum -y remove mariadb-libs-1:5.5.60-1.el7_5.x86_64
安装文件:
[root@node168 mysql]# rpm -ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm
[root@node168 mysql]# rpm -ivh mysql-community-libs-5.7.18-1.el7.x86_64.rpm
[root@node168 mysql]# rpm -ivh mysql-community-client-5.7.18-1.el7.x86_64.rpm
[root@node168 mysql]# rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm
[root@node168 mysql]# rpm -ivh mysql-community-devel-5.7.18-1.el7.x86_64.rpm
//安装下面包,否则Hue安装报连接错误
[root@node168 mysql]# rpm -ivh mysql-community-libs-compat-5.7.18-1.el7.x86_64.rpm
查看状态:
1、先修改配置文件/etc/my.cnf令MySQL跳过登录时的权限检验,在[mysqld]下加入一行:
[root@node168 ~]# vi /etc/my.cnf
skip-grant-tables
2,重启mysql
[root@node168 ~]# service mysqld restart
3,免密码登录MySQL
[root@node168 ~]# mysql
4,mysql客户端执行如下命令,修改root密码
mysql> use mysql;
mysql> UPDATE user SET authentication_string = password(‘123456’) WHERE host = ‘localhost’ AND user = ‘root’;
mysql> select host,user, authentication_string, password_expired from user;
mysql> update user set password_expired=‘N’ where password_expired=‘Y’; //密码不过期
mysql> update user set host=’%’ where user=‘root’ and host=‘localhost’; //远程可访问
mysql> flush privileges; //刷新
mysql> exit;//退出
5、修改配置文件/etc/my.cnf删除此前新增那一行skip-grant-tables,并重启MySQL(这一步非常重要,不执行可能导致严重的安全问题)
[root@node168 ~]# service mysqld restart //重启 Mysql
3安装cm
3.1解压文件
[root@node168 software]# tar -zxvf cloudera-manager-centos7-cm5.13.1_x86_64.tar.gz -C /opt/
3.2初始化数据库(此处问题比较多)
注:通过修改/etc/my.cnf 目录下配置文件,修改设置密码策略的级别,只需要在[mysqld]下1添加一行
validate_password = off
不然可能会出现bug
java.sql.SQLException: Your password does not satisfy the current policy requirements
2重启数据库
[root@node168 ~]# service mysqld restart
3进入数据库
[root@node168 ~]# mysql -uroot -p
Enter password:
4创建数据库
Enter password: \输入数据库密码
//在MariaDB [(none)]>命令状态输入下面脚本:
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database monitor DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database mangaer DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
grant all privileges on . to root@localhost identified by ‘root’ with grant option;
grant all on . to root@"%" Identified by “root”;
flush privileges;
exit;
//复制Mysql JDBC包到/opt/cm-5.13.1/share/cmf/lib/目录
[root@node168 software]# cp mysql-connector-java-5.1.43-bin.jar /opt/cm-5.13.1/share/cmf/lib/
//初始化CM,执行下面脚本
[root@node168 software]# /opt/cm-5.13.1/share/cmf/schema/scm_prepare_database.sh mysql cm -hnode168 -uroot -proot --scm-host node168 scm scm scm
脚本/scm_prepare_database.sh 执行成功界面:
//如果出现下面错误:
java.sql.SQLException: Access denied for user ‘root’@‘localhost’ (using password: YES)
//解决办法:
在/etc/hosts 文件中,加上
127.0.0.1 localhost.node168
3.3创建用户(所有节点)
useradd --system --home=/opt/cm-5.13.1/run/cloudera-scm-server --shell=/bin/false --comment “Cloudera SCM User” cloudera-scm
3.4 制作本地YUM源
1//拷贝三个文件到/opt/cloudera/parcel-repo/目录
[root@node168 software]# cp CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha1 manifest.json /opt/cloudera/parcel-repo/
2//进入/opt/cloudera/parcel-repo/目录
[root@node168 software]# cd /opt/cloudera/parcel-repo/
3//修改文件名
[root@node168 parcel-repo]# mv CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha1 CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha
3.5拷贝jar包(所有节点)
1创建文件夹(文件目录必须一样),每台机器都执行
[root@node168 parcel-repo]# mkdir -p /usr/share/java
2上传jar,并且修改名称
[root@node168 software]# cp mysql-connector-java-5.1.43-bin.jar /usr/share/java/mysql-connector-java.jar
3将mysql JDBC jar 包拷贝到 /opt/cm-5.13.1/share/cmf/lib/ 目录(主节点执行)
[root@node168 software]# cp mysql-connector-java-5.1.43-bin.jar /opt/cm-5.13.1/share/cmf/lib/
3.6修改cloudera-scm-agent配置
1在主节点上,修改/opt/cm-5.13.1/etc/cloudera-scm-agent/config.ini文件:
//将config.ini server_host=localhost 内容改为server_host=172.16.3.168
[root@node168 ~]# vi /opt/cm-5.13.1/etc/cloudera-scm-agent/config.ini
2文件打包分发(在主节点上):
//将cm-5.13.1 打包,并复制到其他节点
[root@node168 ~]# cd /opt
[root@node168 opt]# tar czf cm-5.13.1.tar.gz cm-5.13.1/
//复制到其他节点
[root@node168 opt]# scp cm-5.13.1.tar.gz node169:/opt/
[root@node168 opt]# scp cm-5.13.1.tar.gz node170:/opt/
3解压文件并删除压缩包
[root@node169 opt]# tar -xzvf cm-5.13.1.tar.gz
[root@node169 opt]# rm -rf cm-5.13.1.tar.gz
3.7启动CM Server和Agent
1在主节点上,启动cloudera-scm-server:
[root@node168 ~]# /opt/cm-5.13.1/etc/init.d/cloudera-scm-server start
启动过程较慢,可通过/opt/cm-5.13.1/log/cloudera-scm-server日志,查看启动过程。
2在所有节点上,启动cloudera-scm-agent:
[root@node168 ~]# /opt/cm-5.13.1/etc/init.d/cloudera-scm-agent start
3.8访问cm
地址:http://主节点IP:7180
用户名、密码:admin