分享

Cloudera Manager and CDH安装及配置(CentOS)

sstutu 发表于 2014-9-12 20:43:08 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 19624

问题导读:
1.CentOS如何创建本地的yum软件源?
2.Cloudera Manager and CDH安装及配置需要注意哪些问题?
扩展:
3.你认为Cloudera Manager 有几种安装方式?












创建本地yum软件源,为本地Package安装Cloudera Manager、Cloudera Hadoop及Impala做准备


一、包管理工具及CentOS的yum
1、包管理工具如何发现可以用的包
包管理工具依赖一系列软件源,工具下载源的信息存储在配置文件中,其位置随某包管理工具不同而变化

使用yum的RedHat/CentOS存储在:/etc/yum.repos.d
使用apt-get的Debian/Ubuntu在:/etc/apt/apt.conf (额外的源采用*.list文件指定,存储在/etc/apt/sources.list.d目录下)
例如在,CentOS下面:

  1. [root@lemon ~]# ls -l /etc/yum.repos.d/
  2. total 24
  3. -rw-r--r--. 1 root root 1926 Feb 25 00:57 CentOS-Base.repo
  4. -rw-r--r--. 1 root root  638 Feb 25 00:57 CentOS-Debuginfo.repo
  5. -rw-r--r--. 1 root root  630 Feb 25 00:57 CentOS-Media.repo
  6. -rw-r--r--. 1 root root 3664 Feb 25 00:57 CentOS-Vault.repo
  7. drwxr-xr-x  3 root root 4096 Jun 12 23:37 cloudera-cdh4
  8. -rw-r--r--  1 root root  231 Jun 12 23:36 clouder-cdh4.repo
复制代码

上述每个.repo文件对应着一个或者多个软件源,下面CentOS-Base.repo的片段说明,该文件定义了两个软件源,一个是Base,一个是Upadate。镜像列表参数指向一系列可以下载软件源的网址。

  1. #………
  2. [base]
  3. name=CentOS-$releasever - Base
  4. mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
  5. #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
  6. gpgcheck=1
  7. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
  8. #released updates
  9. [updates]
  10. name=CentOS-$releasever - Updates
  11. mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
  12. #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
  13. gpgcheck=1
  14. gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
  15. #………
复制代码

在CentOS下面可以使用:yum repolist  查看系统中启用的软件源。CentOS有如下软件源列表:
  1. [root@lemon ~]# yum repolist
  2. Loaded plugins: fastestmirror, refresh-packagekit, security
  3. Loading mirror speeds from cached hostfile
  4. * base: mirror01.idc.hinet.net
  5. * extras: mirror01.idc.hinet.net
  6. * updates: ftp.stu.edu.tw
  7. repo id                repo name                                               status
  8. base                   CentOS-6 - Base                                         6,381
  9. cloudera-cdh4          Cloudera's Distribution for Hadoop, Version 4              97
  10. extras                 CentOS-6 - Extras                                          12
  11. updates                CentOS-6 - Updates                                        805
  12. repolist: 7,295
复制代码

二、创建自己的yum软件源(以Cloudera Hadoop的安装为例)
自定义软件源,给不能联网或者网络不畅的计算机安装软件提供了便利,使得待安装软件的主机可以使用本地的软件源完成安装。下面讲述如何创建本地包软件源,并指示本地主机直接使用。简要概括起来如下:将下载的RPM包放到本地主机的某一个目录下,接着完成创createrepo(创建软件源的工作),然后在网站上发布这一软件源。
1、下载Cloudera Manager安装文件
Cloudera Manager的可以从如下网址获得:
这里选择Cloudera Manager 最新版4.6.0.1
2、下载相关的CM安装所需要的RPM包
下载网址为:
下载全部的7个rmp包,如下图所示:
6.png
3、创建软件源
将下载好的rpm文件拷贝到制定目录,如:/home/admin/RPMS中

  1. [root@lemon RPMS]# ls
  2. cloudera-manager-agent-4.5.2-1.cm452.p0.327.x86_64.rpm
  3. cloudera-manager-daemons-4.5.2-1.cm452.p0.327.x86_64.rpm
  4. cloudera-manager-parcel-4.5.2-4.5.2-1.cm452.p0.327.x86_64.rpm
  5. cloudera-manager-server-4.5.2-1.cm452.p0.327.x86_64.rpm
  6. cloudera-manager-server-db-4.5.2-1.cm452.p0.327.x86_64.rpm
  7. enterprise-debuginfo-4.5.2-1.cm452.p0.327.x86_64.rpm
  8. jdk-6u31-linux-amd64.rpm
