CDH5.15安装

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

CDH5.15安装指南

1.集群规划

CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可直接用于生产环境。

Cloudera Manager则是为了便于在集群中进行Hadoop等大数据处理相关的服务安装和监控管理的组件,对集群中主机、Hadoop、Hive、Spark等服务的安装配置管理做了极大简化。

本文安装选择全离线安装方式,主机6台,系统版本CentOS6.7。具体配置如图所示:

 

 

 

2.环境准备

2.1 配置hosts

(1)在每台机器上修改hostname

#查看当前host
hostname 
#临时修改hostname,重启后无效
hostname uat2 
#在此处永久修改
vim /etc/sysconfig/network
         NETWORKING=yes
         #修改主机名
         HOSTNAME=uat2.hadoop.feidai.com

 

(2)修改每台机器的hosts文件

vim /etc/hosts
#添加以下主机列表
172.16.100.217   uat1.hadoop.feidai.com uat1
172.16.100.218   uat2.hadoop.feidai.com uat2
172.16.100.219   uat3.hadoop.feidai.com uat3
172.16.100.220   uat4.hadoop.feidai.com uat4
172.16.100.221   uat5.hadoop.feidai.com uat5
172.16.100.222   uat6.hadoop.feidai.com uat6

 

 

2.2 关闭防火墙和selinux

每台机器上进行关闭防火墙和禁用SELINUX服务操作

service iptables start  #启动防火墙
service iptables status #查看防火墙的状态
service iptables stop   #关闭防火墙
chkconfig iptables off  #防止服务器重启开启防火墙
sestatus v             #查看selinux 的状态  
##关闭 selinux
vim /etc/selinux/config
         SELINUX=disabled
         # SELINUXTYPE= can take one of these two values:
         #     targeted - Targeted processes are protected,
         #     mls - Multi Level Security protection.
         SELINUXTYPE=targeted

 

 

2.3 免密登录配置

主节点上,设置SHH无密码登录。此处选择uat6作为主节点。

#在主节点上执行
ssh-keygen -t rsa                  #一路回车,生成无密码的密钥对。
#将公钥添加到认证文件中
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
#并设置authorized_keys的访问权限:
chmod 600 ~/.ssh/authorized_keys
#scp文件到所有从节点:
scp ~/.ssh/authorized_keys root@uat2:~/.ssh/

之后在主节点上用ssh 主机名的方式就能免密登录主机了。

 

 

2.4 挂载系统镜像

每台机器上挂载系统镜像并配置在yum源中

#创建系统镜像的挂载目录
mkdir -pv /mnt/cdrom  
#挂载系统镜像
mount -o loop /home/CentOS-6.7-x86_64-bin-DVD1.iso /mnt/cdrom 
##新建系统镜像的 yum 
vim /etc/yum.repos.d/os.repo
         #添加本地os yum
         [os.repo]     
         name=os.repo    
         baseurl=file:///mnt/cdrom   
         enabled=1      
         gpgcheck=0    
yum repolist     #配置完后通过yum命令检查是否配置成功

 

yum源列表截图

 

 

2.5 安装HTTPD服务

在集群中选择一台主机安装HTTPD服务(此处选择UAT2主机),用于之后的Yum源配置以及CM包配置,将下载好的包放在暴露的HTTP资源目录下,通过http请求能下载到包文件。

yum clean all                      #清理yum 的缓存
yum repolist all                   #查看已有的yum
yum info httpd                     #查看httpyum源的详细信息
yum install -y httpd               #yum 安装httpd 服务
service httpd start                #启动httpd 服务
chkconfig --level 2345 httpd on    #添加开机启动服务

 

*linux apache默认目录在:/var/www/html

通过访问安装了服务的主机80端口,可以看到下面的内容,表示安装成功

 

 

2.6 开启ntpd授时服务

每台机器上安装ntpd服务,保证时间的同步

#yum源安装ntp
yum install  -y ntp
#修改配置文件
vim /etc/ntp.conf
         server uat2 iburst                       #目标服务器网络位置 uat2
         #server 1.centos.pool.ntp.org iburst     #注释掉
         #server 2.centos.pool.ntp.org iburst     #注释掉
         #server 3.centos.pool.ntp.org iburst     #注释掉
 
