• Cloudera Manager Free Edition 4.1 和CDH 4.1.2 简易安装教学


    转载:http://fenriswolf.me/2012/12/06/cloudera-manager-free-edition-4-1-和-cdh-4-1-2-简易安装教学/

    安装及管理一个大的Hadoop cluster 并不是只要下载tar files 解压缩并启动services 这么简单。安装及管理一个大的Hadoop cluster 并不是只要下载tar files 解压缩并启动services 这么简单。 后续有非常多设定、监控等麻烦的事要处理。后续有非常多设定、监控等麻烦的事要处理。 Cloudera Manager 就整合了一系列的功能让系统管理者能更方便的维护Hadoop Cloudera Manager 就整合了一系列的功能让系统管理者能更方便的维护Hadoop Free Edition 的限制如下 Free Edition 的限制如下

    • 只支援50 个nodes只支援50 个nodes
    • 没有设定的版本控管没有设定的版本控管
    • 没有支援LDAP/Kerberos Authentication没有支援LDAP/Kerberos Authentication
    • 没有进阶的services 监控选项,如health check没有进阶的services 监控选项,如health check
    • 没有Logs 搜寻功能没有Logs 搜寻功能

    更多说明在How to Upgrade the Free Edition to Cloudera Manager可以找到。更多说明在How to Upgrade the Free Edition to Cloudera Manager可以找到。 但是对小型的cluster 或是新手想试试怎么装Hadoop 很有帮助。但是对小型的cluster 或是新手想试试怎么装Hadoop 很有帮助。

    1.前置作业 <br />在Requirements for Cloudera Manager里有提到Cloudera Manager所支持的所有作业系统,包括RHEL, CentOS, SUSE, Ubuntu等等。 这篇文章会以CentOS 6.3 为例子。这篇文章会以CentOS 6.3 为例子。

    • 官方建议/var 至少要留5G 的空间。官方建议/var 至少要留5G 的空间。 以个人经验,/usr/lib 至少要550M 以上,所有Hadoop 相关的packages 都会装在这个位置以个人经验,/usr/lib 至少要550M 以上,所有Hadoop 相关的packages 都会装在这个位置
    • RAM 建议4G,不过本篇所用的VMs 只给了2G RAM 建议4G,不过本篇所用的VMs 只给了2G
    • 如果使用Cloudera 所提供的yum repository,要确认网络能通及yum proxy 设定正确如果使用Cloudera 所提供的yum repository,要确认网路能通及yum proxy 设定正确
    • DNS 设定要正确,或是用/etc/hosts 的设定来取代DNS。 DNS 设定要正确,或是用/etc/hosts 的设定来取代DNS。 hostname 命名里不能有_字符,不然启动Hadoop services 时会失败。 hostname命名里不能有_字符,不然启动Hadoop services时会失败。 至于要不要给domain name 则见人见智。至于要不要给domain name 则见人见智。 以正式环境来说有设定会比较好。以正式环境来说有设定会比较好。 以下是这个范例所使用的设定以下是这个范例所使用的设定

    1 192.168.1.110   hadoop-master

    2 192.168.1.111   hadoop-worker01

    3 192.168.1.112   hadoop-worker02

    • Cloudera Manager Server 可用SSH 连到所有需要安装Hadoop 的机器 Cloudera Manager Server 可用SSH 连到所有需要安装Hadoop 的机器
    • 确认防火墙不会阻挡所有的操作。确认防火墙不会阻挡所有的操作。 以internal Hadoop 来说一般会把防火墙关掉或反安装以避免一些使用上的问题。以internal Hadoop 来说一般会把防火墙关掉或反安装以避免一些使用上的问题。 如果对安全性控管有高度要求的话,可以参考Configuring Ports for Cloudera Manager Free Edition来开放需要的ports如果对安全性控管有高度要求的话,可以参考Configuring Ports for Cloudera Manager Free Edition来开放需要的ports
    • 确认SELinux 不会阻挡所有的操作,建议是直接关掉确认SELinux 不会阻挡所有的操作,建议是直接关掉
    • 确认不会更动到Cloudera 会使用的users/groups 权限。确认不会更动到Cloudera 会使用的users/groups 权限。 可参考Requirements for Cloudera Manager最下方的清单可参考Requirements for Cloudera Manager最下方的清单

    2. 安装Cloudera Manager Server 2.安装Cloudera Manager Server
    Cloudera Manager Free Edition Download下载最新版的cloudera-manager-installer.bin 并执行。从Cloudera Manager Free Edition Download下载最新版的cloudera-manager-installer.bin并执行。
    cloudera-manager-installer.bin 会需要先安装JDK,如果系统没有的话会自动安装Cloudera 建议的版本Oracle JDK 1.6.0_31。 cloudera-manager-installer.bin 会需要先安装JDK,如果系统没有的话会自动安装Cloudera 建议的版本Oracle JDK 1.6.0_31。 以这篇文章所用的VMs 都已经装了Oracle JDK 1.6.0_37,则此步骤会被省略。以这篇文章所用的VMs 都已经装了Oracle JDK 1.6.0_37,则此步骤会被省略。
    接下来就可以用http://cms:7180打开admin console。接下来就可以用http://cms:7180打开admin console。 默认的账号密码是admin/admin。预设的帐号密码是admin/admin。 Cloudera Manager Server 对权限控管并没有做的很好,只有一个admin 的账号。 Cloudera Manager Server 对权限控管并没有做的很好,只有一个admin 的帐号。 如果有安全性考虑请自行修改密码。如果有安全性考虑请自行修改密码。
    clip_image002[16]

    如果admin console 无法正常运作,请看/var/log/cloudera-scm-server 下的log 讯息。如果admin console 无法正常运作,请看/var/log/cloudera-scm-server 下的log 讯息。 解决问题后重启service解决问题后重启service

    1

    service cloudera-scm-server restart

    3. 安装Hadoop 3.安装Hadoop

    1. 进入的第一页会显示你正在用Free Edition,直接把这个窗口关掉或点选Just Install the Latest Free Edition进入的第一页会显示你正在用Free Edition,直接把这个视窗关掉或点选Just Install the Latest Free Edition
      clip_image004[16]
    2. 第二页会显示Cloudera Manager Server 会安装的所有packages。第二页会显示Cloudera Manager Server 会安装的所有packages。 这部分除了Impala 之外,其他的packages 无法选择不装,MapReduce 也会装MRv1 及MRv2,所以会吃掉系统至少550M 以上的硬盘空间。这部分除了Impala 之外,其他的packages 无法选择不装,MapReduce 也会装MRv1 及MRv2,所以会吃掉系统至少550M 以上的硬盘空间。 画面上没有显示,但因为package 相依性的关系,Bigtop 和Pig 也是会被装进系统里的。画面上没有显示,但因为package 相依性的关系,Bigtop 和Pig 也是会被装进系统里的。
      clip_image005[16]
    3. 加入要安装的机器名称或IP。加入要安装的机器名称或IP。 可以用pattern来指定多台机器。可以用pattern来指定多台机器。 以这个范例而言会有192.168.1.110、192.168.1.111、192.168.1.112 三台机器。以这个范例而言会有192.168.1.110、192.168.1.111、192.168.1.112 三台机器。
      clip_image006[16]
    4. 确认所有的机器已经在名单中,而且SSH 正常运作确认所有的机器已经在名单中,而且SSH 正常运作
      clip_image007[16]
    5. Cloudera Manager 4.1 可以支持CDH3 或CDH4。 Cloudera Manager 4.1 可以支持CDH3 或CDH4。 这边是直接用最新版。这边是直接用最新版。
      Impala 1.0 Beta 已经出了,但是现在的测试并不会用到,所以选None 。 Impala 1.0 Beta已经出了,但是现在的测试并不会用到,所以选None 。 Impala 要求整个Hadoop cluster 一定要在RHEL/CentOS 6 上面执行,cluster 内混用Ubuntu、SuSE 或RHEL/CentOS 5.x 都是不行的,想试用的要注意OS 版本。 Impala 要求整个Hadoop cluster 一定要在RHEL/CentOS 6 上面执行,cluster 内混用Ubuntu、SuSE 或RHEL/CentOS 5.x 都是不行的,想试用的要注意OS 版本。
      Yum repository 如果用默认值,Cloudera Manager 会在/etc/yum.repos.d 里新增一个cloudera-cdh4.repo 来安装所有必要的packages。 Yum repository 如果用预设值,Cloudera Manager 会在/etc/yum.repos.d 里新增一个cloudera-cdh4.repo 来安装所有必要的packages。 所以要确认是否连的到archive.cloudera.com 。所以要确认是否连的到archive.cloudera.com 。 在production 的环境不建议直接使用Cloudera 的yum repository,因为Cloudera 版本的变动很快但yum repository 只会放最新版,所以有可能造成机器装的版号不一致。在production 的环境不建议直接使用Cloudera 的yum repository,因为Cloudera 版本的变动很快但yum repository 只会放最新版,所以有可能造成机器装的版号不一致。 例如旧机器装到4.1.1,但新机器装到4.1.2。例如旧机器装到4.1.1,但新机器装到4.1.2。 这有两种解法这有两种解法
      1. 由IT 建立一个private yum repository 并准备好所有需要的packages。由IT 建立一个private yum repository 并准备好所有需要的packages。
      2. 直接修改cloudera-cdh4.repo 中的baseurl 参数,指定明确的版号,如http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/4.1.1/http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/4.1.2/直接修改cloudera-cdh4.repo中的baseurl参数,指定明确的版号,如http://archive.cloudera.com/cdh4/redhat/6/x86_64/cdh/4.1.1/http://archive. cloudera.com/cdh4/redhat/6/x86_64/cdh/4.1.2/

    clip_image008[16]

    1. 决定SSH 的权限及存取方式。决定SSH 的权限及存取方式。 偷懒一点就可以用root 身份并给密码。偷懒一点就可以用root 身份并给密码。 但比较好的做法是把ssh key 先放到所有的机器上。但比较好的做法是把ssh key 先放到所有的机器上。 如果不用root 账号就要确定指定的user 有不需要打密码就能sudo 的权限。如果不用root 帐号就要确定指定的user 有不需要打密码就能sudo 的权限。
      clip_image009[16]

    进入安装程序进入安装程序
    clip_image010[16]
    安装过程中可以点选Details看Cloudera Manager 正在执行的动作。安装过程中可以点选Details看Cloudera Manager正在执行的动作。 每台机器都会先装Cloudera Manager Agent 来设定及监控Hadoop services,再装Oracle JDK 1.6.0_31 和所有Hadoop packages。每台机器都会先装Cloudera Manager Agent 来设定及监控Hadoop services,再装Oracle JDK 1.6.0_31 和所有Hadoop packages。
    clip_image011[16]
    在安装过程中难免会遇到失败的状况。在安装过程中难免会遇到失败的状况。 这边故意制造了一个会出错的例子。这边故意制造了一个会出错的例子。
    clip_image012[16]
    点选Details可以看错误讯息点选Details可以看错误讯息
    clip_image014[16]
    以这个例子而言是Cloudera Manager Agent 启动失败。以这个例子而言是Cloudera Manager Agent 启动失败。 Console 上并没有显示所有的log,log 档案在/var/log/cloudera-scm-agent/cloudera-scm-agent.out Console 上并没有显示所有的log,log 档案在/var/log/cloudera-scm-agent/cloudera-scm-agent.out

    1. /usr/lib64/cmf/agent/src/cmf/agent.py:24: DeprecationWarning: the sha module is deprecated; use the hashlib module instead
    2. import sha
    3. /usr/lib64/cmf/agent/src/cmf/monitor/host/network_interfaces.py:11: DeprecationWarning: the sets module is deprecated
    4. from sets import Set
    5. [03/Nov/2012 21:27:37 +0000] 7692 MainThread agent ERROR Could not determine hostname or ip address; proceeding.
    6. Traceback (most recent call last):
    7. File "/usr/lib64/cmf/agent/src/cmf/agent.py", line 1204, in parse_arguments
    8. ip_address = socket.gethostbyname(fqdn)
    9. gaierror: [Errno -2] Name or service not known
    10. usage: agent.py [-h] [--agent_dir AGENT_DIR]
    11. [--agent_httpd_port AGENT_HTTPD_PORT] --package_dir
    12. PACKAGE_DIR [--supervisord_path SUPERVISORD_PATH]
    13. [--supervisord_httpd_port SUPERVISORD_HTTPD_PORT]
    14. [--standalone STANDALONE] [--master MASTER]
    15. [--environment ENVIRONMENT] [--host_id HOST_ID]
    16. [--disable_supervisord_events] [--disable_eager_heartbeats]
    17. --hostname HOSTNAME --ip_address IP_ADDRESS [--use_tls]
    18. [--client_key_file CLIENT_KEY_FILE]
    19. [--client_cert_file CLIENT_CERT_FILE]
    20. [--verify_cert_file VERIFY_CERT_FILE]
    21. [--client_keypw_file CLIENT_KEYPW_FILE] [--logfile LOGFILE]
    22. [--optional_token] [--clear_agent_dir]
    23. agent.py: error: argument --hostname is required
    24. [03/Nov/2012 21:27:37 +0000] 7692 Dummy-1 agent INFO Stopping agent...

    这个错误是因为在/etc/hosts 里IP/hostname 的对应不正确,修好之后再点选Retry 。这个错误是因为在/etc/hosts里IP/hostname的对应不正确,修好之后再点选Retry 。 Cloudera Manager 会先把之前的所有操作rollback,回复到初始状态之后才重装。 Cloudera Manager 会先把之前的所有操作rollback,回复到初始状态之后才重装。

    1. 三台机器都安装成功三台机器都安装成功
      clip_image015[16]
    2. 接下来会做所有机器的检查,项目包括接下来会做所有机器的检查,项目包括
      • 网络设定网路设定
      • 各机器的系统时间是否同步。各机器的系统时间是否同步。 这部分容易被忽略但是很重要,如果没同步,Hadoop/HBase/Kerberos Authentication 会发生很多奇怪的状况而且难debug这部分容易被忽略但是很重要,如果没同步,Hadoop/HBase/Kerberos Authentication 会发生很多奇怪的状况而且难debug
      • Hadoop users/groups 权限及个数是否相同 Hadoop users/groups 权限及个数是否相同
      • HDFS 的设定 HDFS 的设定
      • 机器上安装的版本机器上安装的版本

    clip_image016[16]

    1. 显示检查的结果显示检查的结果
      clip_image018[16]
    2. 这是所有机器的列表。这是所有机器的列表。 点选Host Inspector可以重做一次上面所说的检查。点选Host Inspector可以重做一次上面所说的检查。
      clip_image020[16]
      View Columns选择Physical Attributes可以切换看CPU/Memory/Disk 的使用状况在View Columns选择Physical Attributes可以切换看CPU/Memory/Disk的使用状况
      clip_image022[16]

    4. 新增cluster 及启动Hadoop services 4.新增cluster及启动Hadoop services

    • 机器都装好之后就可以进Services tab,选择Add Cluster机器都装好之后就可以进Services tab,选择Add Cluster
      clip_image024[16]
    • 这边选择要加入这个cluster 的机器。这边选择要加入这个cluster 的机器。 因为这个环境是新装的,所以直接用Use Only Currently Managed Hosts就可以了因为这个环境是新装的,所以直接用Use Only Currently Managed Hosts就可以了
      clip_image026[16]
    • 选择要启动的CDH 版本及services。选择要启动的CDH 版本及services。 为了测试方便,只选了HDFS 和MRv1 两个services。为了测试方便,只选了HDFS 和MRv1 两个ser​​vices。 决定之后不要急着按Continue ,而是要选Inspect Role Assignments做一些微调决定之后不要急着按Continue ,而是要选Inspect Role Assignments做一些微调
      clip_image028[16]
    • 这个页面会显示Cloudera Manager 帮你启动services 的详细设定。这个页面会显示Cloudera Manager 帮你启动services 的详细设定。 以这个例子而言,hadoop-master 可以把DataNode 和TaskTracker 的选项拿掉。以这个例子而言,hadoop-master 可以把DataNode 和TaskTracker 的选项拿掉。
      clip_image030[16]
    • 再来是最基本启动services 会用到的设定,细部设定页面后面会说明。再来是最基本启动services 会用到的设定,细部设定页面后面会说明。
      clip_image032[16]
    • 因为是新的cluster,会先做HDFS format,启动HDFS services,在HDFS 上建立tmp 目录,启动MapReduce services,及部属client 的设定因为是新的cluster,会先做HDFS format,启动HDFS services,在HDFS 上建立tmp 目录,启动MapReduce services,及部属client 的设定
      clip_image034[16]
    • 显示所有services 的执行状况显示所有services 的执行状况
      clip_image036[16]
    • 点选hdfs1>Configuration会列出所有细部的设定,Cloudera Manager 会依机器的规格而给出一些建议值。点选hdfs1>Configuration会列出所有细部的设定,Cloudera Manager会依机器的规格而给出一些建议值。 新手也可以参考这个页面了解有多少参数可以设定,及其意义。新手也可以参考这个页面了解有多少参数可以设定,及其意义。 所有services 的设定方式都是由Configuration tab 进入。所有services的设定方式都是由Configuration tab进入。
      clip_image038[16]

    执行环境执行环境
    CentOS 6.3 CentOS 6.3
    JDK 1.6.0_37 JDK 1.6.0_37
    Cloudera Manager 4.1 Cloudera Manager 4.1
    Cloudera CDH4.1.2 Cloudera CDH4.1.2
    参考数据参考资料
    Cloudera Manager 4.1 Free Edition Documentation Cloudera Manager 4.1 Free Edition Documentation

  • 相关阅读:
    java8 查找字符串中首次出现2次的字母
    java8 stream编程
    详解--从地址栏输入url到页面展现中间都发生了什么?
    前端aes解密实战小结
    使用高德地图开发需要注意的一些点
    vue-cli项目打包优化(webpack3.0)
    3种web会话管理方式
    web缓存之--http缓存机制
    javascript创建对象的几种方式
    对原型链、闭包的理解
  • 原文地址:https://www.cnblogs.com/datascientist/p/3455266.html
Copyright © 2020-2023  润新知