Centos6.5 离线搭建CDH5.11

需要的前期准备:

  • 离线包

         CDH-5.11.1-1.cdh5.11.1.p0.4-el6.parcel

         CDH-5.11.1-1.cdh5.11.1.p0.4-el6.parcel.sha1

         manifest.json

         地址:https://pan.baidu.com/s/11OhAYZnPDog_LNGsANcw0A 密码:hjdq

  • JDBC驱动包:

         mysql-connector-java-5.1.38-bin.jar  

         地址:https://pan.baidu.com/s/1RGL5_HBvGoqk3nZHK1UJ1Q 密码:tloj 

         这里用的jdbc驱动版本是:mysql-connector-java-5.1.38-bin.jar  

     

一,环境搭建

  1. 硬件软件要求
    我这3台机器node1,node2,node3,node4,node5 作为主节点  node5。配置:16g内存,8核,如果是自己虚拟机的话master至少8g,因为装完集群(装了8个应用组件)node5的内存已用了7g多。(CDH是比较吃内存和硬盘的)
  2. centos6.5  地址:https://pan.baidu.com/s/1OTAPpvni_JtTfKFiPTueQQ 密码:dlsd
  3. 网络配置(所有节点)
     1.vi /etc/sysconfig/network修改hostname :
        NETWORKING=yes
        HOSTNAME=node5
       通过service network restart重启网络服务生效
     2.  vi /etc/hosts,修改ip与主机名的对应关系
       192.168.0.179 node1
       192.168.0.178 node2
       192.168.0.177 node3
       192.168.0.176 node4
       192.168.0.175 node5

              4.设置SSH无密码访问(所有节点)

             我这边写了一个脚本,执行起来省去了很多问题,连接发给大家

             链接:https://pan.baidu.com/s/1Gmxs3oY01zyAXB-U32c9pg 密码:iwn6

             

            文件包括

             1ssh_auth.sh  建立互信的脚本

             3scp.sh   传输文件的脚本

             all.sh       传输文件的脚本

             hostname  配置文件(通信的各个主机名)

             hostnames 配置文件 (通信的各个主机名)

            大家可以打开文件自己看一下上面的操作

          

         建立互信后可以进行测试 ssh + 主机名 看是否进行免密登录

         

         

         

        5.安装Oracle Java(所有节点)

          Centos6.5可能自带OpenJDK,但运行CDH5需要使用Oracle的JDK,我这边用的是 jdk-8u111-linux-x64.tar.gz

           链接:https://pan.baidu.com/s/12Ez6CVjn_gG2DYRx_qLOXw 密码:eoca

          卸载自带的OpenJDK** 使用下述命令查询相关的java包
          rpm -qa | grep java
          使用-e选项填入包名卸载
          rpm -e --nodeps packageName

          安装oracle jdk 配置环境变量/etc/profile.再source使起生效这里不在这边详细说明

       6.安装配置MySQL(主节点)

           我这边用的是二进制安装mysql的方法进行安装部署,部署安装教程地址: https://www.cnblogs.com/wcwen1990/p/6655271.html
           这里是mysql的安装包:
           地址:https://pan.baidu.com/s/1VgmiGLZlHtDStGU7mQMVJA 密码:2wcx
           mysql -uroot -p进入mysql命令行,创建以下数据库:
           #为hive建库hive
           create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
          #activity monitor
           create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
           #为oozie建库oozie
          create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
          #为hue建库hue
           create database hue  DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
          设置root授权访问以上所有的数据库:
         #授权root用户在主节点拥有所有数据库的访问权限
          grant all privileges on *.* to 'root'@'master' identified by 'root' with grant option;
          flush privileges;

       7.关闭防火墙和SELinux(所有节点)

  1. 注意: 需要在所有的节点上执行,因为涉及到的端口太多了,临时关闭防火墙是为了安装起来更方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。

    关闭防火墙:

    service iptables stop (临时关闭)  
    chkconfig iptables off (重启后生效)

    关闭SELINUX(实际安装过程中发现没有关闭也是可以的,不知道会不会有问题,还需进一步进行验证):

    setenforce 0 (临时生效)  
    修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)
  2. 配置NTP服务(所有节点) 

    集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题,例如主机运行状态不良等。 具体思路如下:

    master节点作为ntp服务器与外界对时中心同步时间,随后对所有datanode节点提供时间同步服务。

    所有datanode节点以master节点为基础同步时间。

    所有节点安装相关组件:yum install ntp。完成后,配置开机启动:chkconfig ntpd on,检查是否设置成功:chkconfig --list ntpd其中2-5为on状态就代表成功。

    主节点配置

    在配置之前,先使用ntpdate手动同步一下时间,免得本机与对时中心时间差距太大,使得ntpd不能正常同步。这里选用103.226.213.30作为对时中心,ntpdate -u 103.226.213.30。  
    下面是国内最活跃的时间服务器地址:
    server 0.cn.pool.ntp.org 
    server 0.asia.pool.ntp.org 
    server 3.asia.pool.ntp.org 
    server 0.centos.pool.ntp.org iburst 
    server 1.centos.pool.ntp.org iburst 
    server 2.centos.pool.ntp.org iburst 
    server 3.centos.pool.ntp.org iburst

    ntp服务只有一个配置文件,配置好了就OK。 这里只给出有用的配置,不需要的配置都用#注掉,这里就不在给出: 

    driftfile /var/lib/ntp/drift

    restrict 127.0.0.1

    restrict -6 ::1

    restrict default nomodify notrap

    server 103.226.213.30 prefer 

    includefile /etc/ntp/crypto/pw

    keys /etc/ntp/keys

    配置文件完成,保存退出,启动服务,执行如下命令:service ntpd start 

    检查是否成功,用ntpstat命令查看同步状态,出现以下状态代表启动成功: 

    synchronised to NTP server () at stratum 2

    time correct to within 74 ms

    polling server every 128 s

    如果出现异常请等待几分钟,一般等待5-10分钟才能同步。 

    配置ntp客户端(所有子节点) 

    driftfile /var/lib/ntp/drift

    restrict 127.0.0.1

    restrict -6 ::1

    restrict default kod nomodify notrap nopeer noquery

    restrict -6 default kod nomodify notrap nopeer noquery

    #这里是主节点的主机名或者ip

    server node5

    includefile /etc/ntp/crypto/pw

    keys /etc/ntp/keys

    ok保存退出,请求服务器前,请先使用ntpdate手动同步一下时间:ntpdate -u node5 (主节点ntp服务器) 

    这里可能出现同步失败的情况,请不要着急,一般是本地的ntp服务器还没有正常启动,一般需要等待5-10分钟才可以正常同步。启动服务:service ntpd start 

    因为是连接内网,这次启动等待的时间会比master节点快一些,但是也需要耐心等待一会儿

             