systemctl start ntpd.service  #启动服务
systemctl enable ntpd.service  #设置为开机启动
systemctl status ntpd.service   #查看运行状态

 

配置完成后,在每台机器上执行date命令,查看时间是否同步成功。

 

 

 

2.7 配置远程yum 源

在2.5小节安装httpd服务的时候,把httpd服务安装到了uat2上,一方面是为了配置本节中的远程yum源。将下载好的包放到http默认访问目录中,通过yum配置文件指定URL,便达到了远程yum源的功能。

下面将下载好的包放到uat2的相应的目录中去(mysql、cm、cdh)。

/var/www/html/mariadb10.0.14
/var/www/html/cm5150
/var/www/html/cdh5150

 

然后在每台机器上配置好远程yum源的地址,注意httpd服务是安装在uat2中的。Uat2的IP为172.16.100.218

#配置mariadb yum 
vim /etc/yum.repos.d/mariadb.repo
         #添加以下内容
         [mariadb]" 
         name = http://172.16.100.218/mariadb10.0.14
         baseurl = h
         enabled=1
         gpgcheck=0
 
#配置 cm  yum 
vim /etc/yum.repos.d/cm.repo
         #添加以下内容
         [cm]
         name = Cloudera Manager
         baseurl = http://172.16.100.218/cm5150
         enabled=1
         gpgcheck=0
 
#配置cdhyum
vim /etc/yum.repos.d/cdh.repo
         #添加以下内容
         [cdh]
         name = CDH
         baseurl = http://172.16.100.218/cdh5150
         enabled=1
         gpgcheck=0

 

 配置好远程yum源后,在每台机器输入命令yum repolist 查看是否配置成功,在下图中红框的列表上出现了对应的yum源,说明配置成功。

此处yum源的配置主要作用是为了接下来Mysql的安装、cloudera-manager组件的安装,所以必须确保yum源中有相应的安装包。

#检查是否有相应的包文件
yum info MariaDB-server
yum info cloudera-manager-server
yum info cloudera-manager-agent
yum info cloudera-manager-daemons

 

 

 

2.8 安装mysql并创建相关的库

在上一小节中,配置好了mysql的远程yum源,那么通过yum install命令即可安装mysql服务。

选择一台机器作为mysql的服务端,进行服务端的安装,这里选择Uat2作为server

#安装服务端 仅需要在uat2上安装
yum install -y MariaDB-server 
#其它服务器安装客户端
yum install -y MariaDB-client  
 
#修改服务端配置文件:不区分大小写 以及 utf8字符集
vim /etc/my.cnf.d/server.cnf
         [mysqld]
         lower_case_table_names=1
         character_set_server = utf8
 
#启动mysql 服务
service mysql start  

启动mysql服务成功后,要设置root账户的密码。

#第一次可无密登录
mysql -uroot 
#执行以下sql语句进行初始密码的设置
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;

创建cdh相关的库

create database hive DEFAULT CHARSET utf8;
create database amon DEFAULT CHARSET utf8;
create database hue DEFAULT CHARSET utf8;
create database oozie default charset utf8;
create database activity_monitor default charset utf8;
create database reports_manager default charset utf8;

 

 

创建相关的用户并赋予库操作权限和外网访问权限

#创建相关用户
use mysql;
insert into user(Host,User,Password) values("%","hive",password("hive"));
insert into user(Host,User,Password) values("%","amon",password("amon"));
insert into user(Host,User,Password) values("%","hue",password("hue"));
insert into user(Host,User,Password) values("%","oozie",password("oozie"));
insert into user(Host,User,Password) values("%","activity_monitor",password("activity_monitor"));
insert into user(Host,User,Password) values("%","reports_manager",password("reports_manager"));
 
