最靠谱的CDH5安装指南

作者: dzgdp888 | 来源:发表于2016-01-18 10:45 被阅读48591次

    系统要求
    系统:CentOS 6.5
    Cloudera:CM5.2.0 + CDH 5.2.0
    内存:主节点4G内存以上,其他节点需要2G以上内存

    Hadoop版本选择

    目前Hadoop比较流行的主要有2个版本,Apache和Cloudera版本。
    Apache Hadoop:维护人员比较多,更新频率比较快,但是稳定性比较差。
    Cloudera Hadoop(CDH):CDH:Cloudera公司的发行版本,基于ApacheHadoop的二次开发,优化了组件兼容和交互接口、简化安装配置、增加Cloudera兼容特性。

    准备工作

    以下步骤要在所有节点上执行

    • 修改hostname
    vi /etc/sysconfig/network
    
    • 关闭SELinux

    查看SELinux状态

    getenforce
    

    若SELinux没有关闭,按照下述方式关闭

    vi /etc/selinux/config
    

    修改SELinux=disabled。重启生效,可以等后面都设置完了重启主机

    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #       enforcing - SELinux security policy is enforced.
    #       permissive - SELinux prints warnings instead of enforcing.
    #       disabled - SELinux is fully disabled.
    SELINUX=disabled
    # SELINUXTYPE= type of policy in use. Possible values are:
    #       targeted - Only targeted network daemons are protected.
    #       strict - Full SELinux protection.
    SELINUXTYPE=targeted
    
    • 关闭防火墙
    sudo service iptables stop
    sudo chkconfig iptables off
    sudo chkconfig iptables --list
    
    • 网络配置
    vim /etc/sysconfig/network-scripts/ifcfg-eth0
    

    设置静态ip,以及指定ip地址

    DEVICE="eth0"
    BOOTPROTO="static"
    IPADDR=192.168.1.110
    NM_CONTROLLED="yes"
    ONBOOT="yes"
    TYPE="Ethernet"
    DNS1=8.8.8.8
    DNS2=8.8.4.4
    GATEWAY=192.168.1.1
    
    • 修改hosts文件

    把所有要添加到集群中的主机都要加入hosts中,格式如下:

    127.0.0.1       localhost
    
    # CDH Cluster
    192.168.1.110   master
    192.168.1.111   slave1
    192.168.1.112   slave2
    

    以上步骤执行完毕后,重启主机

    reboot
    

    重启后再次检查下以上几点,确保环境配置正确。

    提前下载(本教程中,CM和CDH版本均为5.2.0)

        [cloudera-manager]
        # Packages for Cloudera Manager, Version 5, on RedHat or CentOS 6 x86_64                  
        name=Cloudera Manager
        baseurl=https://archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.2.0/
        gpgkey =https://archive.cloudera.com/cm5/redhat/6/x86_64/cm/RPM-GPG-KEY-cloudera    
        gpgcheck = 1
    

    这里注意下,将.sha1文件后缀更改为.sha,同时把内容只保留hash码部分。(5.2.0版本sha文件内容本身就只包含hash码,不需要修改,其他版本请自行查看!)

    Cloudera Manager安装

    以下步骤要在所有节点上执行:

    • 将cloudera-manager.repo文件拷贝到所有节点的/etc/yum.repos.d/文件夹下
    • 验证repo文件是否起效
      yum list|grep cloudera
      如果列出的不是你安装的版本,执行下面命令重试
      yum clean all
      yum list | grep cloudera
    • 将之前下载的rpms文件拷贝到所有节点下(任意目录)
      切换到rpms目录下,执行
      yum -y install *.rpm
    • 将之前下载的Parcel那3个文件拷贝到/opt/cloudera/parcel-repo目录下(如果没有该目录,请自行创建)
      至此,/opt/cloudera/parcel-repo下面有三个文件: CDH-5.2.0-1.cdh5.2.0.p0.36-el6.parcel
      mainfest.json
      CDH-5.2.0-1.cdh5.2.0.p0.36-el6.parcel.sha

    以下步骤请只在主节点上执行:

    • 将下载好的bin文件拷贝到主节点任意目录下
    • 进入该目录,给bin文件赋予可执行权限
      sudo chmod +x ./cloudera-manager-installer.bin
    • 安装CM
      ./cloudera-manager-installer.bin
      接下来全部next和yes就行了,因为所需要的rpm包已经提前下载下来了,这个过程会进行的非常快。
    CM安装成功

    CDH集群安装

    • CM安装成功后浏览器输入http://ip:7180,ip是CM安装的主机ip或者主机名。显示如下界面,用户名和密码都输入admin,进入web管理界面。
    CM Web管理界面

    如果打不开改网页,请耐心等待会。这个服务启动是需要一定时间的。

    • 选择部署的版本,这里我们选择免费版的就可以了。
    CM-选择版本
    • 点击继续
    CM-介绍
    • 选择添加的主机。输入主机ip或者主机名,点击搜索。
    CM-选择主机

    这里如果选择一系列主机可以输入如下的内容:

    192.168.1.[101-105]
    slave[1-3].com.cn
    

    勾选要添加的主机,继续下一步操作。

    • 选择存储库

    这里我们采用Parcel离线安装的方式,安装简便、完全离线而且更便于集群的管理。

    CM-选择存储库

    选择我们之前上传到服务器的CDH5.2.0版本,其他全选无,下一步。

    • JDK安装选项
      这里之前已经安装过了,所以不需要勾选,直接继续。


      CM-JDK安装
    • 提供SSH登陆凭据
      由于CDH会自动管理所有主机间的SSH通讯,所以我们之前并没有手动配置各个节点间的SSH免密登录。在这里统一设置就行了,设置好密码点继续。

    CM-SSH管理
    • 集群安装
      因为这里所需要的软件包我们之前都已经安装过了,这一步会很快结束。
    CM-集群安装 安装完成
    • 安装Parcel到所有主机上
      因为Parcel文件已经提前下载好了,第一个进度条会直接显示已下载,然后开始分配。这个过程实际上就是将Parcel内的软件解压缩安装到各个主机上的过程。耐心等待,时间会比较长,我安装2台主机大概是需要20分钟时间。
    CM-安装Parcel

    安装完毕后点继续

    Parcel安装完毕
    • 主机检查
      检查就可以了,建议不要跳过。检查结果如下:
    主机检查

    下面这2个都是误报,不需要理会。


    主机检查2
    • 安装服务
      CDH5提供了你可能需要的各种服务,需要什么启动什么就行了。这里我选择了自定义,添加HBase,HDFS,MapReduce和ZooKeeper,这里大家按照自己的需求选。
    CM-添加服务
    • 角色分配
      分配各个节点的角色
    CM-角色分配
    • 数据库设置
      CDH默认内嵌了一个数据库,如果你需要MySQL或者Oracle请选择使用自定义数据库,点击测试连接,成功后点继续。
    CM-数据库设置
    • 审核更改
      这里全部默认就可以了,直接继续。
    CM-审核更改
    • 安装完成,初始化
      到这里集群已经安装部署完成了,CDH会自动对你选择的服务进行初始化设置,你也可以稍后自行开启。
    CM-初始化

    初始化完成后,将进入主页面

    CM-主页

    因为我们只安装了2台主机,而HDFS和ZooKeeper建议至少3个节点,所以页面上有一些警告,这些都不影响。到此,CDH集群部署完成。

    问题汇总

    1、安装过程中遇到以下提示

    Detecting Cloudera Manager Server...
        Detecting Cloudera Manager Server...
        BEGIN host -t PTR 192.168.1.198
        198.1.168.192.in-addr.arpa domain name pointer localhost.
        END (0)
        using localhost as scm server hostname
        BEGIN which python
        /usr/bin/python
        END (0)
        BEGIN python -c 'import socket; import sys; s = socket.socket(socket.AF_INET); s.settimeout(5.0); s.connect((sys.argv[1], int(sys.argv[2]))); s.close();' localhost 7182
        Traceback (most recent call last):
        File "<string>", line 1, in <module>
        File "<string>", line 1, in connect
        socket.error: [Errno 111] Connection refused
        END (1)
        could not contact scm server at localhost:7182, giving up
        waiting for rollback request
    

    在失败的主机上,终端执行

    mv /usr/bin/host /usr/bin/host.bak
    

    然后重试。

    2、安装过程一直卡在"正在获取安装锁"
    在卡住的主机上,删除/tmp文件夹中的所有scm_prepare_node.开头的文件,清空yum缓存,然后重启主机。

    cd /tmp 
    rm -rf  scm_prepare_node.*
    yum clean all
    reboot
    

    3、安装完毕后NameNode格式化失败,报一下错误

    IncorrectVersionException: Unexpected version of storage directory /data/dfs
    

    删除NameNode节点的/data/dfs文件夹,重新添加主机。

    4、如何更改节点ip
    重新设置每台主机的hosts文件,完成后进入主机界面,点击重新运行升级向导,再走一遍之前的流程即可。

    更改ip

    相关文章

      网友评论

      • c586648bca05:良心文章
      • bb4ad427eeb0:kudu 怎么配置呢?
      • 150d38877cbc:楼主写得非常好,经测试可行,但是我的安装非常卡,能不能把硬件条件列一下
      • 8dc6558a2699:选择存储库 --- 选择CDH版本 --- 怎么只有CDH-5.13 和CDH-4.7 两个版本呢? 按照文章步骤下载安装的。
      • 采菊东篱下:终于看到一个靠谱的了,步骤清晰,不含糊
      • 畅谠:最靠谱的CDH5安装指南 - ,写的不错不错,收藏了。

        推荐下,分库分表中间件 Sharding-JDBC 源码解析 17 篇:http://c7.gg/rSTt


        fe1421e713cc:恩恩

        还不错那
      • 巴马小神仙:不错,我正研究如何在非root账户下运行和部署,参考一下
      • 7d382c2c6014:感谢。。文章非常有用
      • 75237eb3d755:又get了新技能,非常感谢!
      • f12e57ce1f1c:不知道你有没有需要这样一个问题:
        [08/Dec/2016 03:40:53 +0000] 14742 MainThread agent ERROR Failed to activate {u'refresh_files': [], u'config_generation': 0, u'auto_restart': False, u'running': True, u'required_tags': [], u'one_off': True, u'special_file_info': [], u'group': u'root', u'id': 22, u'status_links': {}, u'name': u'cluster-host-inspector', u'extra_groups': [], u'run_generation': 1, u'start_timeout_seconds': None, u'environment': {}, u'optional_tags': [], u'program': u'mgmt/mgmt.sh', u'arguments': [u'inspector', u'input.json', u'output.json', u'DEFAULT'], u'parcels': {}, u'resources': [], u'user': u'root'}
        Traceback (most recent call last):
        File "/usr/lib64/cmf/agent/build/env/lib/python2.6/site-packages/cmf-5.9.0-py2.6.egg/cmf/agent.py", line 1685, in handle_heartbeat_processes
        new_process.update_heartbeat(raw, True)
        File "/usr/lib64/cmf/agent/build/env/lib/python2.6/site-packages/cmf-5.9.0-py2.6.egg/cmf/process.py", line 282, in update_heartbeat
        self.fs_update()
        File "/usr/lib64/cmf/agent/build/env/lib/python2.6/site-packages/cmf-5.9.0-py2.6.egg/cmf/process.py", line 383, in fs_update
        raise Exception("Non-root agent cannot execute process as user '%s'" % user)
        Exception: Non-root agent cannot execute process as user 'root'

      本文标题:最靠谱的CDH5安装指南

      本文链接:https://www.haomeiwen.com/subject/nwfkkttx.html