复制代码

创建软件源的主机没有安装createrepo,可以通过shell命令yum install createrepo安装。
当在包含文件的目录下运行如下创建命令:

  1. [root@lemon RPMS]# createrepo .
复制代码

程序也会创建一个repodata目录,该目录包含一些描述软件源的xml文件。如下所示:
  1. [root@lemon RPMS]# createrepo .
  2. Spawning worker 0 with 7 pkgs
  3. Workers Finished
  4. Gathering worker results
  5. Saving Primary metadata
  6. Saving file lists metadata
  7. Saving other metadata
  8. Generating sqlite DBs
  9. Sqlite DBs complete
  10. [root@lemon RPMS]# ls
  11. cloudera-manager-agent-4.5.2-1.cm452.p0.327.x86_64.rpm
  12. cloudera-manager-daemons-4.5.2-1.cm452.p0.327.x86_64.rpm
  13. cloudera-manager-parcel-4.5.2-4.5.2-1.cm452.p0.327.x86_64.rpm
  14. cloudera-manager-server-4.5.2-1.cm452.p0.327.x86_64.rpm
  15. cloudera-manager-server-db-4.5.2-1.cm452.p0.327.x86_64.rpm
  16. enterprise-debuginfo-4.5.2-1.cm452.p0.327.x86_64.rpm
  17. jdk-6u31-linux-amd64.rpm
  18. repodata
  19. [root@lemon RPMS]# cd repodata/
  20. [root@lemon repodata]# lsother.xml.gz
  21. other.sqlite.bz2
  22. filelists.sqlite.bz2
  23. primary.xml.gz
  24. filelists.xml.gz
  25. primary.sqlite.bz2
  26. repomd.xml
复制代码
此命令之后,RPM包就会加入到本地的软件源中。



4、安装Apache httpd web服务器
如果你已经安装了一个web服务器,可以略过此步,如果未安装可以通过如下shell命令安装

  1. [root@lemon ~]$ yum install httpd
复制代码

安装完毕后,启动httpd服务
  1. [root@lemon ~]$ service httpd start
复制代码

5、发布软件源文件
将文件复制/移动到WEB服务器的根目录下,Linux下面默认是/var/www/html目录,

  1. [root@lemon ~]$ mv /home/admin/RPMS /var/www/html
  2. [root@lemon ~]$ chmod -R ugo+rx /var/www/html/RPMS
复制代码

并更改文件权限,使用户、同组、其他组都可以读/执行文件。
访问http://<hostname>:80/RPMS测试文件首页是否正常显示各文件的索引,通常要关闭selinux(重启生效),该yum软件源才能访问。
如果不能访问,出现403错误(在实体机上常见),即you don't have permission to access / on this server(Apache Server权限访问问题),则需要在/etc/httpd/httpd.conf中添加如下配置:

  1. <Directory "/var/www/icons">
  2.     Options Indexes MultiViews FollowSymLinks
  3.     AllowOverride None
  4.     Order allow,deny
  5.     Allow from all
  6. </Directory>
  7. Alias /CDH4-RPMS/ "/var/www/html/CDH4-RPMS/"
  8. <Directory "/var/wwww/html/CDH4-RPMS">
  9. Options Indexes MultiViews FollowSymLinks
  10. AllowOverride None
  11. Order allow,deny
  12.   Allow from all
  13. </Directory>
  14. Alias /CM4-RPMS/ "/var/www/html/CM4-RPMS/"
  15. <Directory "/var/www/html/CM4-RPMS">
  16. Options Indexes MultiViews FollowSymLinks
  17. AllowOverride None
  18. Order allow,deny
  19.   Allow from all
  20. </Directory>
  21. Alias /IMPALA-RPMS/ "/var/www/html/IMPALA-RPMS/"
  22. <Directory "/var/www/html/IMPALA-RPMS">
  23. Options Indexes MultiViews FollowSymLinks
  24. AllowOverride None
  25. Order allow,deny
  26.   Allow from all
  27. </Directory>