#赋予权限
GRANT ALL PRIVILEGES ON *.* TO 'cmf'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'cmf'@'localhost'IDENTIFIED BY '123456' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%'IDENTIFIED BY 'hive' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost'IDENTIFIED BY 'hive' WITH GRANT OPTION; 
GRANT ALL PRIVILEGES ON *.* TO 'hue'@'%'IDENTIFIED BY 'hue' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'hue'@'localhost'IDENTIFIED BY 'hue' WITH GRANT OPTION; 
GRANT ALL PRIVILEGES ON *.* TO 'amon'@'%'IDENTIFIED BY 'amon' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'amon'@'localhost'IDENTIFIED BY 'amon' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'%'IDENTIFIED BY 'oozie' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'oozie'@'localhost'IDENTIFIED BY 'oozie' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'activity_monitor'@'%'IDENTIFIED BY 'activity_monitor' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'activity_monitor'@'localhost'IDENTIFIED BY 'activity_monitor' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'reports_manager'@'%'IDENTIFIED BY 'reports_manager' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'reports_manager'@'localhost'IDENTIFIED BY 'reports_manager' WITH GRANT OPTION;
 
#刷新
flush privileges;
 
#查看用户权限
show grants for hue;

 

 

 

2.10 安装JDK

此处安装jdk1.7版本,先查看本机是否有安装其它版本的jdk,若有,则先卸载。

在每台机器上安装jdk

#查看是否安装有jdk
rpm -qa|grep jdk  
#卸载相关jdk
rpm -e  --nodeps   上步骤搜索出的包全名
 
#安装jdk1.7
yum install -y oracle-j2sdk1.7

 

 

2.11 安装cloudera-manager组件

选择一台主机安装server端,此处选择Uat6作为server端

全部主机中安装agent和daemons

#uat6上安装server
yum install -y cloudera-manager-server 
 
#所有主机上安装agentdaemons
yum install -y cloudera-manager-agent cloudera-manager-daemons

在安装了server端的机器上(此处是uat6),修改数据库配置文件

#在安装了server的机器上
vim /etc/cloudera-scm-server/db.properties
         com.cloudera.cmf.db.type=mysql
         com.cloudera.cmf.db.host=172.16.100.218
         com.cloudera.cmf.db.name=cmf
         com.cloudera.cmf.db.user=cmf
         com.cloudera.cmf.db.setupType=EXTERNAL
         com.cloudera.cmf.db.password=123456
 
#设置开机自启
chkconfig --level 2345 cloudera-scm-server on

在安装了agent的机器上(每台机器),修改指向的server端host和ip

vim /etc/cloudera-scm-agent/config.ini
         [General]
         # Hostname of the CM server.
         server_host=uat6
         # Port that the CM server is listening on.
         server_port=7182
 
#设置开机自启
chkconfig --level 2345 cloudera-scm-agent on

 

 

 

在cm server端配置好mysql的连接驱动,并初始化cmf数据库

ln –s /usr/java/mysql-connector-java-5.1.42-bin.jar /usr/share/java/mysql-connector-java.jar
 
#初始化CMF数据库
/usr/share/cmf/schema/scm_prepare_database.sh mysql -h 172.16.100.218 -uroot -p123456 --scm-host 172.16.100.218 cmf cmf 123456
 
#启动服务
service cloudera-scm-server start  #server端执行
service cloudera-scm-agent start   #在每台机器上执行
 
#查看日志
less /var/log/cloudera-scm-server/cloudera-scm-server.log

 

启动server和agent成功后,访问http://uat6:7180,进行下一步的CDH配置。

 

 

3.CDH安装配置

3.1 集群配置及初始化服务安装

在上一章中,安装好了CM server和CM agent后,即可访问http://uat6:7180进入到CM的web管理页面,初始化账户是admin,密码admin。

第一次登陆后,会提示部署哪一个版本,此处选择数据集线器试用版。

勾选安装条款,然后继续

指定主机操作中,在输入框内输入所有主机的host列表,点击搜索。

搜索后会出现所有主机的列表,全选后点击继续

离线安装是使用parcel方式,在第二章的2.5小节中,安装httpd的目的之一在于将parcel包以url的形式暴露出来,在此页面上填写URL后,会自动列出检测出的最新版本的CDH安装包。

填写本地parcel目录和存储库路径,以及远程parcel存储库

选择识别出的版本以及agent暴露的URL地址

此处在第二章环境准备中已经安装好了JDK,所以不勾选。

不勾选单用户模式

输入集群主机的登录密码

等待拷贝与安装

