http://www.jianshu.com/p/57179e03795f
http://blog.csdn.net/jdplus/article/details/45920733
下载CDH
下载CM
http://archive.cloudera.com/cm5/
->cm->5->选择自己要下载的版本
下载parcels
http://archive.cloudera.com/cdh5/
->parcels->选择版本->下载 *.parcel + *.parcel.shal1 + mainfest.json
安装jdk
配置环境变量
http://www.linuxidc.com/Linux/2016-09/134941.htm
http://www.cnblogs.com/samcn/archive/2011/03/16/1986248.html
CDH 安装
1.安装操作系统
2.编辑用户名
vi /etc/sysconfig/network
编辑 hosts
vi /etc/hosts
172.16.1.140 cdh0
172.16.1.141 cdh1
172.16.1.142 cdh2
3.配置网络
vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:A5:F0:97
TYPE=Ethernet
UUID=bba6e950-82c4-4874-aca2-af94dc501018
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=172.16.1.142
NETMASK=255.255.0.0
GATEWAY=172.16.0.1
DNS1=114.114.114.114
DNS2=8.8.8.8
4.关闭 SELinux
vi /etc/sysconfig/selinux
SELIINUX=disabled
5.关闭防火墙
chkconfig iptables off 重启生效 centos7 systemctl disable firewalld.service
6.配置SSH免密登录
(注意:SSH免密登录是主从、从从任意两台主机间互相都是可以免密登录的,这里使用一种简单策略,将所有主机密钥添加到master,然后将master的key拷贝到所有主机,这样所有的主机都有集群所有的登录密钥【免密登录机制:如果我持有谁的公钥,我就允许谁免密登录进入我的系统】)
1)所有的主机(包括主从)都生成密钥
ssh-keygen -t rsa 回车三次生成密钥对(ls -a ./.ssh 可以看到生成后的内容)
2)所有主机的公钥拷贝到master
scp ./.ssh/id_rsa.pub root@172.16.1.141:/root/id_rsa.pub.s141 (其它主机类同)
3)所有的公钥追加到同一个自动认证文件内
cat ./id_rsa.pub.s142 >> ./.ssh/authorized_keys (其它类同)
4)将最终含有所有主机公钥的自动认证文件authorized_keys复制到其它所有的主机上
scp ./.ssh/authorized_keys root@172.16.1.141:/root/.ssh/authorized_keys (其它类同)
7.配置NTP(时间同步服务)
1)yum install ntp;配置开机启动:chkconfig ntpd on;检查是否设置成功:chkconfig --list ntpd 其中2-5为on状态就代表成功;(其它主机类同)
ntpdate -u [时间服务器IP或域名地址(如0.cn.pool.ntp.org)] 看一下是否能校时成功
启动 ntp服务
systemctl start ntpd
2)编辑配置 vi /etc/ntp.conf
# 中国这边最活跃的时间服务器 : http://www.pool.ntp.org/zone/cn
# prefer 指的意思是以该ntp服务器为主,见:http://blog.sina.com.cn/s/blog_6243051e0100q8ee.html
master 配置增加 server 0.cn.pool.ntp.org prefer
#增加NTP自身同步,不可用时用local时间提供给ntp客户端 见:http://weigang-gao.iteye.com/blog/2266919
server 127.127.1.0
fudge 127.127.1.0 stratum 8
ntp客户端(从机 slave )与master 同步 ntp.conf 只需直接增加 server cdh0[master]
立马同步时间可使用 ntpdate -u 0.cn.pool.ntp.org
8.安装JDK,配置Java环境变量
1)卸载自带的OpenJdk,使用rpm -qa | grep java查询java相关的包,使用rpm -e --nodeps 包名卸载之
2)mkdir /usr/java
tar -zxvf jdk-8u131-linux-x64.tar.gz
vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_131
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile 重启后依然有效,但当前不立即重启需要立即生效,所以使用source命令
(其它主机类同)
9.安装MySQL(仅master)
1)yum install mysql-server (centos7 [yum install mysql-community-server])
2)chkconfig mysqld on 设置开机启动
3)service mysqld start 启动mysql服务
4)mysqladmin -u root password '123456' 设置管理员账户密码
5)mysql -uroot -p123456 进入mysql命令行,创建相应数据库(按实际需要安装创建数据库)
create database repm DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
6)#授权root用户在主节点拥有所有数据库的访问权限
grant all privileges on *.* to 'root'@'cdhmaster' identified by '123456' with grant option;flush privileges;
10.安装CDH
添加scm用户
useradd --system --home=/opt/cm-5.11.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
(所有节点都需要)
1)上传cloudera-manager*.tar.gz 到/opt,tar -zxvf解压,将mysql-connector-java*.jar拷贝到opt/cm-*/share/cmf/lib/
2)为cm配置数据库
/opt/cm-5.11.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p123456 --scm-host localhost scm scm scm
vi /opt/cm-5.11.0/etc/cloudera-scm-agent/config.ini [server_host改为主节点名]
scp -r /opt/cm-5.11.0 root@cdh1:/opt/ 【其它节点类同】
3)将*parcel、*parcel.sha1、mainfest.json拷贝到主节点的/opt/cloudera/parcel-repo *parcel.sha1重命名为*parcel.sha
4)启动
/opt/cm-5.11.0/etc/init.d/cloudera-scm-server start #only 主机 master
/opt/cm-5.11.0/etc/init.d/cloudera-scm-agent start #所有主机 slave
5)登录webCM管理安装,逐一安装组件(以便排查具体的错误,幸好这样离线安装几乎不会有什么意外的错误)
组件安装顺序 zookeeper、hdfs、yarn(include mapreduce2)、hive、ooize、hue(这个顺序看停止集群服务的关停顺序时可以侧面反映出),然后安装 impala,hbase,spark(spark安装直接选择 spark [on yarn]),不要选择什么 spark singlealone 安装 hive和ooize时,
记得把 MySQL mysql-connector-java*.jar拷贝到/opt/cloudera/parcels/CDH-5.11.0-1.cdh5.11.0.p0.34/lib/hive/lib 和 /var/lib/oozie
参考推荐:http://www.cnblogs.com/codedevelop/p/6762555.html
安装错误排除:
一、常规排查法:
1.sysout,syseer,查看完整错误信息->2.找到错误处根据提示判断出错是权限不够还是文件缺失或信息不一致等准确定位,可以大致锁定错误范围,看是否有
另外的输入日志如 /var/log/X ,如果没有则根据判断的出错范围方向google
二、重复安装导致的问题
特别是重复安装导致的问题,由于删除不干净,或用户名遗留的问题,需要定位出部位然后手工修改删除
三、实在不行,可能原步骤错误导致乱样,重新安装,还是不行,只有换版本
安装的几个地方遇到的问题集锦:
旧用户名的问题,/var/log/X 和/var/lib/X都有原来遗留的文件,导致新安装的时候名称不对或权限不够
http://blog.sina.com.cn/s/blog_7ea3d46f0101ljlz.html
hdfs的目录命名实际是和Linux的一致,/dfs/
旧版本安装CDH 5.3.3或是不同于tar.gz解压安装的方式,安装hive时mysql的jdbc包需要在/usr/share/java/mysql-connector-java.jar[jar重命名]
安装迂回策略:
1.当上传权限不够时,如,电信WiFi集群里,只有WiFi账户可以上传,但CDH实际操作是需要root权限,所以可以采用迂回策略,先把jar等上传到主机,然后用
mv 命令移动到指定地点,然后用chown修改所属用户和所属用户组,chmod修改用户权限;
2、yum工具安装软件包
当我们的集群内网无法上外网时,我们需要安装一下软件如ntp,但是这些安装包邮很多依赖,为保证我们一次性有保证的找到所有包安装,我们可以在其他可以上网的
机子上修改yum使用下载缓存,缓存安装包到目录,yum安装后将包拷贝到不能上网的集群,设置yum安装使用本地目录,这样就可以离线yum安装了,同时可以使用httpd
配置,使多个机子都到同一主机目录获取安装包安装;
centos 设置时间,分两次设置,先设置年月日,然后设置时分秒
date -s 20170817
date -s 10:27:12
/opt/cm-5.12.2/etc/init.d/cloudera-scm-server: line 109: pstree: command not found
yum install psmisc
#yum -y install perl perl-devel
rm -rf /opt/cm-5.12.2/lib/cloudera-scm-agent/*
cdh 安装时提示 ERROR Failure due to stall on seeded torrent.
一个是要关闭 ipv6 ,一个是要必须先启动cm Server完成(能看到web管理页面),后再启动agent
=====================================================
rpm -qa | grep java
rpm -e --nodeps 包名
oracle 下载jdk rpm
rpm -ivh 包名
systemctl stop firewalld.service
systemctl disable firewalld.service
vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
修改主机名
hostnamectl set-hostname cdh0
http://archive.cloudera.com/cm5/cm/5/cloudera-manager-centos7-cm5.13.1_x86_64.tar.gz
创建目录
/opt/cloudera/parcel-repo
/opt/cm-5.13.1/etc/init.d/cloudera-scm-server start
/opt/cm-5.13.1/etc/init.d/cloudera-scm-agent start