共计 9063 个字符,预计需要花费 23 分钟才能阅读完成。
系统环境
操作系统:CentOS 6.5
Cloudera Manager 版本:4.8.1
CDH 版本:4.5.0
各机器准备工作:
yum -y groupinstall "Development tools"yum -y installwget
Cloudera-manager 压缩包地址:http://archive.cloudera.com/cm4/cm/4/cloudera-manager-el6-cm4.8.1_x86_64.tar.gz
CDH 下载地址:http://archive.cloudera.com/cdh4/parcels/
IMPALA 下载地址:http://archive.cloudera.com/impala/parcels/
Cloudera Search(SOLR) 下载地址: http://archive.cloudera.com/search/parcels/latest/
官方安装参考
http://www.cloudera.com/content/cloudera-content/cloudera-docs/CM4Ent/latest/Cloudera-Manager-Installation-Guide/cmig_install_path_C.html
官网介绍的安装方式有三种:
我们选择了第三种方法。
理由是第一种方法必须要求所有机器都能连网,而且外国网站不太稳定。一旦失败,重装非常痛苦。
第二种方法还没仔细研究,看上去要下载很多包。
第三种方法对系统侵入性最小, 最大优点可实现全离线安装,而且重装什么的都非常方便。后期的集群统一包升级也非常好。
准备工作
以下所有操作都以 root 进行。
0 修改主机名
修改 /etc/sysconfig/network 文件
NETWORKING=yes
HOSTNAME=yc01
重启后生效:service network restart
修改 /etc/hosts 文件,类似
192.168.1.191 yc01
192.168.1.192 yc02
192.168.1.193 yc03
192.168.1.194 yc04
192.168.1.195 yc05
1 安装 salt (可忽略)
略。
2 打通 ssh
所有机器,使用 ssh-keygen -t rsa 一路按回车就行了。
刚才都作甚了呢?主要是生成 ssh 的密钥和密钥的存放路径。在 ~/.ssh 下。
打开~/.ssh 下面至少有两个文件
id_rsa,私钥
id_rsa.pub,公钥
在主结点上:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
scp 文件到其他机器:
scp ~/.ssh/authorized_keys root@yc02:~/.ssh/
现在登陆到其他机器就不用密码了。
3 安装 java
由于 CDH4 支持 JAVA7,考虑到 CDH5 只支持 JAVA7,果断上。(后面的 Mysql 也用了最新的 5.6.16,后来发现悲剧了,不知道是哪个原因,于是 JDK 又改成了官方推荐版,还是不行,又把 Mysql 回退到 5.1.X 版本,最终可以了。个人猜测 JDK 还是可以用 7 的,Mysql 只能用 5.5,再往上就不行了。参考 http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/latest/CDH4-Requirements-and-Supported-Versions/cdhrsv_topic_2.html)
从 Oracle 官网下载解压 JDK。tar zxvf jdk-7u51-linux-x64.gz 放到 /opt/java 下。
以前好像在哪看到过说,CDH 需要一个 /usr/java/default 的软链,才会识别。以防万一,建了一个,至少这样也更容易管理:
mkdir -p /usr/java ; cd /usr/java ;
ln -s /opt/java/jdk1.7.0_51 latest ; ln -s latest default
最后 JAVA 添加环境变量
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
使配置生效
source /etc/profile
4 安装 Mysql 数据库 (安装过程后来直接跳过了,直接 yum -y install mysql-server 再建需要的数据库)
Cloudera Manager 自身的需要数据库,它现在支持 Mysql、PostgreSQL 和 Oracle,本人没用过 PostgreSQL ,Oracle 兴师动众,果断上 Mysql。
Installing and Configuring a MySQL Database
官网上说了很多,总结起来三句话:
1) 安装一个 Mysql
下载地址 http://dev.mysql.com/downloads/mysql/
下载了客户端和服务端
rpm -ivh MySQL-server-5.6.16-1.el6.x86_64.rpm
rpm -ivh MySQL-client-5.6.16-1.el6.x86_64.rpm
安装 server 是会提示 生成 root 的随机码。
SET PASSWORD = PASSWORD(‘ycmedia_2014’);
默认 mysql 不会生成 /etc/my.cnf 文件,cp /usr/my.cnf /etc/my.cnf
2) 配置 MySql 自身的一些参数,和 CDH 没任何关系。只着重强调了一下 max_connections 的值。建议是 数据库数 *100+50。大集群(50 台以上)建议必须分开放。
过程: vi /etc/my.cnf , 修改哪些参数,参考上面那个链接。只为一般性目的的可直接跳过此步骤。
3) 建数据库,授权。需要哪些库呢,免费版:amon、hmon、hive、smon、scm(Cloudera Manager 自身,我自己命名的)
这些库的名字其实是可以自定义的。其它都是官网示例的名字,就这样吧。保持一致。只有最后一个库是我自己命名的。
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database smon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hmon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
给用户授权,类似如下:
grant all on *.* to root@”%” Identified by “123456”;
5 关闭防火墙 和 SELinux
关闭防火墙:
service iptables stop(临时关闭)
chkconfig iptables off(重启后生效)
关闭 SELINUX:
setenforce 0(临时生效)
修改 /etc/selinux/config 下的 SELINUX=disabled(重启后永久生效)
正式开工
1 安装 Cloudera Manager Server 和 Agents
解压压缩包:
tar xzf /opt/package/cloudera-manager*.tar.gz -C /opt/; mv /opt/cm-4.8.1 /opt/cloudera-manager-4.8.1
添加 cloudera-scm 用户
useradd –system –home=/opt/cloudera-manager-4.8.1/run/cloudera-scm-server –no-create-home –shell=/bin/false –comment “Cloudera SCM User” cloudera-scm
为了方便,下面称 /opt/cloudera-manager-4.8.1 为 <tarball root>
修改 <tarball root>/etc/cloudera-scm-agent/config.ini 下面的 server_port 和 server_host , 把 server_port 改成 ClouderaManager 运行的主机名或 ip, 默认 server_port 端口是 7182
Cloudera Manager 会在下面目录保存一些玩意。
2 为 Cloudera Manager 建立数据库
建立数据库前要下载 jdbc 驱动,放到 <tarball root>/share/cmf/lib/ 下。
生成数据库
<tarball root>/share/cmf/schema/scm_prepare_database.sh mysql scm -hlocalhost -uroot -p123456 --scm-host localhost scm scm scm
格式是: scm_prepare_database.sh 数据库类型 数据库 服务器 用户名 密码 –scm-host Cloudera_Manager_Server 所在的机器 …….
后面那三个不知道代表什么,直接照抄官网的了。详细说明:
3 开启 Cloudera Manager Server 端
在你上面安装的那台机器上开启 Server 端:
<tarball root>/etc/init.d/cloudera-scm-server start
设置成开机启动:
cp <tarball root>/etc/init.d/cloudera-scm-server /etc/init.d/cloudera-scm-server
chkconfig cloudera-scm-server on
4 开启 Cloudera Manager Agents 端
先 SCP <tarball root> 到所有机器上,然后在每台机器上开启 Agents 端:
sudo <tarball root>/etc/init.d/cloudera-scm-agent start
设置开机启动:
cp <tarball root>/etc/init.d/cloudera-scm-agent /etc/init.d/cloudera-scm-agent
chkconfig cloudera-scm-agent on
5 启动 Cloudera Manager 管理控制台
地址类似 http://example.com:7180/ , 默认端口是 7180,如果上面没改的话。
用户名密码都是 admin
至此:Cloudera Manager 安装完毕。
系统环境
操作系统:CentOS 6.5
Cloudera Manager 版本:4.8.1
CDH 版本:4.5.0
各机器准备工作:
yum -y groupinstall "Development tools"yum -y installwget
Cloudera-manager 压缩包地址:http://archive.cloudera.com/cm4/cm/4/cloudera-manager-el6-cm4.8.1_x86_64.tar.gz
CDH 下载地址:http://archive.cloudera.com/cdh4/parcels/
IMPALA 下载地址:http://archive.cloudera.com/impala/parcels/
Cloudera Search(SOLR) 下载地址: http://archive.cloudera.com/search/parcels/latest/
官方安装参考
http://www.cloudera.com/content/cloudera-content/cloudera-docs/CM4Ent/latest/Cloudera-Manager-Installation-Guide/cmig_install_path_C.html
官网介绍的安装方式有三种:
我们选择了第三种方法。
理由是第一种方法必须要求所有机器都能连网,而且外国网站不太稳定。一旦失败,重装非常痛苦。
第二种方法还没仔细研究,看上去要下载很多包。
第三种方法对系统侵入性最小, 最大优点可实现全离线安装,而且重装什么的都非常方便。后期的集群统一包升级也非常好。
准备工作
以下所有操作都以 root 进行。
0 修改主机名
修改 /etc/sysconfig/network 文件
NETWORKING=yes
HOSTNAME=yc01
重启后生效:service network restart
修改 /etc/hosts 文件,类似
192.168.1.191 yc01
192.168.1.192 yc02
192.168.1.193 yc03
192.168.1.194 yc04
192.168.1.195 yc05
1 安装 salt (可忽略)
略。
2 打通 ssh
所有机器,使用 ssh-keygen -t rsa 一路按回车就行了。
刚才都作甚了呢?主要是生成 ssh 的密钥和密钥的存放路径。在 ~/.ssh 下。
打开~/.ssh 下面至少有两个文件
id_rsa,私钥
id_rsa.pub,公钥
在主结点上:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
scp 文件到其他机器:
scp ~/.ssh/authorized_keys root@yc02:~/.ssh/
现在登陆到其他机器就不用密码了。
3 安装 java
由于 CDH4 支持 JAVA7,考虑到 CDH5 只支持 JAVA7,果断上。(后面的 Mysql 也用了最新的 5.6.16,后来发现悲剧了,不知道是哪个原因,于是 JDK 又改成了官方推荐版,还是不行,又把 Mysql 回退到 5.1.X 版本,最终可以了。个人猜测 JDK 还是可以用 7 的,Mysql 只能用 5.5,再往上就不行了。参考 http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/latest/CDH4-Requirements-and-Supported-Versions/cdhrsv_topic_2.html)
从 Oracle 官网下载解压 JDK。tar zxvf jdk-7u51-linux-x64.gz 放到 /opt/java 下。
以前好像在哪看到过说,CDH 需要一个 /usr/java/default 的软链,才会识别。以防万一,建了一个,至少这样也更容易管理:
mkdir -p /usr/java ; cd /usr/java ;
ln -s /opt/java/jdk1.7.0_51 latest ; ln -s latest default
最后 JAVA 添加环境变量
export JAVA_HOME=/usr/java/default
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
使配置生效
source /etc/profile
4 安装 Mysql 数据库 (安装过程后来直接跳过了,直接 yum -y install mysql-server 再建需要的数据库)
Cloudera Manager 自身的需要数据库,它现在支持 Mysql、PostgreSQL 和 Oracle,本人没用过 PostgreSQL ,Oracle 兴师动众,果断上 Mysql。
Installing and Configuring a MySQL Database
官网上说了很多,总结起来三句话:
1) 安装一个 Mysql
下载地址 http://dev.mysql.com/downloads/mysql/
下载了客户端和服务端
rpm -ivh MySQL-server-5.6.16-1.el6.x86_64.rpm
rpm -ivh MySQL-client-5.6.16-1.el6.x86_64.rpm
安装 server 是会提示 生成 root 的随机码。
SET PASSWORD = PASSWORD(‘ycmedia_2014’);
默认 mysql 不会生成 /etc/my.cnf 文件,cp /usr/my.cnf /etc/my.cnf
2) 配置 MySql 自身的一些参数,和 CDH 没任何关系。只着重强调了一下 max_connections 的值。建议是 数据库数 *100+50。大集群(50 台以上)建议必须分开放。
过程: vi /etc/my.cnf , 修改哪些参数,参考上面那个链接。只为一般性目的的可直接跳过此步骤。
3) 建数据库,授权。需要哪些库呢,免费版:amon、hmon、hive、smon、scm(Cloudera Manager 自身,我自己命名的)
这些库的名字其实是可以自定义的。其它都是官网示例的名字,就这样吧。保持一致。只有最后一个库是我自己命名的。
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database smon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hmon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
给用户授权,类似如下:
grant all on *.* to root@”%” Identified by “123456”;
5 关闭防火墙 和 SELinux
关闭防火墙:
service iptables stop(临时关闭)
chkconfig iptables off(重启后生效)
关闭 SELINUX:
setenforce 0(临时生效)
修改 /etc/selinux/config 下的 SELINUX=disabled(重启后永久生效)
6 准备 Parcels,用以安装 CDH
将前面下载的 CDH 和 IMPALA 放到 /opt/cloudera/parcel-repo 下,再生成 sha 文件,
sha 文件参照 http://archive.cloudera.com/cdh4/parcels/latest/manifest.json 里面,和每个文件是对应的。把 hash 值拿出来即可, 最简单当然是直接计算一下就 ok 了。
获取更多信息参阅:Using Parcels
7 开始从界面安装 CDH4
从界面登陆后,选择版本
可以注意到,CDH 以前的版本是有最大 50 个节点限制的,现在没有限制了。继续。
继续。
此处需要特别关注,我们明明有 N 台服务器的,现在只有一台,why ? 是因为我一开始在启动 Cloudera Manager Agents 时没有修改 server_host=localhost,
vi ./etc/cloudera-scm-agent/config.ini 改成 Cloudera Manager server 所在机器名。再重新启动 agent(在 <tarball root> 下 ./etc/init.d/cloudera-scm-agent restart)
现在所有机器都有了。点击继续。
我们选择 Parcels 方式,继续。会安装 cdh impala solr . 几分钟内应该就完成了。取决于你内网传输速度。
继续。
选择要安装的服务,特别注意,红框处【检查角色分配】,太不起眼啦!!!曾经没注意,有点郁闷。点击分配角色。分配好后,继续,当然后期还是可以改的。。
测试连接的时候必须成功才能继续,这个地方,有可能会出现,在本地 root + 密码 是可以登陆上 mysql 的,这里测试时却会失败。主要还是因为对于 root 的用户比较复杂。
因为你的 root 帐户本质上可能是下图这样的,这个地方我对 mysql 理解的也不深,大意应该就是本地用的虽然也是 root,那是实质上并非同一个用户。
不管三七二十一,统统授权了。
grant all on *.* to root@"yc01" Identified by "123456" ;
grant all on *.* to root@"localhost" Identified by "123456" ;
grant all on *.* to root@"127.0.0.1" Identified by "123456" ;
另外此处有个备注,可观注下。比如说对于某个 monitor, 在前面我们分配角色时,分到了某一台机器,那么数据库最好也是在同一台机器。
点击继续。
修改成合适自己的配置。继续之前做下面两个操作。因为下一步 HIVE 的安装会失败,要提前把 jdbc 包放到 hive 的各 lib 目录下。如
scp mysql-connector-java-5.1.28.jar root@yc02:/opt/cloudera/parcels/CDH-4.5.0-1.cdh4.5.0.p0.30/lib/hive/lib/
HUE 也可能失败,报错如下:
不知道是什么包,所以一开始直接这么搞了:yum -y install libxslt.so.1 发现还是不行。
是缺少下面这个包:
yum -y install libxml2
耐心等待所有启动成功。