1.1.环境搭建所需安装文件表

项目名称 包名
Liunx系统: CentOS-7-x86_64-Minimal-1511
JDK: jdk-8u131-linux-x64.tar.gz
MySQL文件: compat-mysql51-5.1.73-1.el6.remi.x86_64.rpm
mysql-connector-java-5.1.46-bin.jar
MySQL-client-5.6.42-1.el7.x86_64.rpm
MySQL-devel-5.6.42-1.el7.x86_64.rpm
MySQL-server-5.6.42-1.el7.x86_64.rpm
Cloudera Manager 安装包:
http://archive.cloudera.com/cm5/cm/5/
cloudera-manager-centos7-cm5.11.0_x86_64.tar.gz
CDH 5.11 安装包:
http://archive.cloudera.com/cdh5/parcels/latest/
CDH-5.11.0-1.cdh5.11.0.p0.34-el7.parcel
CDH-5.11.0-1.cdh5.11.0.p0.34-el7.parcel.sha1
manifest.json
KAFKA安装包:
csd: http://archive.cloudera.com/csds/kafka/
parcel:http://archive.cloudera.com/kafka/parcels/latest/
KAFKA-1.2.0.jar
KAFKA-2.1.1-1.2.1.1.p0.18-el7.parcel
KAFKA-2.1.1-1.2.1.1.p0.18-el7.parcel.sha1
manifest.json
SPARK2安装包:
csd:http://archive.cloudera.com/spark2/csd/
parcel:http://archive.cloudera.com/spark2/parcels/2.1.0.cloudera1/
SPARK2_ON_YARN-2.1.0.cloudera1.jar
SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el7.parcel
SPARK2-2.1.0.cloudera1-1.cdh5.7.0.p0.120904-el7.parcel.sha1
manifest.json
Phoenix:
http://archive.cloudera.com/cloudera-labs/phoenix/parcels/1.3/
CLABS_PHOENIX-4.7.0-1.clabs_phoenix1.3.0.p0.000-el7.parcel
CLABS_PHOENIX-4.7.0-1.clabs_phoenix1.3.0.p0.000-el7.parcel.sha1
manifest.json
Zeppelin:
http://zeppelin.apache.org/download.html
zeppelin-0.8.0-bin-all.tgz

2、安装Linux系统

3、配置静态IP

#vi /etc/sysconfig/network-scripts/ifcfg-eth0:添加静态IP。
注:网卡配置文件不一定是eth0,如果有多块网卡要配置对应的网卡配置文件。
CDH5.11安装详解
保存退出 :wq
重启:service network restart
验证 : ifconfig
CDH5.11安装详解

4、修改主机名

#Vim /etc/sysconfig/network
HOSTNAME=NameNode
确实修改生效命令:
#hostname NameNode
检查主机名:
#hostname
其他4台一样修改为SNameNode、DataNode1、 DataNode 2、 DataNode 3

5、修改hosts列表

打开文件添加列表:
#Vim /etc/hosts

10.200.90.162 SNameNode
10.200.90.163 DataNode1
10.200.90.164 DataNode2
10.200.90.165 DataNode3

6、关闭防火墙

如果你的系统上没有安装防火墙,使用命令安装
安装firewalld 防火墙:
#yum install firewalld
开启服务:
#systemctl start firewalld.service
关闭防火墙:
#systemctl stop firewalld.service
开机自动启动:
#systemctl enable firewalld.service
关闭开机制动启动:
#systemctl disable firewalld.service
使用firewall-cmd 命令查看状态:
#firewall-cmd --state //running 表示运行

7、修改selinux

对于强制访问控制的实现
# vim /etc/sysconfig/selinux
SELINUX=disabled
重启才能生效,重启后检查
#sestatus -v
SELinux status: disabled
表示已经关闭了

8、NTP时钟与主机同步

