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

原文地址:https://www.cnblogs.com/datascientist/p/3455266.html