复制代码

6、更改客户端配置,使其能够找到该软件源
在客户端新建如下格式的文件,内容如下所示:

  1. [myrepo]
  2. name=myrepo
  3. baseurl=http://hostname/RPMS
  4. enabled=1
  5. gpgcheck=0
复制代码

主机名是刚才所建立的软件源的主机名。将文件命名为myrepo.repo,并将文件放到/etc/yum.repos.d目录下,即最终结果为/etc/yum.repos.d/myrepo.repo
这里的客户端指的是使用本地源的主机,(即待安装的不能联网的哪些主机)。
注意:/etc/yum.repos.d目录下仅仅保留自己创建的本地库,否则其他的库因为不能联网,会报错的,使得安装退出。本例中,仅仅保留myrepo.repo。
在CM的集群配置页面,设定好本地源后,会有相应的解析,找到本地的源。其中cloudera-manager.repo
cloudera-cdh4.repo、cloudera-impala.repo解析后新建的,原来自己配的源的名字分别是cm4repo.repo、cdh4repo.repo、impalarepo.repo(实际应用中发现,最好将名字命名为cloudera-manager.repo、cloudera-cdh4.repo、cloudera-impala.repo, 否则会可能出现无法解析错误,即cloudera-manager-installer-bin还是会向cloudera的官网去找)。
解析后的内容如下:

  1. [root@lemon yum.repos.d]# cat cloudera-cdh4.repo
  2. [cloudera-cdh4]
  3. name = Cloudera CDH, Version (Custom)
  4. baseurl = http://192.168.2.171/CDH4-RPMS
  5. gpgcheck = 0
  6. [root@lemon yum.repos.d]# cat cloudera-impala.repo
  7. [cloudera-impala]
  8. name = Impala, Version (Custom)
  9. baseurl = http://192.168.2.171/impala
  10. gpgcheck = 0
  11. [root@lemon yum.repos.d]# cat cloudera-manager.repo
  12. [cloudera-manager]
  13. name = Cloudera Manager, Version 4.6.0
  14. baseurl = http://192.168.2.171/RPMS
  15. gpgcheck = 0
复制代码

安装的时候也可能会出现如下错误:
  1. Resolving Dependencies
  2. --> Running transaction check
  3. ---> Package cloudera-manager-server-db.x86_64 0:4.6.0-1.cm460.p0.140 will be installed
  4. --> Processing Dependency: postgresql-server >= 8.0 for package: cloudera-manager-server-db-4.6.0-1.cm460.p0.140.x86_64
  5. --> Finished Dependency Resolution
  6. Error: Package: cloudera-manager-server-db-4.6.0-1.cm460.p0.140.x86_64 (cm4repo)
  7.            Requires: postgresql-server >= 8.0
  8. You could try using --skip-broken to work around the problem
  9. You could try running: rpm -Va --nofiles --nodigest
复制代码

所以,这个时候要安装postgresql-server8.4 或者是9.0(要求8.0及其以上),这个安装比较麻烦,需要解决各种依赖库。
postgresql说明:
postgresql包含许多不同的包,包括第三方类库,通常安装最重要的包即可(能满足大部分应用需求)。这些包如下:
  • postgresql - 客户端类库及二进制文件
  • postgresql-server - 核心的数据库服务器
  • postgresql-contrib - 附加的供应组件
  • postgresql-devel - 用户C语言开发的类库和头文件
  • pgadmin3 - 数据库图像化管理工具第三版