NTP服务的安装和配置
首先安装ntp
#yum install ntp
安装完毕之后,启动服务
#systemctl start ntpd.service
设置开机自启动
#systemctl enable ntpd.service
修改/etc/ntp.conf文件:
#vim /etc/ntp.conf
注释掉所有server ..*的指向,新添加一条可连接的ntp服务器
server ntp1.aliyun.com iburst
在其他节点上把ntp指向master服务器地址即可。
注意:如果修改不成功直接配置和主节点一样。
server 10.200.90.161 iburst
设置后,重启ntpd服务,用ntpstat来检查效果【大概几秒钟就可以看到效果】
#systemctl restart ntpd
#ntpstat
CDH5.11安装详解
检查是否已同步,配置完以后5台服务器的时间是同步的。
#date
CDH5.11安装详解

9、Ssh免**登录

查看是否安装openssh和rsync如果没有安装则使用yum安装。
#rpm -qa | grep openssh
#rpm -qa | grep rsync
输入:ssh-****** -t rsa一路回车即可,生成的**写入一个文件中:
#cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
然后将其他4台的**写入本机的authorized_keys文件,再复制到每台相应的文件中。
注意:复制粘贴的不行,需要用cat * >> * ,命令才能生效。
验证:
#ssh SNameNode
CDH5.11安装详解

10、安装JDK(所有节点)

在/usr目录下创建java目录:#mkdir java
在此目录下解压jdk包:
#tar -zxvf jdk-8u131-linux-x64.tar.gz
配置环境变量,打开文件加入下面两行:
#vim /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_131
export PATH=$PATH:$JAVA_HOME/bin

使配置生效:
#source /etc/profile
验证:
#java -version
CDH5.11安装详解

11、安装mysql数据库(NameNode节点)

11.1.Mysql检查

检查mysql是否安装:
#rpm -qa | grep -i mysql;
删除原有的mysql:
#yum -y remove mysql-libs*;
在/opt下创建rpm文件,将mysql的RPM包(如下三个文件)放入/opt/rpm文件下
MySQL-server-5.6.42-1.el7.x86_64.rpm
MySQL-devel-5.6.42-1.el7.x86_64.rpm
MySQL-client-5.6.42-1.el7.x86_64.rpm

11.2.安装mysql

#rpm -ivh MySQL-server-5.6.42-1.el7.x86_64.rpm
#rpm -ivh MySQL-devel-5.6.42-1.el7.x86_64.rpm
#rpm -ivh MySQL-client-5.6.42-1.el7.x86_64.rpm
错误处理1:
CDH5.11安装详解
需要安装autoconf:
#yum -y install autoconf

参考网站:http://blog.itpub.net/29989552/viewspace-2128991/

错误处理2:
CDH5.11安装详解

分析:这是在安装过程中有依赖包发生了冲突,解决思路,要么忽略冲突,要么删除有冲突的依赖包。

解决办法1:后面加上–force –nodeps(推荐)
#rpm -ivh MySQL-server-5.6.42-1.el7.x86_64.rpm --force –nodeps
解决办法2:删除依赖包
yum -y remove mysql-libs-1*

参考网站:
https://blog.csdn.net/wisdom_c_1010/article/details/55506081
https://blog.csdn.net/testcs_dn/article/details/39026213

11.3.配置文件位置

#cp /usr/share/mysql/my-default.cnf /etc/my.cnf
在配置文件中末尾增加以下配置并保存
#vim /etc/my.cnf

[mysqld] 
default-storage-engine = innodb 
innodb_file_per_table 
collation-server = utf8_general_ci 
init-connect = 'SET NAMES utf8' 
character-set-server = utf8

11.4.初始化mysql及设置密码

#/usr/bin/mysql_install_db
#service mysql start  //启动服务
#cat /root/.mysql_secret  //查看root账号密码
password set for the root user at Wed Dec 11 23:32:50 2013 (local time): qKTaFZnl
#mysql -uroot –pqKTaFZnl
mysql> SET PASSWORD = PASSWORD('123456');    #设置密码为123456
mysql> exit
#mysql -uroot -p123456

11.5.允许远程登陆

mysql> use mysql;
mysql> select host,user,password from user;

CDH5.11安装详解

mysql> update user set password=password('123456') where user='root';
mysql> update user set host='%' where user='root' and host='localhost';
mysql> flush privileges;
mysql> exit

11.6.创建数据库

mysql> create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> create database monitor DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on *.* to [email protected]"%" Identified by "123456";
mysql> flush privileges ;

11.7.设置开机自启动

