其他版本同理,自行处理
安装文件准备
CDH
下载地址: http://archive.cloudera.com/cdh5/parcels/latest/
下载操作系统对应的版本:
1.CDH-5.3.0-1.cdh5.3.0.p0.30-el6.parcel
2.CDH-5.3.0-1.cdh5.3.0.p0.30-el6.parcel.sha1
3.Manifest.json
Cloudera Manager
cm下载地址:http://archive-primary.cloudera.com/cm5/cm/5/
impala下载地址:http://archive-primary.cloudera.com/impala/parcels/
spark下载地址:http://archive-primary.cloudera.com/spark/parcels/
下载操作系统对应的版本:
1.cloudera-manager-el6-cm5.3.0_x86_64.tar.gz
Mysql
下载地址:http://dev.mysql.com/downloads/connector/j/
需要登录才可下载:
1.mysql-connector-java-5.1.34-bin.jar
系统环境准备
若无特殊需求将CDH安装在root用户下最佳。
所有配置完成后需重启集群所有机器。
配置Hosts
登录集群所有机器
执行命令:
vi /etc/hosts
将集群角色和IP写入,类似
192.168.60.3 master
127.0.0.1 master localhost
192.168.60.4 slave01
192.168.60.5 slave02
备注:
若出现域名/通信方面的错误可将127.0.0.1该行注释掉
打通SSH
登录Master机器
执行命令:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
chmod 600 $_
将authorized_keys scp到所有Slave节点上:如果从节点没.ssh目录则运行
此命令创建:ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
scp ~/.ssh/authorized_keys hadoop@slaves:~/.ssh/
备注:
若无法免密码登录,需登录至Slave节点并执行命令:
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
关闭IPv6
登录集群所有机器
执行命令:
vi /etc/modprobe.d/dist.conf
加入
alias net-pf-10 off
alias ipv6 off
执行命令:
vi /etc/sysconfig/network
加入
NETWORKING_IPV6=no
执行命令:
vi /etc/hosts
注释掉IPv6行
关闭SELINUX
登录集群所有机器
执行命令:
vi /etc/sysconfig/selinux
修改
SELINUX=disabled
关闭防火墙
登录集群所有机器
执行命令:
chkconfig --level 345 iptables off
打开句柄限制
登录集群所有机器
执行命令:
vi /etc/security/limits.conf
根据当前用户名,添加
hadoop soft nproc 20470
hadoop hard nproc 163840
hadoop soft nofile 10240
hadoop hard nofile 655360
hadoop soft stack 10240
执行命令:
vi /etc/pam.d/login
添加
session required pam_limits.so
安装JDK
登录集群所有机器
查看是否自带OpenJDK:
rpm -qa | grep java
卸载再带的JDK:
rpm -e --nodeps 包名
安装JDK:
rpm -i jdk-7u71-linux-x64.rpm
安装Mysql
登录Master机器
重置mysql密码:http://www.cnblogs.com/allenblogs/archive/2010/08/12/1798247.html
若可以联网,执行命令:
- 安装mysql 服务器端:
yum install mysql-server
yum install mysql-devel - 安装mysql客户端:
yum install mysql - 启动mysql服务:
service mysqld start或者/etc/init.d/mysqld start
停止:
service mysqld stop
重启:
service mysqld restart - 创建root管理员:
mysqladmin -u root password 123456
5.登陆
mysql -uroot -p123456
若无法联网,google如何安装(_)
添加为自启动:
chkconfig mysqld on
启动mysql:
service mysqld start
修改root密码:
mysqladmin -u root password '123456'
进入mysql:
mysql -uroot -p123456
创建数据库:
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hue default charset utf8 collate utf8_general_ci;
授权:
grant all privileges on . to 'root'@'主机名' identified by '123456' with grant option;
flush privileges;
NTP时间同步
登录Master机器
若Master机器可以访问互联网,先执行命令:
ntpdate -u 210.72.145.44
执行命令:
vi /etc/ntp.conf
添加并修改
server 127.127.1.0
fudge 127.127.1.0 stratum 8
#server 0.rhel.pool.ntp.org
#server 1.rhel.pool.ntp.org
#server 2.rhel.pool.ntp.org
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
启动NTP服务:
service ntpd start
add for wuguozhu
若键入:ntpdate ntp.sjtu.edu.cn
出现:17 Sep 10:46:22 ntpdate[25363]: the NTP socket is in use, exiting
则:service ntpd stop再键入ntpdate ntp.sjtu.edu.cn
登录所有Slave机器
执行命令:
ntpdate master
/sbin/hwclock –w server 192.168.1.135
restrict 192.168.1.135 nomodify notrap noquery
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
每小时向Master同步时间(根据具体需求自行设置间隔):
crontab -e
添加
0 */1 * * * /usr/sbin/ntpdate master
其它配置
Centos 6.5及以上版本不用执行本步骤(未验证)
登录集群所有机器
执行命令:
echo 0 > /proc/sys/vm/swappiness
执行命令:
vi ~/.bashrc
添加
echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag
Cloudera Manager安装
创建cloudera-scm用户
登录集群所有机器
执行命令:
useradd --system --home=/opt/cm-5.3.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
安装Cloudera Manager
登录Master机器
将cloudera-manager-el6-cm5.3.0_x86_64.tar.gz文件加压至/opt下,产生2个文件夹cloudera和cm-5.3.0。
添加mysql connector包
登录Master机器
将mysql-connector-java-5.1.34-bin.jar拷贝至/opt/cm-5.3.0/share/cmf/lib/和/opt/cloudera/parcels/CDH-5.3.0-1.cdh5.3.0.p0.30/lib/hive/lib/下。
初始化CM5的数据库数据库
登录Master机器
执行命令:
/opt/cm-5.3.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p123456 --scm-host localhost scm scm scm
修改Agent配置
登录Master机器
执行命令:
vi /opt/cm-5.3.0/etc/cloudera-scm-agent/config.ini
将server_host的值改成Master机器的名称
同步Agent到其他节点
登录Master机器
执行命令:
scp -r /opt/cm-5.3.0 root@slave[1-xx]:/opt/
准备Parcels
登录Master机器
将CDH-5.3.0-1.cdh5.3.0.p0.30-el6.parcel、CDH-5.3.0-1.cdh5.3.0.p0.30-el6.parcel.sha1和Manifest.json三个文件拷贝至/opt/cloudera/parcel-repo/文件夹下。
并将CDH-5.3.0-1.cdh5.3.0.p0.30-el6.parcel.sha1重命名为CDH-5.3.0-1.cdh5.3.0.p0.30-el6.parcel.sha。
启动Cloudera Manager
启动Cloudera Manager后等待1-3分钟,然后访问http://主节点IP:7180,若可以访问则表示安装成功。
登录Master机器
执行命令:
/opt/cm-5.3.0/etc/init.d/cloudera-scm-server start
登录集群所有机器
执行命令:
/opt/cm-5.3.0/etc/init.d/cloudera-scm-agent start
如果启动出现一下情况:
cloudera-scm-agent start
Starting cloudera-scm-agent: [FAILED]
则做一下操作:
mkdir /opt/cm-5.7.0/run/cloudera-scm-agent
chown -R cloudera-scm:cloudera-scm /opt/cm-5.7.0/run/cloudera-scm-agent
CDH安装
第一步
用户名密码皆为admin
第二步
勾选上需要安装的主机。
第三步
可以看到所下载并安装的CDH版本表示前面部署成功,否则需要在线下载。
第四步
前面配置无误则无须下载,否则表示前面配置有误。
分发可能需要一段时间,视集群大小而定(此时集群一定要保证Master可以免密码登录到其它机器上)。
第五步
检查集群的状况,可根据提示信息修改配置并重新检查。
第六步
选择需要安装的组件,可自定义安装。
第七步
给集群各个节点分配角色,目前所知道需要注意的地方是HBase Thrift Server不要为空,否则Hue无法访问HBase。
第八步
设置mysql连接。
注意:若无法连接mysql,可能是用户root 指定的master 的连接的密码为空,
需要更新密码,具体操作
1、登入mysql
2、Use mysql;
3、select Host,user,password from user;
4、update user set password='xxx' where Host='master' and user='root';
5、commit;
6、flush privileges;
第九步
后面的一路“继续”下去即可。安装所需时间较长,请耐心等待。
常用工具地址
Jobtracker
http://master:8088/cluster
Namenode
http://master:50070/dfshealth.jsp
Hue
http://master:8888/
Cloudera Manager
http://master:7180/
HBase
http://master:60010/master-status/
一些常见问题
1.运行Hadoop程序报错:org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="/user":hdfs:supergroup:drwxr-xr-x
——修改dfs.permissions为false,如下图所示。
2.访问Cloudera Manager出现“无法发出查询:对 Service Monitor 的请求超时”。
——一般是没有问题的,可能服务器较卡导致的,多刷新几次即可。
3.添加服务时如果遇到deploy client configuration failed
- make a link to /usr/java/default
mkdir -p /usr/java
ln -s YOUR_JAVA_HOME /usr/java/default - add sudo nopassword to cloudera-scm user
vim /etc/sudoers
cloudera-scm ALL=(ALL) NOPASSWD: ALL