9.0版本的rpm包具体下载地址为:
备注:研究发现缺少包这些问题是由虚拟机造成的,虚拟机安装的时候是默认安装,省去了里面很大一部分的包,比如虚拟机安装的时候不带jdk、postgresql数据库、mysql数据库,而这些都是在实体机安装的时候所没有的问题,所以实践很重要!在实体机下面缺少postgresql数据库所造成的问题根本就不存在!

7、使用本地类库安装CM
CM安装必须通过package方式,而CDH、Impala可以通过package、parcel方式安装。
安装程序默认从网络下载程序包安装,如果你已经配置好了本地软件源,并将本机(客户端)做了识别配置,
只需要在安装的时候添加参数(--skip_repo_package=1),shell命令如下:

  1. $ sudo ./cloudera-manager-installer.bin --skip_repo_package=1
复制代码




备注:CM包下载地址:http://archive.cloudera.com/cm4/

    CDH包下载地址:http://archive.cloudera.com/cdh4/

    IMPALA包下载地址:http://archive.cloudera.com/impala/

另外下载时候要注意,如果X86_64同级目录还有noarch目录,且里面也有文件的时候也要一并下载,不然使用本地软件源的时候提示部分文件找不到。


详细安装步骤如下:



Cloudera Manager and CDH安装及配置
Cloudera Manager需求:

磁盘空间,最小满足:

------------系统/var分区下有5GB

------------系统/usr分区有500MB

------------系统/opt下面最好多配置点

多数情况下RAM 4GB是比较合适的,如果装了Oracle数据库,就是必须的了。没有Oracle数据库且节点在100个以下的,也是足够的。

通常说来,不推荐使用虚拟机和安装了双系统的主机,这种情况通常导致内存/硬盘不足,导致主机出现状态不良。


1、删除各个主机上自带的JDK

 查找安装的JDK命令
  1. rpm -qa |grep gcj
  2. rpm -qa |grep jdk
  3. rpm -qa |grep java
复制代码

删除安装的JDK相关的命令,例如:
  1. yum -y remove jdk-1.6.0_31-fcs.x86_64
复制代码

2、配置各个主机上的/etc/hosts

  1. 192.168.1.101   mater
  2. 192.168.1.102   slave1
  3. 192.168.1.103   slave2
复制代码