#chkconfig mysql on
#chkconfig --list | grep mysql
mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
MySQL的默认安装位置
/var/lib/mysql/ #数据库目录
/usr/share/mysql #配置文件目录
/usr/bin #相关命令目录
/etc/init.d/mysql #启动脚本

12、安装Cloudera-Manager

12.1.解压CM tar包

解压cm tar包到指定目录所有服务器都要或者在主节点解压好,然后通过scp到各个节点同一目录下。
#mkdir /opt/cloudera-manager
#tar -axvf cloudera-manager-centos7-cm5.11.0_x86_64.tar.gz -C /opt/cloudera-manager

12.2.创建cloudera-scm用户(所有节点)

#useradd --system --home=/opt/cloudera-manager/cm-5.11.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment “Cloudera SCM User” cloudera-scm

12.3.创建本地元数据保存目录(主节点)

在主节点创建cloudera-manager-server的本地元数据保存目录
#mkdir /var/cloudera-scm-server
#chown cloudera-scm:cloudera-scm /var/cloudera-scm-server
#chown cloudera-scm:cloudera-scm /opt/cloudera-manager

12.4.拷贝mysql-connector-java到各个节点指定目录下(所有的节点)

将下载好的mysql-connector-java-5.1.46-bin.jar放到/opt/cloudera-manager/cm-5.11.0/share/cmf/lib/和/usr/share/java(如果没有这个目录则新建)目录下,并修改文件名,
# mv mysql-connector-java-5.1.46-bin.jar mysql-connector-java.jar。

12.5.配置从节点cloudera-manger-agent指向主节点服务器(所有节点)

#vim /opt/cloudera-manager/cm-5.11.0/etc/cloudera-scm-agent/config.ini
将server_host改为CMS所在的主机名即NameNode

12.6.创建parcel-repo仓库目录(主节点)

#mkdir -p /opt/cloudera/parcel-repo
#chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
将下载好的文件放入/opt/cloudera/parcel-repo下,
CDH-5.11.0-1.cdh5.11.0.p0.34-el7.parcel
CDH-5.11.0-1.cdh5.11.0.p0.34-el7.parcel.sha
manifest.json
注意:其中CDH-5.11.0-1.cdh5.11.0.p0.34-el7.parcel.sha1后缀要把1去掉。

12.7.创建parcels目录(所有节点)

#mkdir -p /opt/cloudera/parcels
#chown cloudera-scm:cloudera-scm /opt/cloudera/parcels

解释:Clouder-Manager将CDHs从主节点的/opt/cloudera/parcel-repo目录中抽取出来,分发解压**到各个节点的/opt /cloudera/parcels目录中。

12.8.初始脚本配置数据库scm_prepare_database.sh(主节点)

#/opt/cloudera-manager/cm-5.11.0/share/cmf/schema/scm_prepare_database.sh mysql -hNameNode -uroot -p123456 --scm-host NameNode scm scm scm
说明:这个脚本就是用来创建和配置CMS需要的数据库的脚本。各参数是指:mysql:数据库用的是mysql,如果安装过程中用的oracle,那么该参数就应该改为oracle。-hhadoop1:数据库建立在hadoop1主机上面。也就是主节点上面。-uroot:root身份运行mysql。-123456:mysql的root密码是***。–scm-host hadoop1:CMS的主机,一般是和mysql安装的主机是在同一个主机上。最后三个参数是:数据库名,数据库用户名,数据库密码。
错误1: ERROR com.cloudera.enterprise.dbutil.DbProvisioner - Exception when creating/dropping database with user 'root' and jdbc url 'jdbc:mysql://localhost/?useUnicode=true&characterEncoding=UTF-8' java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
解决方案:如果执行的时候报以上错误,可能是配置hosts的有问题,#vim /etc/hosts添加127.0.0.1 localhost.NameNode。
错误2: ERROR com.cloudera.enterprise.dbutil.DbProvisioner - Exception when creating/dropping database with user 'root' and jdbc url 'jdbc:mysql://localhost/?useUnicode=true&characterEncoding=UTF-8' java.sql.SQLException: Your password has expired. To log in you must change it using a client that supports expired passwords.
解决方案:数据库的密码过期,