在集群设置中,按需选择安装服务组合,此处勾选自定义服务,自由勾选初始化安装的服务,没有勾选的服务在cm安装完成后还可以已添加服务的方式添加进来。

按集群规划分配相应的组件角色

 

 

此处的数据库设置中,因为在第二章的2.8小节已经配置好初始化的一些数据库和用户密码,此处仅需填入之前创建的库名,用户名和密码,点击测试连接即可。

 

集群参数配置,按照规划配置

配置完成后,cm会启动全部配置的组件

 

 

 

 

3.2 CDH集成Kafka

3.2.1 安装包下载

在CDH官网中关于Kafka的安装和升级中已经说到,在CDH中,Kafka作为一个分布式的parcel,单独出来作为parcel分发安装包。只要我们把分离开的kafka的服务描述jar包和服务parcel包下载了,就可以实现完美集成了。

注意集成之前请阅读官方文档,特别是版本支持方面。

查看kafka与CDH版本对应:

https://www.cloudera.com/documentation/enterprise/release-notes/topics/rn_consolidated_pcm.html#pcm_kafka

我们的CDH是5.15的所以选择3.1的版本。

 

 

 

3.2.1.1 下载Parcel

下载网址:http://archive.cloudera.com/kafka/parcels/latest/

到这个网址下载你需要的kafkaparcel版本(下载图示红框中的三个文件,并将.sha1后缀的文件名改成.sha)。我们的虚拟机是Centos6的,下载对应的版本,其版本对应如下

 

 

 

打开刚刚下载好的manifest.json文件,找到这个版本对应的hash值,将其复制到.sha 文件中去,替换掉原来的hash值。

然后将这三个文件,拷贝到服务器cdh的/opt/cloudera/parcel-repo目录下。如果有相同的文件,即manifest.json,只需将之前的重命名即可。

 

3.2.1.2 下载CSD

网址:http://archive.cloudera.com/csds/kafka/

上传下载好的CSD包KAFKA-1.2.0.jar,到服务器CDH目录下,路径为/opt/cloudera/csd。

 

 

 

3.2.2 激活并添加服务

选择CM主页 -> Hosts -> parcel -> 检查新parcel -> 配置 -> 激活

激活完安装包后,在添加服务页面进行Kafka服务的添加即可。

 

 

 

在CM的集群监控界面,点击操作中的添加服务操作

选择安装Broker的主机和KM的主机

 

 

3.2.3 安装常见问题

3.2.3.1 填写Destination Brokers List 

若添加了Kafka MirrorMaker则可填写其所在节点构成的列表,若未添加Kafka MirrorMaker,可填写任意服务器即可,如下:master:9092;salve1:9092;salve2:9092

3.2.3.2 填写Source Brokers List 

填写Kafka Broker所在节点构成的列表(用逗号分隔),如下master:9092;salve1:9092;salve2:9092

3.2.3.3 启动时出现内存溢出错误(java.lang.OutOfMemoryError:Javaheapspace)

解决方法:

主页服务列表 -> kafka -> 配置 -> Kafka-Broker -> Java Heap Size of Broker 修改参数到256以上即可。

3.2.3.4启动kafka mirrormaker的时候报错:whitelist must be specified when using new consumer in mirror maker

解决方法:

点击cm集群管理页面--kafka--instances--kafka mirrormaker--然后搜索Whitelist,然后提示mirrormaker default group,把刚才分配的时候设置的添加进去。在分配kafka生产环境是怎么分配的,这里就怎么填。

3.3 CDH-HDFS高可用配置

点击CM主页的HDFS服务进入服务监控主页,点击操作按钮,选择下拉列表的启用HA按钮开始配置HA HDFS。

填写nameservice

 

 

等待运行完成后。在原HDFS界面的实例列表就可以看到新加的HA组件

 

3.4 常见问题

3.4.1 cloudemanager安装时出现ProtocolError: 问题解决方法

CLOUDEMANAGER安装时出现:

PROTOCOLERROR:

解决办法:

#杀死supervisord进程
ps -ef | grep supervisord
kill -9 
sudo service  cloudera-scm-agent restart

 

 

转载于:https://my.oschina.net/u/2510243/blog/1929027

你可能感兴趣的:(CDH5.15安装)