热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

离线安装ClouderaManager5.12.0和CDH5.12.0完全教程

离线安装ClouderaManager5.11.1和CDH5.11.1完全教程关于CDH和ClouderaManagerCDH(ClouderasDistribution,in

离线安装Cloudera Manager 5.11.1和CDH5.11.1完全教程


关于CDH和Cloudera Manager

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

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

安装前准备
操作系统:CentOS7.3 x64 GNOME DESTOP + development tools组包
Cloudera Manager:5.12.0
CDH: 5.12.0

 

开发工具:

secureCRT:远程登录 ,  可以同时将命令发送到多个节点上运行, 登录虚拟机操作简单

winscp:文件传输


安装说明
官方参考文档:http://www.cloudera.com/

官方共给出了多种安装方式: 
第一种方法必须要求所有机器都能连网,由于最近各种国外的网站被墙的厉害,我尝试了几次各种超时错误,巨耽误时间不说,一旦失败,重装非常痛苦。 
另一种离线安装,对系统侵入性最小,而且重装什么的都非常方便。后期的集群统一包升级也非常好。这也是我之所以选择离线安装的原因。

软件包
Cloudera Manager:cloudera-manager-centos7-cm5.11.1_x86_64.tar.gz 
下载地址:http://archive.cloudera.com/cm5/cm/5/

CDH安装包:

CDH-5.12.0-1.cdh5.12.0.p0.4-el7.parcel
CDH-5.12.0-1.cdh5.12.0.p0.4-el7.parcel.sha1
manifest.json 


下载地址 : http://archive.cloudera.com/cdh5/parcels/5.11.1/

JDK: oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm 
 

节点介绍


hostname ip地址 服务
hadoop01192.168.0.45cloudera-server,cloudera-agent
hadoop02192.168.0.46cloudera-agent
   


 


 


 


 


系统环境准备


1.网络配置(hadoop01,hadoop02 )
(1)修改主机名: vi /etc/hostname 
  修改完hostname必须重启后才生效 
(2)添加hosts: vi /etc/hosts

#127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1         localhost localhost.localdomain localhost6 localhost6.localdomain6127.0.0.1       localhost#set cdh
192.168.0.45   hadoop01
192.168.0.46   hadoop02



2.SSH免密码登录(hadoop01,hadoop02)
只需要主节点和从节点之间SSH免密码登录就行,从节点和从节点之间不需要。 
先删除所有密钥 rm -rf ~/.ssh/*

# ssh-keygen -t rsa
# ssh-copy-id hadoop01
# ssh-copy-id hadoop02

# ssh localhost

注意这可能是ssh最快的方式了!!!

测试

hadoop01节点:ssh hadoop02hadoop02节点:ssh hadoop01



3.关闭防火墙(hadoop01,hadoop02)
#关闭防火墙

# systemctl stop firewalld
# systemctl disable firewalld


4.SELINUX关闭(hadoop01,hadoop02)
//关闭Selinux服务

# setenforce 0
# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
# iptables --flush
# reboot  #重启生效



5.设置文件打开数量及最大进程数(hadoop01,hadoop02)

# cp /etc/security/limits.conf /etc/security/limits.conf.bak
# echo "* soft nproc 32000" >>/etc/security/limits.conf
# echo "* hard nproc 32000" >>/etc/security/limits.conf
# echo "* soft nofile 65535" >>/etc/security/limits.conf
# echo "* hard nofile 65535" >>/etc/security/limits.conf



6.同步时间(master,slave1,slave2)
安装ntp服务:

# yum -y install ntp



启动ntp服务,并设置开机自启:

# systemctl start ntpd
# systemctl enable ntpd



7.安装JDK配置环境变量(hadoop01,hadoop02)
先删除系统自带的java:

# rpm -qa | grep javatzdata-java-2016g-2.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
javapackages-tools-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64
java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64

//删除上面显示的包:
rpm -e --nodeps tzdata-java-2016g-2.el7.noarch
rpm -e --nodeps python-javapackages-3.4.1-11.el7.noarch
rpm -e --nodeps javapackages-tools-3.4.1-11.el7.noarch
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64



每个节点需要安装相同版本的Java。这里采用的是rpm方式安装Java.

// 默认解压到/usr/jave/jdk1.7.0_67-cloudera
# rpm -i oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm    
# cd /usr/java
# mv jdk1.7.0_67-cloudera default  #即JAVA_HOME=/usr/java/default



最好将JDK安装在/usr/java/default中,有的版本要求安装在此目录,要不然找不到JAVA_HOME

由于是rpm包并不需要我们来配置环境变量,我们只需要配置一个全局的JAVA_HOME变量即可,在/etc/profile末尾添加:

# set java env
export JAVA_HOME=/usr/java/default
export PATH=$PATH:$JAVA_HOME/bin



再source /etc/profile 立即生效

建议手动指定一下java的使用版本 alternatives --config java ,避免在安装Spark组件时报错

8. 安装配置mysql

yum install mysql-server -y设置开机启动:chkconfig mysqld on启动mysql:  service mysqld start查看状态:  service mysqld status进入: mysql use mysqlselect host,user from user修改 mysql 权限: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;刷新权限:flush privileges;删除多余会对权限造成影响的数据:delete from user where host !='%';刷新权限: flush privileges;select host,user from user;quit 退出


创建数据库:

#为hive建库hive
mysql>create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;#为Activity Monitor建库amon
mysql>create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;#为Oozie建库oozie
mysql>create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;#为Hue建库hue
mysql>create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;设置root授权访问以上所有的数据库,因为CM安装时会创建数据库,这里设置后安装CM时可以设置数据库的host为master:mysql>grant all privileges on *.* to 'root'@'master' identified by '123456' with grant option;
mysql>flush privileges;


补充: 安装完成集群后,运行Sqoop程序出现如下错误:

Caused by: java.sql.SQLException: null,  message from server: "Host 'slave1' is not allowed to connect to this MariaDB server"

是因为MariaDB不允许远程连接导致的,在MariaDB中运行:

mysql>grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
mysql>flush privileges;



即可运行Sqoop程序了。

9.安装第三方依赖包(hadoop01,hadoop02)
不安装这些依赖,安装Cloudera Manager时可能会报错

yum -y install chkconfig python bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsbyum  -y  install psmisc MySQL-python at bc bind-libs bind-utils cups-client cups-libs cyrus-sasl-gssapi cyrus-sasl-plain ed fuse fuse-libs httpd httpd-tools keyutils-libs-devel krb5-devel libcom_err-devel libselinux-devel libsepol-devel libverto-devel mailcap noarch mailx mod_ssl openssl-devel pcre-devel postgresql-libs python-psycopg2 redhat-lsb-core redhat-lsb-submod-security  x86_64 spax time zlib-devel



Cloudera Manager安装


1.安装Cloudera Manager Server 和Agent
主节点解压安装(hadoop01)

tar -zxvf cloudera-manager-centos7-cm5.11.1_x86_64.tar.gz -C /opt/



2.配置 CM Server数据库(master)
将mysql-connector-java-5.1.44-bin.jar放到/opt/cm-5.12.0/share/cmf/lib下并初始化数据库:

# cp mysql-connector-java-5.1.44-bin.jar /opt/cm-5.12.0/share/cmf/lib
/opt/cm-5.12.0/share/cmf/schema/scm_prepare_database.sh [-数据库类型] [-创建的数据库名] [-h主机名] [-u用户名] [-p密码]
# cd /opt/cm-5.12.0/share/cmf/schema
# ./scm_prepare_database.sh mysql temp -h hadoop01 -uroot -p123456 --scm-host hadoop01 scm scm scm



3.配置 CM Agent(master)
修改/opt/cm-5.12.0/etc/cloudera-scm-agent/config.ini文件中的server_host为主节点主机名

# vi /opt/cm-5.12.0/etc/cloudera-scm-agent/config.ini

[General]
# Hostname of the CM server.
server_host=hadoop01  //修改为主节点主机名


4.将Agent文件从主节点分发到其他从节点:(master)

# scp -r /opt/cm-5.12.0 hadoop02:/opt



5.创建用户cloudera-scm(hadoop01 ,hadoop02)
每个节点上执行命令创建cloudera-scm用户,因为CM使用cloudera-scm用户管理。

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



6.准备Parcels,用以安装CDH5
(1)在主节点hadoop01上,将cdh parcels安装包放置到/opt/cloudera/parcel-repo目录下,并修改权限:

cp CDH-5.12.0-1.cdh5.12.0.p0.29-el7.parcel /opt/cloudera/parcel-repo/
cp CDH-5.12.0-1.cdh5.12.0.p0.29-el7.parcel.sha1 /opt/cloudera/parcel-repo/
mv /opt/cloudera/parcel-repo/CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel.sha//这一步可以不用做
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo 



(2)在所有cloudera-agent上创建parcels目录(这一步可以不用做):

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



7.启动 CM Server和Agent
(1)启动服务

//主节点启动(hadoop01):
# /opt/cm-5.12.0/etc/init.d/cloudera-scm-server start
//所有节点启动(hadoop01,hadoop02):
# /opt/cm-5.12.0/etc/init.d/cloudera-scm-agent start



CM Server首次启动会自动创建表以及数据,不要立即关闭和重启,否则需要删除所有表和数据,重新安装

(2)添加开机自启动

# chmod +x /etc/rc.d/rc.local
# vi /etc/rc.d/rc.local// 在此文件中添加启动命令即可实现开机启动
//主节点启动(master):
# /opt/cm-5.12.0/etc/init.d/cloudera-scm-server start
//所有节点启动(master,slave1,slave2):
# /opt/cm-5.12.0/etc/init.d/cloudera-scm-agent start



(3)启动错误 

启动服务器时,使用tail -f /opt/cm-5.12.0/log/cloudera-scm-server/cloudera-scm-server.log 可以查看日信息,如果出现:2017-08-03 08:05:18,558 ERROR WebServerImpl:com.cloudera.server.web.cmf.search.components.SearchRepositoryManager: The server storage directory [/var/lib/cloudera-scm-server] doesn't exist.
2017-08-03 08:05:18,558 ERROR WebServerImpl:com.cloudera.server.web.cmf.search.components.SearchRepositoryManager: No read permission to the server storage directory [/var/lib/cloudera-scm-server]
2017-08-03 08:05:18,558 ERROR WebServerImpl:com.cloudera.server.web.cmf.search.components.SearchRepositoryManager: No write permission to the server storage directory [/var/lib/cloudera-scm-server]则:mkdir -p /var/lib/cloudera-scm-server
chmod 777 /var/lib/cloudera-scm-server



(3)启动成功 

首次启动成功,tail -f /opt/cm-5.12.0/log/cloudera-scm-server/cloudera-scm-server.log显示:2017-08-09 16:09:30,123 INFO ParcelUpdateService:com.turn.ttorrent.common.Torrent: Single-file torrent information:
2017-08-09 16:09:30,123 INFO ParcelUpdateService:com.turn.ttorrent.common.Torrent:   Torrent name: CDH-5.11.1-1.cdh5.11.1.p0.4-el7.parcel
2017-08-09 16:09:30,123 INFO ParcelUpdateService:com.turn.ttorrent.common.Torrent:   Announced at: Seems to be trackerless
2017-08-09 16:09:30,123 INFO ParcelUpdateService:com.turn.ttorrent.common.Torrent:   Created on..: Wed Aug 09 16:09:06 CST 2017
2017-08-09 16:09:30,123 INFO ParcelUpdateService:com.turn.ttorrent.common.Torrent:   Created by..: cm-server
2017-08-09 16:09:30,123 INFO ParcelUpdateService:com.turn.ttorrent.common.Torrent:   Pieces......: 3038 piece(s) (524288 byte(s)/piece)
2017-08-09 16:09:30,123 INFO ParcelUpdateService:com.turn.ttorrent.common.Torrent:   Total size..: 1,592,734,904 byte(s)


 

非首次启动成功,显示:INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server



8.登录
CM Server启动成功后,可以登录http://master:7180进行CDH部署。 
用户名:admin 
密码:admin

CDH部署
1.选择节点










2.选择本地Parcel


 


3.服务器检查

3.服务器检查


出现如上图所示警告,则:

# sysctl -w vm.swappiness=10
# echo "vm.swappiness=10" >>/etc/sysctl.conf//将下面两句添加到系统启动脚本中如`/etc/rc.local`,以便系统重启生效
# echo never > /sys/kernel/mm/transparent_hugepage/defrag
# echo never > /sys/kernel/mm/transparent_hugepage/enabled



4.选择服务


5.服务配置


6.数据库设置




 



7.集群设置


8.启动服务

遇到上述错误,如若安装hive组件且使用Mysql类型的数据仓库,那么需要为hive增加MySQL connector的驱动。

cp mysql-connector-java-5.1.42-bin.jar /opt/cloudera/parcels/CDH/lib/hive/lib/


 
oozie组件同样也需要数据库驱动:

# mv mysql-connector-java-5.1.41-bin.jar mysql-connector-java.jar
# cp mysql-connector-java.jar /usr/share/java/


 


9.安装完成




10.测试
在主节点上执行以下模拟Pi的示例程序:

sudo -u hdfs hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 10 100



执行过程需要花一定的时间,通过YARN的后台也可以看到MapReduce的执行状态。

测试Spark2:

spark2-submit --class org.apache.spark.examples.SparkPi 
--master yarn 
--deploy-mode client /opt/cloudera/parcels/SPARK2/lib/spark2/examples/jars/spark-examples_2.11-2.2.0.cloudera1.jar 100



11.其它
在Cloudrea Manager页面上,可以向集群中添加/删除主机,添加服务到集群等。

Cloudrea Manager页面开启了google-analytics,因为从国内访问很慢,可以关闭google-analytics

管理 -> 设置 -> 其他 -> 允许使用情况数据收集 不选

后记
工欲善其事必先利其器,管理 Hadoop 集群,Cloudrea 是个不错的选择。
 


推荐阅读
author-avatar
书友33947127
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有