mysql>use mysql;
mysql> select host,user,password_expired from user;

CDH5.11安装详解
这里可以重新设置mysql的数据,然后刷新,或者直接将过期设置不检测

mysql>use mysql;
mysql> update user set password_expired='N' where user='root';
Query OK, 2 rows affected (0.00 sec)
Rows matched: 5  Changed: 2  Warnings: 0
mysql> flush privileges;

CDH5.11安装详解

12.9.启动主节点cloudera-scm-server

#cp /opt/cloudera-manager/cm-5.11.0/etc/init.d/cloudera-scm-server /etc/init.d/cloudera-scm-server
#chkconfig cloudera-scm-server on
此时service cloudera-scm-server start的话会报错:
CDH5.11安装详解
因为cloudera-scm-server里面的变量路径配置不正确!
#vim /etc/init.d/cloudera-scm-server
CMF_DEFAULTS=${CMF_DEFAULTS:-/etc/default}改为=/opt/cloudera-manager/cm-5.11.0/etc/default
此时service cloudera-scm-server start就不会报错了,同时为了保证在每次服务器重启的时候都能启动cloudera-scm-server,应该在开机启动脚本中加入命令:
#vim /etc/rc.local
service cloudera-scm-server restart
保存退出。

12.10.重启自动启动脚本(所有节点)

看了上面的注释就明白了吧,其实给rc.local加上执行权限就可以了
#ll /etc/rc.local

lrwxrwxrwx. 1 root root 13 216 23:32 /etc/rc.local -> rc.d/rc.local

#ll /etc/rc.d/rc.local

-rw-r--r--. 1 root root 502 39 00:16 /etc/rc.d/rc.local

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

-rwxr-xr-x. 1 root root 502 39 00:16 /etc/rc.d/rc.local

12.11.启动cloudera-scm-agent(所有节点)

#mkdir /opt/cloudera-manager/cm-5.11.0/run/cloudera-scm-agent
#cp /opt/cloudera-manager/cm-5.11.0/etc/init.d/cloudera-scm-agent /etc/init.d/cloudera-scm-agent
#chkconfig cloudera-scm-agent on
同样此时service cloudera-scm-agent start的话会报错:
CDH5.11安装详解
因为cloudera-scm-agent里面的变量路径配置不正确!参照上文server中的配置
#vim /etc/init.d/cloudera-scm-agent
CMF_DEFAULTS=${CMF_DEFAULTS:-/etc/default}改为=/opt/cloudera-manager/cm-5.11.0/etc/default
此时service cloudera-scm-agent start就不会报错了,同时为了保证在每次服务器重启的时候都能启动cloudera-scm-agent,应该在开机启动脚本/etc/rc.local中加入命令:service cloudera-scm-agent restart

13、在浏览器安装CDHs

等待主节点安装并且启动就在浏览器中进行操作了进入10.200.90.161:7180 默认使用admin admin登录以下在浏览器中使用操作安装

13.1.选择express版本

CDH5.11安装详解

13.2.组件提示

CDH5.11安装详解
配置主机!由于我们在各个节点都安装启动了agent,并且在各个节点都在配置文件中指向NameNode是server节点,所以各个节点的agent就会给agent发消息报告,所以这里我们可以在“当前管理的主机”中看到五台个主机,全部勾选并继续。注意如果cloudera-scm-agent没有设为开机启动,如果以上有重启这里可能会检测不到其他服务器。
CDH5.11安装详解
CDH5.11安装详解
在每台机器中执行:
#echo 10 > /proc/sys/vm/swappiness
#echo never > /sys/kernel/mm/transparent_hugepage/defrag
#echo never > /sys/kernel/mm/transparent_hugepage/enabled
并编辑vim /etc/rc.local 加入以上2,3两天语句。

13.3.选择相应的CDH版本

点击继续,就开始分发parcels到各个节点。选择要安装的服务,这里选择所有服务。
CDH5.11安装详解

13.4.角色分配

最好自己分配各个角色所在的节点,如果不知道怎么分配角色先使用默认的。后期也可以修改。
CDH5.11安装详解

13.5.数据库设置选择