二,Cloudera Manager安装与集群配置

 在上节已将环境配置完成。下面开始安装CM和搭建集群。

1,主节点安装CM  

解压:tar xzvf cloudera-manager*.tar.gz将解压后的cm-5.9和cloudera目录放到/opt目录下。 

建立数据库:将下载好的mysql-connector-java-5.1.17.jar放到/opt/cm-5.11.0/share/cmf/lib/

初始化数据库: /opt/cm-5.11.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hnode5 -uroot -p123456 --scm-host node5 scm scm scm 

参数分别是:数据库类型 数据库名称 -h数据库主机名 -u数据库用户名 -p数据库密码--scm-host cmserver主机名 scm scm scm

2.agent配置 

修改/opt/cm-5.9/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名。

同步Agent到其他所有节点: scp -r /opt/cm-5.11.0 root@node2:/opt/

在所有节点创建cloudera-scm用户

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

3.准备Parcels,用以安装CDH5 

将CHD5相关的Parcel包放到主节点的/opt/cloudera/parcel-repo/目录中(parcel-repo需要手动创建)。

相关的文件如下: 

             - CDH-5.11.1-1.cdh5.11.1.p0.34-el6.parcel

              -CDH-5.11.1-1.cdh5.11.1.p0.34-el6.parcel.sha1

          -manifest.json 

最后将CDH-5.11.1-1.cdh5.11.1.p0.34-el6.parcel.sha1,重命名为CDH-5.11.1-1.cdh5.11.1.p0.34-el6.parcel.sha,这点必须注意,否则,系统会重新下载CDH-5.11.1-1.cdh5.11.1.p0.34-el6.parcel文件。

相关启动脚本

主节点:通过/opt/cm-5.11.1/etc/init.d/cloudera-scm-server start启动服务端。

所有节点(包括主节点):通过/opt/cm-5.11.1/etc/init.d/cloudera-scm-agent start启动Agent服务。

我们启动的其实是个service脚本,需要停止服务将以上的start参数改为stop就可以了,重启是restart。

 4,CDH5安装配置 

Cloudera Manager Server和Agent都启动以后,就可以进行CDH5的安装配置了。

