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

时间:2022-05-02 10:31:48

转载: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 的帐号。 如果有安全性考虑请自行修改密码。如果有安全性考虑请自行修改密码。
Cloudera Manager Free Edition 4.1 和CDH 4.1.2 简易安装教学

如果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
    Cloudera Manager Free Edition 4.1 和CDH 4.1.2 简易安装教学
  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 也是会被装进系统里的。
    Cloudera Manager Free Edition 4.1 和CDH 4.1.2 简易安装教学
  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 三台机器。
    Cloudera Manager Free Edition 4.1 和CDH 4.1.2 简易安装教学
  4. 确认所有的机器已经在名单中,而且SSH 正常运作确认所有的机器已经在名单中,而且SSH 正常运作
    Cloudera Manager Free Edition 4.1 和CDH 4.1.2 简易安装教学
  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/

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

  1. 决定SSH 的权限及存取方式。决定SSH 的权限及存取方式。 偷懒一点就可以用root 身份并给密码。偷懒一点就可以用root 身份并给密码。 但比较好的做法是把ssh key 先放到所有的机器上。但比较好的做法是把ssh key 先放到所有的机器上。 如果不用root 账号就要确定指定的user 有不需要打密码就能sudo 的权限。如果不用root 帐号就要确定指定的user 有不需要打密码就能sudo 的权限。
    Cloudera Manager Free Edition 4.1 和CDH 4.1.2 简易安装教学

进入安装程序进入安装程序
Cloudera Manager Free Edition 4.1 和CDH 4.1.2 简易安装教学
安装过程中可以点选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。
Cloudera Manager Free Edition 4.1 和CDH 4.1.2 简易安装教学
在安装过程中难免会遇到失败的状况。在安装过程中难免会遇到失败的状况。 这边故意制造了一个会出错的例子。这边故意制造了一个会出错的例子。
Cloudera Manager Free Edition 4.1 和CDH 4.1.2 简易安装教学
点选Details可以看错误讯息点选Details可以看错误讯息
Cloudera Manager Free Edition 4.1 和CDH 4.1.2 简易安装教学
以这个例子而言是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. 三台机器都安装成功三台机器都安装成功
    Cloudera Manager Free Edition 4.1 和CDH 4.1.2 简易安装教学
  2. 接下来会做所有机器的检查,项目包括接下来会做所有机器的检查,项目包括
    • 网络设定网路设定
    • 各机器的系统时间是否同步。各机器的系统时间是否同步。 这部分容易被忽略但是很重要,如果没同步,Hadoop/HBase/Kerberos Authentication 会发生很多奇怪的状况而且难debug这部分容易被忽略但是很重要,如果没同步,Hadoop/HBase/Kerberos Authentication 会发生很多奇怪的状况而且难debug
    • Hadoop users/groups 权限及个数是否相同 Hadoop users/groups 权限及个数是否相同
    • HDFS 的设定 HDFS 的设定
    • 机器上安装的版本机器上安装的版本

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

  1. 显示检查的结果显示检查的结果
    Cloudera Manager Free Edition 4.1 和CDH 4.1.2 简易安装教学
  2. 这是所有机器的列表。这是所有机器的列表。 点选Host Inspector可以重做一次上面所说的检查。点选Host Inspector可以重做一次上面所说的检查。
    Cloudera Manager Free Edition 4.1 和CDH 4.1.2 简易安装教学
    View Columns选择Physical Attributes可以切换看CPU/Memory/Disk 的使用状况在View Columns选择Physical Attributes可以切换看CPU/Memory/Disk的使用状况
    Cloudera Manager Free Edition 4.1 和CDH 4.1.2 简易安装教学

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

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

执行环境执行环境
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