CDH5.11安装详解
图上显示Hue数据库连接失败,解决方法,下载compat-mysql51-5.1.73-1.el6.remi.x86_64.rpm文件。然后安装。
#rpm -ivh compat-mysql51-5.1.73-1.el6.remi.x86_64.rpm
CDH5.11安装详解
安装后,无需建立软链接,自然就有了。
CDH5.11安装详解
#vim /etc/ld.so.conf打开文件在尾部添加:/usr/lib64/mysql 保存退出。但是这里,需要执行一下#ldconfig命令。

说明:ldconfig命令的用途主要是在默认搜寻目录/lib和/usr/lib以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件。缓存文件默认为/etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表,为了让动态链接库为系统所共享,需运行动态链接库的管理命令ldconfig,此执行程序存放在/sbin目录下。
参考网站:https://blog.csdn.net/shushugood/article/details/76686062

再次尝试测试连接,依然失败,查看日志文件/opt/cloudera-manager/cm-5.11.0/log/cloudera-scm-server/cloudera-scm-server.log显示:
CDH5.11安装详解
解决办法:
#yum install libxslt.so* 自动安装缺少的包。

参考网站:https://blog.csdn.net/lzwglory/article/details/54808074

CDH5.11安装详解
问题解决,然后一路点继续,直到完成。Hue的默认访问端口为8888。

13.6.配置NameNode HA

1、从CDH Manager页面进入HDFS,点开右上角”操作”->”启用Hign Availability”。
CDH5.11安装详解
2、进入”下一步”,填写Nameservice名称,默认值为”nameservice1”
注意:nameservice名称是任意的,但是HA配置中不可缺少的,因为在没有HA的情况下访问Hadoop可以通过唯一的NameNode,但如果配置HA的话可以使用Nameservice作为HDFS绝对路径的一部分用于HDFS访问。
3、进入”下一步”,分配角色,选择备份NameNode节点,以及选择至少3个节点作为JournalNode
注意:JournalNode的作用是共享存储,它是主备NameNode节点都可读写的共享目录,系统是否可用也受限于共享目录是否可用,因此Cloudera配置HA时定义JournalNode至少3台或以上,这是为了消除所有的单点故障。

CDH5.11安装详解
4、审核更改,配置备份NameNode节点的NameNode数据目录以及JournalNode编辑目录(备份NameNode的数据目录默认与主NameNode的数据目录一致,但缺少情况下JournalNode编辑目录为空,需要自己指定)
注意:附加选项,这表明如果配置了NameNode HA,Secondary NameNode将被移除,如果HA和Secondary NameNode同时存在将会报错。

CDH5.11安装详解
CDH5.11安装详解
5、开始启用High Availability,包括一系列的操作,涉及JournalNode、Zookeeper组件。如果发现有如下错误信息,可以忽略。
CDH5.11安装详解
6、完成,查看HDFS页面
CDH5.11安装详解

13.7.修改Hive元数据信息

做完HA后 hive 查询hdfs上文件只认 hdfs://nameservice1,需要修改hive 元数据库MySQL数据库里面hive库下的DBS和SDS表信息。
DBS:Hive数据仓库的总路径
SDS :Hive每张表对应的路径
将原来节点信息修改为HA后的名称。
DBS 表DB_LOCATION_URI:hdfs://nodexx:8020/user/hive/warehouse 修改为hdfs://nameservice1/user/hive/warehouse 即可。
CDH5.11安装详解

mysql>update DBS set DB_LOCATION_URI='hdfs://nameservice1/user/hive/warehouse' where DB_ID=1;
mysql>update DBS set DB_LOCATION_URI='hdfs://nameservice1/user/hive/warehouse/demo.db' where DB_ID=2925;

CDH5.11安装详解
SDS表 需要将LOCATION 修改为hdfs://nameservice1开头。
CDH5.11安装详解
CDH5.11安装详解

相关文章:

  • 2022-12-23
  • 2021-11-29
  • 2021-12-01
  • 2021-11-29
  • 2021-07-31
  • 2021-10-19
  • 2021-06-16
  • 2021-07-26
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-01-20
  • 2021-05-10
  • 2022-12-23
  • 2021-10-27
  • 2022-12-23
相关资源
相似解决方案