注意:还要在每个主机上配置好主机 ip localhost 这一项。
3、设置或者关闭防火墙
设置:如果考虑主机的安全性,仅允许Cloudera Manager 使用的自由端口、SSH 22端口等重要的端口通过。
Coudera Manager及CDH的自由端口如下所示:

  1. -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
  2. -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
  3. # free ports for Kerberos
  4. -A INPUT -m state --state NEW -m tcp -p tcp --dport 88 -j ACCEPT
  5. -A INPUT -m state --state NEW -m udp -p udp --dport 88 -j ACCEPT
  6. # free ports for CDH4
  7. -A INPUT -m state --state NEW -m tcp -p tcp --dport 50010 -j ACCEPT
  8. -A INPUT -m state --state NEW -m tcp -p tcp --dport 1004 -j ACCEPT
  9. -A INPUT -m state --state NEW -m tcp -p tcp --dport 50075 -j ACCEPT
  10. -A INPUT -m state --state NEW -m tcp -p tcp --dport 1006 -j ACCEPT
  11. -A INPUT -m state --state NEW -m tcp -p tcp --dport 50020 -j ACCEPT
  12. -A INPUT -m state --state NEW -m tcp -p tcp --dport 8020 -j ACCEPT
  13. -A INPUT -m state --state NEW -m tcp -p tcp --dport 50070 -j ACCEPT
  14. -A INPUT -m state --state NEW -m tcp -p tcp --dport 50470 -j ACCEPT
  15. -A INPUT -m state --state NEW -m tcp -p tcp --dport 50090 -j ACCEPT
  16. -A INPUT -m state --state NEW -m tcp -p tcp --dport 50495 -j ACCEPT
  17. -A INPUT -m state --state NEW -m tcp -p tcp --dport 8021 -j ACCEPT
  18. -A INPUT -m state --state NEW -m tcp -p tcp --dport 50030 -j ACCEPT
  19. -A INPUT -m state --state NEW -m tcp -p tcp --dport 9290 -j ACCEPT
  20. -A INPUT -m state --state NEW -m tcp -p tcp --dport 50060 -j ACCEPT
  21. -A INPUT -m state --state NEW -m tcp -p tcp --dport 0 -j ACCEPT
  22. -A INPUT -m state --state NEW -m tcp -p tcp --dport 8032 -j ACCEPT
  23. -A INPUT -m state --state NEW -m tcp -p tcp --dport 8030 -j ACCEPT
  24. -A INPUT -m state --state NEW -m tcp -p tcp --dport 8031 -j ACCEPT
  25. -A INPUT -m state --state NEW -m tcp -p tcp --dport 8033 -j ACCEPT
  26. -A INPUT -m state --state NEW -m tcp -p tcp --dport 8088 -j ACCEPT
  27. -A INPUT -m state --state NEW -m tcp -p tcp --dport 8040 -j ACCEPT
  28. -A INPUT -m state --state NEW -m tcp -p tcp --dport 8042 -j ACCEPT
  29. -A INPUT -m state --state NEW -m tcp -p tcp --dport 8041 -j ACCEPT
  30. -A INPUT -m state --state NEW -m tcp -p tcp --dport 10020 -j ACCEPT
  31. -A INPUT -m state --state NEW -m tcp -p tcp --dport 19888 -j ACCEPT
  32. -A INPUT -m state --state NEW -m tcp -p tcp --dport 60000 -j ACCEPT
  33. -A INPUT -m state --state NEW -m tcp -p tcp --dport 60010 -j ACCEPT
  34. -A INPUT -m state --state NEW -m tcp -p tcp --dport 60020 -j ACCEPT
  35. -A INPUT -m state --state NEW -m tcp -p tcp --dport 60030 -j ACCEPT
  36. -A INPUT -m state --state NEW -m tcp -p tcp --dport 2888 -j ACCEPT
  37. -A INPUT -m state --state NEW -m tcp -p tcp --dport 3888 -j ACCEPT
  38. -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
  39. -A INPUT -m state --state NEW -m tcp -p tcp --dport 9090 -j ACCEPT
  40. -A INPUT -m state --state NEW -m tcp -p tcp --dport 9083 -j ACCEPT
  41. -A INPUT -m state --state NEW -m tcp -p tcp --dport 10000 -j ACCEPT
  42. -A INPUT -m state --state NEW -m tcp -p tcp --dport 16000 -j ACCEPT
  43. -A INPUT -m state --state NEW -m tcp -p tcp --dport 2181 -j ACCEPT
  44. -A INPUT -m state --state NEW -m tcp -p tcp --dport 2888 -j ACCEPT
  45. -A INPUT -m state --state NEW -m tcp -p tcp --dport 3888 -j ACCEPT
  46. -A INPUT -m state --state NEW -m tcp -p tcp --dport 3181 -j ACCEPT
  47. -A INPUT -m state --state NEW -m tcp -p tcp --dport 4181 -j ACCEPT
  48. -A INPUT -m state --state NEW -m tcp -p tcp --dport 8019 -j ACCEPT
  49. -A INPUT -m state --state NEW -m tcp -p tcp --dport 8888 -j ACCEPT
  50. -A INPUT -m state --state NEW -m tcp -p tcp --dport 8002 -j ACCEPT
  51. -A INPUT -m state --state NEW -m tcp -p tcp --dport 8003 -j ACCEPT
  52. -A INPUT -m state --state NEW -m tcp -p tcp --dport 11000 -j ACCEPT
  53. -A INPUT -m state --state NEW -m tcp -p tcp --dport 11001 -j ACCEPT
  54. # free ports for CM4
  55. -A INPUT -m state --state NEW -m tcp -p tcp --dport 7180 -j ACCEPT
  56. -A INPUT -m state --state NEW -m tcp -p tcp --dport 7183 -j ACCEPT
  57. -A INPUT -m state --state NEW -m tcp -p tcp --dport 7182 -j ACCEPT
  58. -A INPUT -m state --state NEW -m tcp -p tcp --dport 7432 -j ACCEPT
  59. -A INPUT -m state --state NEW -m tcp -p tcp --dport 9000 -j ACCEPT
  60. -A INPUT -m state --state NEW -m tcp -p tcp --dport 9001 -j ACCEPT
  61. -A INPUT -m state --state NEW -m tcp -p tcp --dport 22000 -j ACCEPT
  62. -A INPUT -m state --state NEW -m tcp -p tcp --dport 21000 -j ACCEPT
  63. -A INPUT -m state --state NEW -m tcp -p tcp --dport 25000 -j ACCEPT
  64. -A INPUT -m state --state NEW -m tcp -p tcp --dport 23000 -j ACCEPT
  65. -A INPUT -m state --state NEW -m tcp -p tcp --dport 25010 -j ACCEPT
  66. -A INPUT -m state --state NEW -m tcp -p tcp --dport 24000 -j ACCEPT
