官网介绍了三种安装方式,
A方式用于非生产环境自动安装,B是package安装,C是tar包安装
因为习惯等因素,我选择了使用tar包安装。现将安装过程中遇到的问题记录下来,也给有需要的人提供个参考。
具体的操作过程参考官方文档https://www.cloudera.com/docu...
以及以下几个参考文章:
http://www.cnblogs.com/jasond...
http://blog.csdn.net/a921122/...
注:文章中部分图片使用的是安装5.13.0版本时的图片,但是操作是一样的,请不要纠结这些细节。
大概的流程如下:
一、准备:
1、修改主机名,设置集群host
修改主机名,并使之生效
修改:vim etc/sysconfig/network
使之生效:source etc/sysconfig/network
统一设置集群host(修改集群中每个节点的hosts文件):vim /etc/hosts
2、时间同步
使用ntp服务,使集群中节点的时间一致。两种同步方式:
2.1、分别跟时间服务器进行时间同步。
2.2、主从模式:设置其中一台为master,对外时间同步,其他保持跟master时间同步。
如果条件允许,最好使用后者。
3、设置防火墙
网上的做法一般是关闭防火墙,实际应用中往往不能直接关掉。可设置防火墙规则,消除内网之间的隔离。具体使用哪种方式,根据自身情况决定。
3.1:关闭防火墙
即时生效,重启后会复原:`service iptables stop`
永久生效:`chkconfig iptables off`
3.2:设置防火墙规则,允许内网间访问。
修改:在/etc/sysconfig/iptables中加入`-A INPUT -s 192.168.1.0/24 -j ACCEPT` ,192.168.1.0/24更改为自己的网段/子网掩码位数。
重启防火墙:`service iptables restart`
4、设置集群免密登录
4.1 检测本地是否可以免密登录
执行:ssh localhost,如不需要输入密码,则可免密登录
4.2 创建登录的公钥和私钥
执行:`ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa`
公钥放在id_dsa.pub中,私钥放在id_dsa中
4.3 本地免密登录
将公钥追加到已认证信息中:`cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys`
4.4 跨主机免密登录
在host28上执行:`scp ~/.ssh/id_dsa.pub root@host29:~/.ssh/`, 输入host29的密码
在host29上执行:`cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys` 将公钥追加到已认证信息中
4.5 在所有节点上执行上述操作
4.6 失败记录:都设置好后还是不能免密登录。查看日志less /var/log/secure
失败原因:Authentication refused: bad ownership or modes for directory /root
查找问题,发现root文件夹的所有者和用户组改变了
执行命令:chown root.root /root/ 改回来就可以了
5、安装jdk
注意安装oracle jdk,非openjdk。
具体操作参考https://segmentfault.com/a/11...
二、安装cm
1、下载
去官网下载安装包,官网地址:https://www.cloudera.com/docu...
wget https://archive.cloudera.com/cm5/cm/5/cloudera-manager-el6-cm5.13.1_x86_64.tar.gz
2、解压并移动到安装目录
解压tar包:tar -zxvf cloudera-manager-el6-cm5.13.1_x86_64.tar.gz
解压后有cloudera和cm-5.13.1两个目录
移动这两个目录到安装目录下,如/opt: mv cloudera cm-5.13.1 /opt/
3、准备cdh安装包(共三个文件)
下载地址:http://archive.cloudera.com/c...
wget http://archive.cloudera.com/cdh5/parcels/latest/CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel
wget http://archive.cloudera.com/cdh5/parcels/latest/CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha1
wget http://archive.cloudera.com/cdh5/parcels/latest/manifest.json
把安装包放到/opt/cloudera/parcel-repo/目录下:`mv CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha manifest.json /opt/cloudera/parcel-repo/`
并修改CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha1名称为CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha,否则识别不到,选择CDH版本的时候看不到:`mv CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha1 CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha`
4、准备mysql connector
官网:https://dev.mysql.com/downloads/connector
下载:`wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.45.tar.gz`
解压:`tar -zxvf mysql-connector-java-5.1.45.tar.gz`
放到/usr/shara/java目录下(先查看目录是存在,不存在先创建目录):`cp mysql-connector-java-5.1.45-bin.jar /usr/share/java/mysql-connector-java.jar`
或者放到目录/opt/cm-5.13.1/share/cmf/lib/下。
前者安装hive的时候可以直接使用,后者会找不到,需要再执行一次命令:`cp /opt/cm-5.13.1/share/cmf/lib/mysql-connector-java-5.1.45-bin.jar /opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/hive/lib/`
5、配置agnent :vim /opt/cm-5.13.1/etc/cloudera-scm-agent/config.ini
server_host为cm server的主机名或ip
server_port为server的通讯端口,默认为7182
6、 复制agent到其他节点
scp -r /opt/cm-5.13.1 host30:/opt
7、在所有节点上创建用户cloudera-scm
useradd --system --home=/opt/cm-5.13.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
8、 设置数据库信息
8.1 在mysql上新建数据库:cmf(cloudera manage数据库)、hive(hive数据库)、amon(cloudera Acrivity Monitor使用)、rman(cloudera Reports Manager使用)
8.2 设置cmf连接信息:`/opt/cm-5.13.1/share/cmf/schema/scm_prepare_database.sh mysql -hhost29 --scm-host host28 cmf usrname password`
命令说明:/opt/cm-5.13.1/share/cmf/schema/scm_prepare_database.sh 数据库类型 -h数据库主机 --scm-host cm主机 数据库名称 用户名 密码
具体参数可参看官网[https://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_installing_configuring_dbs.html#concept_i2r_m3m_hn__section_qjj_pyp_bm][3]
8.3 查看配置文件,发现信息已写入:`vim cm-5.13.1/etc/cloudera-scm-server/db.properties`
9、启动
启动server: /opt/cm-5.13.1/etc/init.d/cloudera-scm-server start
启动agent: /opt/cm-5.13.1/etc/init.d/cloudera-scm-agent start
三、安装群集
1、 登录cm
在浏览器输入http://192.168.5.28:7180登录cm(ip替换为cm server主机ip,端口为server的http服务端口,默认为7180),用户名密码均为admin
2、 选择要安装的cm版本
选择免费或者试用版都可以,如果没有用到高级功能 ,试用版到期也没什么影响,可继续使用。
3、 群集安装
各个节点正常启动后,可以在当前管理的主机列表中看到对应的节点。选择你要使用的节点就可以了,基本上全选。
选择CDH版本这里会显示你放在/opt/cloudera/parcel-repo/下的parcel包,若未显示,则检查CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha1是否名称未改为CDH-5.13.1-1.cdh5.13.1.p0.2-el6.parcel.sha,修改之后重启server服务和agent服务。
这里第一个和第二个警告,按页面提示的设置方法设置即可,第三个警告是jdk版本不对,不能使用openjdk,需要oracle jdk。
每个节点上都设置一下:
执行:`echo 10 > /proc/sys/vm/swappiness`
并编辑文件sysctl.conf:`vim /etc/sysctl.conf`,添加或修改vm.swappiness = 0
执行:
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
并编辑文件rc.local :`vim /etc/rc.local`
若安装过程中中断,再次继续安装时,可能出现主机受管情况:
此时停止所有cm服务,删除cmf数据库,重新初始化cmf数据库即可。
删除数据库:进入mysql,执行drop database cmf
;
卸载挂载点:umount cm-5.13.1/run/cloudera-scm-agent/process
清除所欲节点的agent uuid信息:rm -rf cm-5.13.1/lib/cloudera-scm-agent/*
注意:一定要先卸载挂载点,否则会提示无法删除:rm: 无法删除"cm-5.13.1/run/cloudera-scm-agent/process": 设备或资源忙
继续操作,保持默认选项即可。
注意: 若修改了hdfs的存储文件夹,一定要确定文件夹已经存在,并确保访问权限。否侧hdfs会无法启动,并且报错文件夹不存在。
三、安装或使用过程中遇到的问题
1、No portmap or rpcbind service is running on this host. Please start portmap or rpcbind service before attempting to start the NFS Gateway role on this host.
在安装 NFS Gateway那个节点上安装rpcbind:
安装:`yum install rpcbind`
启动:`service rpcbind start`
在安装Hive Metastore Server服务的那台机器上操作:
cp /opt/cm-5.13.1/share/cmf/lib/mysql-connector-java-5.1.45-bin.jar /opt/cloudera/parcels/CDH-5.13.1-1.cdh5.13.1.p0.2/lib/hive/lib/