这时可以通过浏览器访问主节点的7180端口测试一下了(由于CM Server的启动需要花点时间,这里可能要等待一会才能访问),默认的用户名和密码均为admin:

                  

 

 可以看到,免费版本的CM5已经没有原来50个节点数量的限制了。下面这图我安装好了就没剪切,用别人的图

 

 

 

 

 各个Agent节点正常启动后,可以在当前管理的主机列表中看到对应的节点。选择要安装的节点,点继续

 

 

 

 继续,如果配置本地Parcel包无误,那么下图中的已下载,应该是瞬间就完成了,然后就是耐心等待分配过程就行了,这个过程的速度就取决于节点之间的传输速度。

 

 

当前受管:假如在安装的时候出现问题,如网络连接中断,机器死机,继续安装的时候可能会出现查询不到机器,并且根据ip搜索机器的时候,出现“当前受管”的状态为“是”,安装失败的机器不能再选择了。 
这里写图片描述

这里写图片描述 

 至此,所有节点部署完成

 

 下一步主机检查,遇到以下问题: 

 

 

 

       第一个警告:

 Cloudera 建议将 /proc/sys/vm/swappiness 设置为 10。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。 

 echo 10 > /proc/sys/vm/swappiness

这样操作重启机器还是还原,要永久改变

vim   /etc/sysctl.conf
vm.swappiness=10
 

 第二个警告,提示执行命令:

 echo never > /sys/kernel/mm/transparent_hugepage/defrag

 echo never > /sys/kernel/mm/transparent_hugepage/enabled

执行完毕,重启后,警告依然,暂时不处理

 

安装服务

 

 

 注意:这里开始,所有的服务,既可以通过下述自助来安装一系列服务;也可以手动在CM管理页面一个一个添加

 之前安装时选择一次性安装一系列服务,由于没有新建hue数据库导致hue服务安装不上,所以后面选择一个一个安装,在前期搭建环境时这样更好,起码出现问题可以锁定是哪个服务。

 

分步安装服务步骤为:

点击页面上Cloudera MANAGER,回到主节点页面

这里写图片描述

出现cluster1群集1,点击下拉,选择“添加服务” 
这里写图片描述

这里写图片描述
HDFS,Hive, HUE,Oozie, YARN, ZOOKEEPER是核心Hadoop的几个服务,分别安装,由于这些节点存在依赖关系,需注意先后顺序(当然,安装时CM会警告),顺序是: 
Zookeeper, hdfs, yarn, hive, oozie, hue

注意:在安装hive, hue和oozie时,要将MySQL驱动jar拷贝到相应位置

 cp /home/hadoop/mysql-connector-java-5.1.38.jar  /opt/cloudera/parcels/CDH-5.11.1-1.cdh5.11.1.p0.34/lib/hive/lib

 cp /home/hadoop/mysql-connector-java-5.1.38.jar  /var/lib/oozie
 
按需安装完服务后,可在集群界面(即Cloudera MANAGER)看一下集群的状况 !

查看日志

CM虽然配置麻烦,但日志齐全,每个操作,都能找到相应的运行日志,日志对于配合、调试和查看任务进度都有很大的帮助

 

 

Q&A

hdfs
1,Hadoop Datanode节点无法启动(All directories in dfs.data.dir are invalid)
这是data目录没有权限
解决:chmod -R 777 dfs
2.执行 hadoop jar时候  输出目录可能需要手动添加和设置权限,否则执行时候会提示
NFS service is already running on this host. Please stop the NFS service running on this host before attempting to start the NFS Gateway role
解决:
service nfs stop
service nfs status
3.Permission denied: user=root, access=WRITE, inode="/":hdfs:supergroup:drwxr-xr-x
权限问题,需要修改目标操作的权限,或者修改操作的用户。
可以用 hdfs dfs -ls /     查看各个目录的所属用户
解决:如果目录或文件所属用户不对,需要修改: hdfs dfs -chown -R  user:group   目标文件
 
hive
1,Version information not found 
解决:
打开页面>hive.metastore.schema.verification 设置为false 去掉勾选
2,javax.jdo.JDODataStoreException: Required table missing : "`VERSION`" in Catalog "" Schema "". DataNucleus requires this table to perform its persistence operations. Either your MetaData is incorrect, or you need to enable "datanucleus.autoCreateTables"
解决:
打开页面>datanucleus.autoCreateSchema 设置为true就是勾选就可以
 
hue 
1,Unexpected error. Unable to verify database connection
 查看日志报错是:ImportError: libxslt.so.1: cannot open shared object file: No such file or directory
原因是centos缺少库文件,执行如下命令即可
解决:
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
 

参考:

    

   https://blog.csdn.net/lichangzai/article/details/51564701

    https://www.cnblogs.com/codedevelop/p/6762555.html

    https://blog.csdn.net/yizheyouye/article/details/53173912

    https://blog.csdn.net/qq_37667074/article/details/78731529


























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈苏漾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值