复制代码

一般是将其加入到iptables中,当然也可以选择关闭。

关闭防火墙:

在root下执行下面命令,可以临时关闭防火墙


  1. service iptables stop
复制代码
在root下执行下面命令,可以永久关闭防火墙(即,每次开机都会关闭),但需要重启生效。
  1. chkconfig iptables off
复制代码

4、关闭SELinux:


如果需要永久关闭,编辑/etc/selinux/config ,设置SELINUX=disabled
,然后完成安装。如未关闭,则会出现如下错误:


1.png


如果安装过程中,由于某种原因中断,再次安装的时候需要进行清理。

图形操作可以省略

5、更改Cloudera-manager-installer.bin权限,使其可执行

  1. $ chmod u+x cloudera-manager-installer.bin
复制代码
  1. [        DISCUZ_CODE_43        ]nbsp; ./cloudera-manager-installer.bin
复制代码



接着,接受许可协议,按Enter和Next,
安装界面如下所示:
2.png

等待安装完成即可,由于下载的文件较大,网络不好的情况下会出现静止很久的情况,所以要耐心等待。如果一直停留在20%、40%、70%,过来好久都没有变化,这时候需要用Ctrl+C中断安装,执行清理后,重新执行安装命令。




启动 Cloudera Manager Admin 控制台
通过Cloudera Manager Admin控制台,可以配置、管理、监控集群上的Hadoop,WEB端的URL地址是:http://myhost.example.com:7180,myhost.example.com是你安装Cloudera-Manager-installer.bin的主机域名,当然用IP也是可以的。例如我的WEB端URL地址就是:http://192.168.1.101:7180
通常Cloudera Manager Admin控制台启动不起来有以下可能:
service cloudera-scm-server-db 是否启动
service cloudera-scm-server 是否启动
service httpd 是否启动

3、使用Cloudera Manager自动安装CDH和配置
  注意:扫描IP主机找不到,通常是由于防火墙或者是SELinux的问题
安装可以联网安装,可以创建自己的yum库,然后通过该yum库来安装。
本地yum库的搭建,请参考:
选择从parcel安装,分布式的解压的默认存储在/opt/cloudera/下面。

图1-1

3.png

图1-2

4.png


图2:
5.png


图3(暂时没有,主机验证阶段):

图4:
6.jpg


图5:
7.jpg


图6:

8.jpg

图7:

9.jpg








欢迎加入about云群425860289432264021 ,云计算爱好者群,关注about云腾讯认证空间

已有(2)人评论

跳转到指定楼层
landylee 发表于 2014-9-30 00:01:25
相当有借鉴价值。。。。。
回复

使用道具 举报

sstutu 发表于 2014-9-30 17:37:50
landylee 发表于 2014-9-30 00:01
相当有借鉴价值。。。。。
更详细可参考

Cloudera Manager5及CDH5在线(cloudera-manager-installer.bin)安装高可靠文档
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条