CDH-5.7.1离线安装
 
1、文件下载
CDH (Cloudera’s Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可直接用于生产环境。 
Cloudera Manager则是为了便于在集群中进行Hadoop等大数据处理相关的服务安装和监控管理的组件,对集群中主机、Hadoop、HiveSpark等服务的安装配置管理做了极大简化。 
相关包的下载地址: 
Cloudera Manager地址:http://archive.cloudera.com/cm5/cm/5/ 
下载对应的文件,我下载的是:cloudera-manager-el6-cm5.9.2_x86_64.tar.gz
CDH安装包地址:http://archive.cloudera.com/cdh5/parcels
由于我们的操作系统为CentOS6.8,需要下载以下文件,找到对应的版本: 
manifest.json 
算上jdbc一共是5个文件
 
 
强烈建议:有条件的话,以下所有操作都在root下完成,不要问我为什么知道的。
否侧,出现错误,10个有9个都是目录权限问题,根据log查错即可。
 

2、准备工作:系统环境搭建

如果使用虚拟机安装的话,每个节点至少保证硬盘空间20G,推荐30G以上。
内存,master至少6G,推荐8G以上,slave至少4G
以下操作均需要(root)管理员权限 
2.1、网络配置(所有节点) 
 临时修改 hostname 主机名
修改主机名:vim /etc/sysconfig/network

  NETWORKING=yes

  HOSTNAME=主机名
  GATEWAY=192.168.3.253

 
修改ip与主机名的对应关系:vim /etc/hosts
 

192.168.3.201   node1

192.168.3.202   node2

192.168.3.203   node3

192.168.3.204   node4

 
修改网络配置
vim /etc/sysconfig/network-scripts/ifcfg-eth0
 
  1. DEVICE="eth0"
  2. BOOTPROTO=none
  3. IPV6INIT="yes"
  4. NM_CONTROLLED="yes"
  5. ONBOOT="yes"
  6. TYPE="Ethernet"
  7. UUID="038b2dab-5902-46d7-9d4c-2c0fb42599b9"
  8. HWADDR=00:0C:29:50:84:9A
  9. IPADDR=192.168.3.201
  10. PREFIX=24
  11. GATEWAY=192.168.3.253
  12. DNS1=192.168.1.242
  13. DEFROUTE=yes
  14. IPV4_FAILURE_FATAL=yes
  15. IPV6_AUTOCONF=yes
  16. IPV6_DEFROUTE=yes
  17. IPV6_PEERDNS=yes
  18. IPV6_PEERROUTES=yes
  19. IPV6_FAILURE_FATAL=no
  20. NAME="System eth0"
  21. LAST_CONNECT=1468601480
 
 
2.2、打通SSH,设置ssh无密码登陆(所有节点) 
执行ssh-keygen -t rsa,一路回车,生成无密码的密钥对。 
将公钥添加到认证文件中:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys,并设置authorized_keys的访问权限:chmod 600 ~/.ssh/authorized_keys。 
通过scp命令将各节点的认证文件拷贝到所有其他节点使得各节点能够相互访问。
 
2.3、安装OracleJava(所有节点)
(JAVA安装路径:最好选择以下) 
'/usr/java/jdk1.8' 、'/usr/java/jre1.8' 、'/usr/lib/jvm/j2sdk1.8-oracle'、 '/usr/lib/jvm/j2sdk1.8-oracle/jre' 、'/usr/lib/jvm/java-8-oracle'
'/usr/lib/jvm/java-1.8.0-openjdk' 、'/usr/lib/jvm/java-8-openjdk'
'/Library/Java/Home' 、'/usr/java/default'、 '/usr/lib/jvm/default-java'、 '/usr/lib/jvm/java-openjdk' 、'/usr/lib/jvm/jre-openjdk'
CDH默认会到这些目录下找JAVA
CentOS自带OpenJdk,不过运行CDH5需要使用Oracle的JDK,需要Java7的支持。 
卸载自带的OpenJdk,使用rpm -qa | grep java查询java相关的包,使用rpm -e --nodeps 包名卸载之。 
去Oracle的官网下载jdk的rpm安装包,并使用rpm -ivh 包名安装,最后配置环境变量。 
在 etc/profile中,
vi /etc/profile
添加如下(使用rpm安装的java在/usr/java/jdk1.8XXXX):
  1. export JAVA_HOME=/usr/java/jdk1.8.0_91
  2. export PATH=$JAVA_HOME/bin:$PATH
  3. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
然后使环境变量生效:
source /etc/profile
 
 
2.4、安装配置MySql(主节点) 
# mysql          客户端程序
# mysql-server    服务端程序
# mysql-devel    开发设计的库
[root@localhost ~]# yum -y install mysql mysql-server mysql-devel
 
# 开机启动
[root@localhost ~]# chkconfig mysqld on
# 启动mysqld服务
[root@localhost ~]# service mysqld start
# 进行一些安全性配置
[root@localhost ~]# /usr/bin/mysql_secure_installation
注意:这里远程连接mysql可能会出现权限报错,需要修改user表,具体方法请自行搜索
root的初试密码:mysqladmin -u root password 'xxxx'
mysql -u root -p
xxxxxx
进入mysql命令行,创建以下数据库
  1. #hive
  2. create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;、
  3. #activity monitor
  4. create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
  5. #activity oozie 如果需要的话
  6. create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
 
 
设置root授权访问以上所有的数据库:
#授权root用户在主节点拥有所有数据库的访问权限
  1. grant all privileges on *.* to 'root'@'主机名' identified by '密码' with grant option;
  2. flush privileges;
 
 
5.关闭防火墙和SELinux 
注意: 需要在所有的节点上执行,因为涉及到的端口太多了,临时关闭防火墙是为了安装起来更方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。 
关闭防火墙:
  1. service iptables stop (临时关闭)
  2. chkconfig iptables off (重启后生效)
 
 
关闭SELINUX(实际安装过程中发现没有关闭也是可以的,不知道会不会有问题,还需进一步进行验证):
set enforce 0 (临时生效)  
修改 vi /etc/selinux/config 下的 
SELINUX=disabled (重启后永久生效)
  1. # This file controls the state of SELinux on the system.
  2. # SELINUX= can take one of these three values:
  3. #     enforcing - SELinux security policy is enforced.
  4. #     permissive - SELinux prints warnings instead of enforcing.
  5. #     disabled - No SELinux policy is loaded.
  6. SELINUX=disabled
  7. # SELINUXTYPE= can take one of these two values:
  8. #     targeted - Targeted processes are protected,
  9. #     mls - Multi Level Security protection.
  10. SELINUXTYPE=targeted
 
 
6.所有节点配置NTP服务 (这一步暂时可以跳过,但是在集群启动以后,会提示时间不同步)
集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。 具体思路如下: 
master节点作为ntp服务器与外界对时中心同步时间,随后对所有datanode节点提供时间同步服务。 
所有datanode节点以master节点为基础同步时间。 
所有节点安装相关组件:yum install ntp。
启动 ntp:
$ service ntpd start
设置开机启动:
$ chkconfig ntpd on
检查是否设置成功:chkconfig --list ntpd其中2-5为on状态就代表成功。 
可以通过以下命令先进行时间同步:
ntpdate us.pool.ntp.org
主节点配置(master节点)
vi /etc/ntp.conf 
ntp服务只有一个配置文件,配置好了就OK。 这里只给出有用的配置,不需要的配置都用#注掉,这里就不在给出(大部分把#去掉即可,不需要添加):
  1. driftfile /var/lib/ntp/drift
  2. # Permit time synchronization with our time source, but do not
  3. # permit the source to query or modify the service on this system.
  4. restrict default kod nomodify notrap nopeer noquery
  5. restrict -6 default kod nomodify notrap nopeer noquery
  6. # Permit all access over the loopback interface.  This could
  7. # be tightened as well, but to do so would effect some of
  8. # the administrative functions.
  9. restrict 127.0.0.1
  10. restrict -6 ::1
  11. # Hosts on local network are less restricted.
  12. restrict 192.168.3.0 mask 255.255.255.0 nomodify notrap
  13. # Use public servers from the pool.ntp.org project.
  14. # Please consider joining the pool (http://www.pool.ntp.org/join.html).
  15. server 0.centos.pool.ntp.org iburst
  16. server 1.centos.pool.ntp.org iburst
  17. server 2.centos.pool.ntp.org iburst
  18. server 3.centos.pool.ntp.org iburst
 
配置文件完成,保存退出,启动服务,执行如下命令:service ntpd start 
检查是否成功,用ntpstat命令查看同步状态,出现以下状态代表启动成功:
synchronisedto NTP server () at stratum 2time correct towithin74 mspolling server every 128 s
如果出现异常请等待几分钟,一般等待5-10分钟才能同步。 
在其他节点,直接运行
ntpdate -u node1 
(主节点ntp服务器) 即可,和node1同步
这里可能出现同步失败的情况,请不要着急,一般是本地的ntp服务器还没有正常启动,一般需要等待5-10分钟才可以正常同步。启动服务:service ntpd start 
因为是连接内网,这次启动等待的时间会比master节点快一些,但是也需要耐心等待一会儿。

3、开始安装Cloudera Manager

安装Cloudera Manager Server 和Agent 
3.1、主节点解压安装 
cloudera manager的目录默认位置在/opt下,解压:tar xzvf cloudera-manager*.tar.gz将解压后的cm-5.7.1和cloudera目录放到/opt目录下。 
为Cloudera Manager 5建立数据库 
首先需要去MySql的官网下载JDBC驱动,http://dev.mysql.com/downloads/connector/j/,解压后,找到mysql-connector-java-5.1.35-bin.jar,放到/opt/cm-5.7.1/share/cmf/lib/中。 
在主节点初始化CM5的数据库:
/opt/cm-5.9.2/share/cmf/schema/scm_prepare_database.sh mysql cm -h master -u root -p 890610 --scm-host master scm scm scm  
在这里后面的参数分别是:数据库类型 数据库名称 数据库主机名 数据库用户名 密码 --scm-host cmserver主机名 scm scm scm
 
3.2、Agent配置 
修改/opt/cm-5.9.2/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名。 
同步Agent到其他所有节点:
scp -r /opt/cm-5.9.2 root@slave2:/opt/  
在所有节点创建cloudera-scm用户
useradd --system --home=/opt/cm-5.9.2/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm  
 
 
准备Parcels,用以安装CDH5 
将CHD5相关的Parcel包放到主节点的/opt/cloudera/parcel-repo/目录中(parcel-repo需要手动创建)。 
相关的文件如下:
CDH-5.7.1-1.cdh5.9.2.p0.5-el6.parcel
manifest.json
 
 
最后将CDH-5.9.2-1.cdh5.9.2.p0.3-el6.parcel.sha1,重命名为CDH-5.9.2-1.cdh5.9.2.p0.3-el6.parcel.sha
这点必须注意,否则,系统会重新下载CDH-5.9.2-1.cdh5.9.2.p0.3-el6.parcel.sha1文件。 
相关启动脚本 
通过/opt/cm-5.9.2/etc/init.d/cloudera-scm-server start启动服务端。 
通过/opt/cm-5.9.2/etc/init.d/cloudera-scm-agent start启动Agent服务。 (所有节点都要启动Agent服务,包括服务端)
我们启动的其实是个service脚本,需要停止服务将以上的start参数改为stop就可以了,重启是restart。
安装到此处,可以考虑备份节点,为将来的节点拓展做准备。 
CDH5的安装配和集群配置
Cloudera Manager Server和Agent都启动以后,就可以进行CDH5的安装配置了。 
这时可以通过浏览器访问主节点的7180端口测试一下了(由于CM Server的启动需要花点时间,这里可能要等待一会才能访问成果,可能需要3-5分钟),默认的用户名和密码均为admin:
 
 
各个Agent节点正常启动后,可以在当前管理的主机列表中看到对应的节点。选择要安装的节点,点继续。
 
接下来,出现以下包名,说明本地Parcel包配置无误,直接点继续就可以了。
 
如果此处发现不到parcel包,就重启所有节点的agent服务,和master的server服务。
 
点击,继续,如果配置本地Parcel包无误,那么下图中的已下载,应该是瞬间就完成了,然后就是耐心等待分配过程就行了,这个过程的速度就取决于节点之间的传输速度。
 
等待一下,连接访问master:7180即可
所有节点部署完成
 
 
接下来是主机检查,可能会遇到以下问题: 
 
Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响: 
通过echo 10 > /proc/sys/vm/swappiness即可解决。(注意切换到root)
已启用透明大页面压缩,可能会导致重大性能问题。请运行“echo never > /sys/kernel/mm/transparent_hugepage/defrag”和“echo never > /sys/kernel/mm/transparent_hugepage/enabled”以禁用此设置,然后将同一命令添加到echo never > /etc/rc.local 等初始化脚本中,以便在系统重启时予以设置。以下主机将受到影响:
接下来是选择安装服务:
服务配置,一般情况下保持默认就可以了(Cloudera Manager会根据机器的配置自动进行配置,如果需要特殊调整,自行进行设置就可以了):
接下来是数据库的设置,检查通过后就可以进行下一步的操作了:
 
此处可能需要新建oozie的数据库
 
下面是集群设置的审查页面,全部保持默认配置即可:
这里地方可以考虑修改hdfs的存储文件夹,另外如果需要自己设定文件夹,一定要先mkdir文件夹,否侧hdfs会无法启动,并且报错文件夹不存在,并确保访问权限。
 
 
终于到安装各个服务的地方了,注意,这里安装Hive,或oozie的时候可能会报错,因为我们使用了MySql作为hive的元数据存储,hive默认没有带mysql的驱动,通过以下命令拷贝一个就行了:
  1. cp /opt/cm-5.7.1/share/cmf/lib/mysql-connector-java-*-bin.jar /opt/cloudera/parcels/CDH-5.7.1-1.cdh5.7.1.p0.11/lib/hive/lib/
  2. cp /opt/cm-5.7.1/share/cmf/lib/mysql-connector-java-*-bin.jar /opt/cloudera/parcels/CDH-5.7.1-1.cdh5.7.1.p0.11/lib/oozie/lib/
  3. cp /opt/cm-5.7.1/share/cmf/lib/mysql-connector-java-*-bin.jar /var/lib/oozie/
 
 
 
 
接下静静地等待即可。
安装完成后,就可以进入集群界面看一下集群的当前状况了。 
这里可能会出现无法发出查询:对 Service Monitor 的请求超时的错误提示,如果各个组件安装没有问题,一般是因为服务器比较卡导致的,过一会刷新一下页面就好了,根据实际情况调整配置即可:
 
另外如果想添加新的主机,必须要先启动新主机上的agent服务,否则新主机不能被发现,要重新下载cm-agent,很麻烦。安装新的节点以后,记得运行"部署客户端"命令。
 
 
 
 
Q&A:
1.在我部署完成以后,会出现大量问题,其中有大量警告,是由于var/log/*的权限问题造成的。
在master上,运行chmod -R 777对应的文件夹修改权限即可。
 
2.出现oozie和hive不能成功启动
一般是因为缺少jdbc,复制到相应位置即可,参照原文。或者是由于mysql数据库中的表造成的,可能是表已经存在了。
 
3.service monitor和host monitor都无法启动
一般也是由于var/log/*的权限问题造成的。
 
4.service monitor和host monitor正常启动,但是无法获取到图表数据
注销admin重新进入,或者等一下
 
5.hdfs不能正常启动
可能是因为/dfs的权限原因,提高/目录的权限
 
6.hdfs和yarn的端口不再是9000和10020,默认的是8020和8021
 
7.如果使用Windows远程调试,请保证host文件(C:/Windows/System32/drivers/hosts)和集群上的host文件内容一致。
 
8.主机崩溃怎么办。一般来说崩溃了,直接重启就好。不过一定记得要再次启动cm的agent和server服务
 
 
调整相关阈值后,基本正常运行。
 
 
出现问题重装教程:
 
当前受管
假如在安装的时候出现问题,如网络连接中断,机器死机,继续安装的时候可能会出现查询不到机器,并且根据ip搜索机器的时候,出现“当前受管”
的状态为“是”,安装失败的机器不能再选择了。
 
先停止所有服务。清除数据库。
1> 删除Agent节点的UUID 
      # rm -rf /opt/cm-5.9.2/lib/cloudera-scm-agent/*
2>  清空主节点CM数据库
      进入主节点的Mysql数据库,然后drop database cm;
3> 在主节点上重新初始化CM数据库
     # /opt/cm-5.9.2/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p890610 --scm-host localhost scm scm scm

CDH-5.7.1离线安装的更多相关文章

  1. CDH平台搭建解决离线安装依赖包的方法

    背景介绍: 1CDH开发平台在搭建的过程中,会遇到各种各样的问题,其中的各种依赖就是一个很让人头痛的问题.如果安装脚本文件出现了这种问题,那么就可以把以下的这种方法加入shell中,但是不要用yum来 ...

  2. CDH 5.15.2 离线安装

    一.前置准备 1. 基础信息 1.1 机器 机器名 服务 hadoop1 主节点 hadoop2 data.task hadoop3 data.task 1.2 服务版本 服务 版本 cdh 5.15 ...

  3. CentOS 6.4 离线安装 Cloudera 5.7.1 CDH 5.7.1

    因为项目开发需要要在本地组建一个Hadoop/Spark集群,除了Hadoop/Spark还要同时安装多个相关的组件,如果一个个组件安装配置,对于一个由多台服务器组成的集群来说,工作量是巨大的. 所以 ...

  4. Ubuntu14.04用apt在线/离线安装CDH5.1.2[Apache Hadoop 2.3.0]

    目录 [TOC] 1.CDH介绍 1.1.什么是CDH和CM? CDH一个对Apache Hadoop的集成环境的封装,可以使用Cloudera Manager进行自动化安装. Cloudera-Ma ...

  5. 离线安装Cloudera Manager 5和CDH5(最新版5.1.3) 完全教程

    关于CDH和Cloudera Manager CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloud ...

  6. CDH-5.4.3离线安装

    使用CM离线安装CDH-5.4.3,如下: cdh5.4.3安装 配置/etc/hosts vim /etc/hosts 192.168.10.1 s1 192.168.10.2 s2 192.168 ...

  7. 离线安装 Cloudera Manager 5 和 CDH5.10

    关于CDH和Cloudera Manager CDH (Cloudera's Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloud ...

  8. Cloudera Manager和CDH5.8离线安装

    https://blog.csdn.net/zzq900503/article/details/52982828 简介 我们在上篇文章中已经了解了CDH,为了后续的学习,我们本章就来安装CDH5.8. ...

  9. [转]Cloudera Manager和CDH5.8离线安装

    https://blog.csdn.net/zzq900503/article/details/52982828 https://www.cnblogs.com/felixzh/p/9082344.h ...

随机推荐

  1. (转)log4j(五)——如何控制不同目的地的日志输出?

    一:测试环境与log4j(一)——为什么要使用log4j?一样,这里不再重述 1 老规矩,先来个栗子,然后再聊聊感受 package test.log4j.test5; /** * @author l ...

  2. (转)volatile关键字

    Java线程:volatile关键字   Java™ 语言包含两种内在的同步机制:同步块(或方法)和 volatile 变量.这两种机制的提出都是为了实现代码线程的安全性.其中 Volatile 变量 ...

  3. Android studio导出AAR包问题整理。

    最近因为项目需求开始整理一个SDK 以AAR的方式提供出去.在整理的过程中遇到了很多坑. 以下是一些总结希望能帮助遇到同样问题的人. 1.怎么导出AAR,这种文章太多了,我贴一个大家可以做参考. ht ...

  4. bash中(),{},(()),[],[[]]的区别

    前言:在bash中遇到各种括号,同时在进行字符数值比较判定时,总是不断出现问题,于是通过参考<advanced bash-scripting guide>,同时在centos 6.7版本上 ...

  5. Python零基础学习系列之二--Python介绍及环境搭建

    1-1.Python简介: Python是一种解释型.面向对象.动态数据类型的高级程序设计语言.Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年.像P ...

  6. Python序列化和反序列化

    Python序列化和反序列化 通过将对象序列化可以将其存储在变量或者文件中,可以保存当时对象的状态,实现其生命周期的延长.并且需要时可以再次将这个对象读取出来.Python中有几个常用模块可实现这一功 ...

  7. Python学习——(1)Centos安装Flask

    一.环境 [root@localhost myproject]# cat /proc/version centos6.5 Linux version 2.6.32-642.11.1.el6.i686 ...

  8. node 内存管理相关

    为什么在node中要担心node内存管理 使用JavaScript进行前端开发时几乎完全不需要关心内存管理问题,对于前端编程来说,V8限制的内存几乎不会出现用完的情况,v8在node中有着内存的限制( ...

  9. 浅谈odoo 后台与前端文件(附件)的存储与下载

    odoo 后台与前端文件(附件)存储与下载实现 笔记太多了很乱,想想还是写博客的好,慢慢更 当然了,前提是你已经配好了odoo开发环境 一.odoo后台界面实现附件的上传和下载 1).在应用中搜索下图 ...

  10. 基于react全家桶+antd-design+webpack2+node+express+mongodb开发的前后台博客系统

    很久没更新博客,最近也有点忙,然后业余时间搞了一个比较完整基于react全家桶+antd-design+webpack2+node+express+mongodb开发的前后台博客系统的流程系统,希望对 ...