操作系统:CentOS 6.5
Cloudera Manager 版本:4.8.1
CDH版本:4.5.0
各机器准备工作:
yum -y groupinstall "Development tools"yum -y installwget
Cloudera-manager压缩包地址:
CDH 下载地址:
IMPALA 下载地址:
Cloudera Search(SOLR)下载地址:
官方安装参考
官网介绍的安装方式有三种:
我们选择了第三种方法。
理由是第一种方法必须要求所有机器都能连网,而且外国网站不太稳定。一旦失败,重装非常痛苦。
第二种方法还没仔细研究,看上去要下载很多包。
第三种方法对系统侵入性最小,最大优点可实现全离线安装,而且重装什么的都非常方便。后期的集群统一包升级也非常好。
准备工作
以下所有操作都以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,再往上就不行了。参考 )
从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 。
官网上说了很多,总结起来三句话:
1) 安装一个 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 (重启后永久生效)