官方共给出了3中安装方式:第一种方法必须要求所有机器都能连网,由于最近各种国外的网站被墙的厉害,我尝试了几次各种超时错误,巨耽误时间不说,一旦失败,重装非常痛苦。第二种方法下载很多包。第三种方法对系统侵入性最小,最大优点可实现全离线安装,而且重装什么的都非常方便。后期的集群统一包升级也非常好。这也是我之所以选择离线安装的原因。
包括MySQL数据库我均采用二进制安装包方式配置,且大部分步骤仅写成脚本模式,不做说明。
补充一句,如果测试安装,建议以root用户权限进行配置部署,另外cloudera的官方文档是我见过英文文档里写的最恶心的了。
一、前期准备
操作系统:3台CentOS6.5 最小化安装+development tools组包,其余组件通过yum安装。
cm版本:cloudera-manager-el6-cm5.9.2_x86_64.tar.gz
下载地址:http://archive.cloudera.com/cm5/cm/5/
1、所有服务器分别配置/etc/hosts文件:向其中添加以下3行
192.168.100.231 db01 192.168.100.232 db02 192.168.100.233 db03 |
2、所有服务器均创建安装用户:cloudera
groupadd cloudera useradd -g cloudera cloudera echo "dbking588" | passwd --stdin cloudera |
3、所有服务器为cloudera用户配置sudo权限
chmod u+w /etc/sudoers echo "cloudera ALL=(root)NOPASSWD:ALL" >> /etc/sudoers chmod u-w /etc/sudoers |
4、所有服务器关闭防火墙、禁用selinux
sed -i '/SELINUX=enforcing/d' /etc/selinux/config sed -i '/SELINUX=disabled/d' /etc/selinux/config echo "SELINUX=disabled" >> /etc/selinux/config |
sed -e 's/SELINUX=enforcing/SELINUX=disabled/d' /etc/selinux/config |
Service iptables stop Chkconfig iptables off |
5、所有服务器设置文件打开数量及最大进程数
cp /etc/security/limits.conf /etc/security/limits.conf.bak echo "* soft nproc 32000" >>/etc/security/limits.conf echo "* hard nproc 32000" >>/etc/security/limits.conf echo "* soft nofile 65535" >>/etc/security/limits.conf echo "* hard nofile 65535" >>/etc/security/limits.conf |
6、配置SSH无秘钥登录:至少在namenode和resourcemanager节点配置
ssh-keygen -t rsa ssh-copy-id db01 ssh-copy-id db02 ssh-copy-id db03 |
7、配置集群时间同步服务:通过ntp服务配置
ntp主节点配置: cp /etc/ntp.conf /etc/ntp.conf.bak cp /etc/sysconfig/ntpd /etc/sysconfig/ntpd.bak echo "restrict 192.168.100.0 mask 255.255.255.0 nomodify notrap" >> /etc/ntp.conf echo "SYNC_HWCLOCK=yes" >> /etc/sysconfig/ntpd service ntpd restart |
ntp客户端配置: #crontab -e 输入如下一行内容,保存退出: 0-59/10 * * * * /opt/scripts/sync_time.sh 上述脚本内容如下: # cat /opt/scripts/sync_time.sh /sbin/service ntpd stop /usr/sbin/ntpdate db01 /sbin/service ntpd start |
8、所有节点安装java软件并配置环境变量
$ sudo tar -zxvf jdk-7u67-linux-x64.tar.gz -C /opt/service/ |
export JAVA_HOME=/opt/service/jdk1.7.0_67 export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH |
alternatives --config java alternatives --install /usr/bin/java java /opt/java/jdk1.7.0_67/bin/java 3 alternatives --config java --如果不修改这里,可能在安装spark组件时报错。 |
9、选择一个节点用于安装mysql数据库
tar -zxvf mysql-5.6.24-linux-glibc2.5-x86_64.tar.gz -C /opt/ mv mysql-5.6.24-linux-glibc2.5-x86_64/ mysql5624 yum -y install libaio groupadd mysql useradd -g mysql mysql echo "dbking588" | passwd --stdin mysql mv /etc/my.cnf /etc/my.cnf.bak cp support-files/my-default.cnf /etc/my.cnf |
/etc/my.cnf添加如下内容: ---------------------------------------------------------------------------------------------------- basedir = /opt/mysql5624 datadir = /opt/mysql5624/data port = 3306 log-error=/opt/mysql5624/data/mysql.log pid-file=/opt/mysql5624/data/mysql.pid |
scripts/mysql_install_db --user=mysql chown -R mysql:mysql /opt/mysql5624/ cp support-files/mysql.server /etc/rc.d/init.d/mysql chkconfig --add mysql Service mysql start |
二、安装cm5.x
1、主节点解压cloudera-manager-el6-cm5.9.2_x86_64.tar.gz包到/opt目录下,记住不想修改配置,则必须解压到/opt目录:
$ sudo tar cloudera-manager-el6-cm5.9.2_x86_64.tar.gz -C /opt/ |
2、为cloudera manager 5.x初始化数据库:
cp mysql-connector-java-5.1.22-bin.jar /opt/cm-5.9.2/share/cmf/lib/ |
/opt/cm-5.9.2/share/cmf/schema/scm_prepare_database.sh mysql cm592 -hlocalhost -uroot -pmysql --scm-host localhost scm scm scm |
2、配置agent:修改/opt/cm-5.9.2/etc/cloudera-scm-agent/config.ini文件修改server_host为主节点主机名。
3、创建cloudera-scm用户:
sudo useradd --system --home=/opt/cm-5.9.2/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm |
4、同步agent到其他节点:
scp -r cm-5.9.2/ db02:/opt/ scp -r cm-5.9.2/ db03:/opt/ |
5、启动cloudera manager的server和agent服务(这里先不启动,在处理好parcels包后启动):
server在主节点启动,agent需要所有节点启动(建议此时不启动服务,在配置好parcels文件后启动,在“三、安装CDH5中3”处启动服务): $ /opt/cm-5.9.2/etc/init.d/cloudera-scm-server start $ /opt/cm-5.9.2/etc/init.d/cloudera-scm-agent start |
启动|关闭|重启cloudera服务方法: cloudera-scm-server start|stop|restart cloudera-scm-agent start|stop|restart |
这时,我们可以通过浏览器地址:http://db01:7180登录cm控制台,cm控制台初始用户名/密码为:admin/admin。
三、安装CDH5
1、下载parcels安装包:http://archive.cloudera.com/cdh5/parcels/5.9.2/
2、上传parcels文件到/opt/cloudera/parcel-repo目录下:
CDH-5.11.0-1.cdh5.9.2.p0.34-el6.parcel
CDH-5.11.0-1.cdh5.9.2.p0.34-el6.parcel.sha1
重命名CDH-5.11.0-1.cdh5.9.2.p0.34-el6.parcel.sha1文件为CDH-5.11.0-1.cdh5.9.2.p0.34-el6.parcel.sha,否则系统会重新下载CDH-5.11.0-1.cdh5.9.2.p0.34-el6.parcel文件。
3、重启cloudera server服务:
如果在配置好cm后启动了cloudera服务,此时可以重新启动cloudera服务,以确认cm可以识别parcels包: $ /opt/cm-5.9.2/etc/init.d/cloudera-scm-server restart $ /opt/cm-5.9.2/etc/init.d/cloudera-scm-agent restart |
4、运行浏览器安装向导:
添加服务组件:第一步安装zookeeper服务、第二步安装hdfs服务、第三步安装yarn服务,以后可以安装需要定制的服务(hive、hbase、spark、sqoop、hue、flume、oozie、storm等)。
解决上图中两个问题:
sysctl -w vm.swappiness=10
echo "vm.swappiness=10" >>/etc/sysctl.conf
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
然后加入启动脚本,使其开机自动执行。
之后可以选择安装各个服务组件。
注意:如果使用mysql数据库存储hive元数据,需要cp mysql驱动包到hive lib目录下:
# cp mysql-connector-java-5.1.22-bin.jar /opt/cloudera/parcels/CDH/lib/hive/lib/mysql-connector-java-5.1.22-bin.jar
********************************************************************************
* 更多交流机会,请添加“Hadoop/DBA架构支持”群:188521395 *
********************************************************************************