集群服务器命名
|
$ vim /etc/sysconfig/network |
HOSTNAME=hdp-master
SSH 免密登录设置
|
$ yum install -y openssh rsync $ ssh-keygen -t rsa -P '' |
生成私钥/公钥, 执行后在~/.ssh 目录下会生成2个文件id_rsa(私钥)和id_rsa.pub(公钥),
将公钥追加到认证文件中
|
$ cd ~/.ssh $ cat id_rsa.pub >> authorized_keys |
为了安全可以将authorized_keys文件的权限设置成600
|
$ chmod 600 authorized_keys $ vim /etc/ssh/sshd_config |
修改以下值
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
保存退出文件, 重启服务
重启后可以’ssh {本机IP}’ 验证, 同样的道理, 只要将生成的公钥copy到远程服务器追加到 authorized_keys文件中,
重复以上步骤即可
关闭集群机器防火墙
|
$ service iptables stop $ chkconfig iptables off $ vim /etc/sysconfig/selinux |
将值设置为disabled
时间同步服务
|
$ yum install ntp $ chkconfig ntpd on $ vim /etc/ntp.conf |
设置时间同步的目标机器, 可以将内部的一台机器(A)设置为ntp服务器, ntp.conf同步网络时间,
其它内部机器同步A的时间, 下面的是同步网络时间的配置
server 202.120.2.101 prefer(prefer优先服务器)
server 202.102.29.82
JDK安装
jdk安装的目录一定要注意, 否则即使设置了linux的环境变量, cloudera也照样无法找到, 因为cloudera不认系统的JAVA_HOME, 而是遍历自己的一套目录, 这是个大坑
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
locate_java_home() { local JAVA6_HOME_CANDIDATES='\ /usr/lib/j2sdk1.6-sun \ /usr/lib/jvm/java-6-sun \ /usr/lib/jvm/java-1.6.0-sun-1.6.0.* \ /usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre/ \ /usr/lib/jvm/j2sdk1.6-oracle \ /usr/lib/jvm/j2sdk1.6-oracle/jre \ /usr/java/jdk1.6* \ /usr/java/jre1.6*' local OPENJAVA6_HOME_CANDIDATES='\ /usr/lib/jvm/java-1.6.0-openjdk \ /usr/lib/jvm/java-1.6.0-openjdk-* \ /usr/lib/jvm/jre-1.6.0-openjdk*' local JAVA7_HOME_CANDIDATES='\ /usr/java/jdk1.7* \ /usr/java/jre1.7* \ /usr/lib/jvm/j2sdk1.7-oracle \ /usr/lib/jvm/j2sdk1.7-oracle/jre \ /usr/lib/jvm/java-7-oracle*' local OPENJAVA7_HOME_CANDIDATES='\ /usr/lib/jvm/java-1.7.0-openjdk* \ /usr/lib/jvm/java-7-openjdk*' # .... } |
上面部分代码, 是出自cm-5.3.3/share/cmf/bin/cmf-server, 在安装jdk时, 注意选择对应上面目录就好了!
以上的环境每个集群节点都需要做, ssh免密登录只需要clouder server能登录其它集群节点即可
—————
在server服务器上安装MySQL
Hive, monitor等服务需要连接数据库
|
$ yum -y install mysql mysql-server mysql-devel mysql-libs $ chkconfig mysqld on $ service mysqld start $ mysql -uroot > use mysql > update user set password=password('xxx') where user= 'root'; > grant all privileges on *.* to root@'hdp-%' identified by 'xxx'; > flush privileges; |
登录mysql, 设置好root密码, 并授权节点服务器登录
安装cloudera manager
为每个节点机器创建用户
|
$ useradd --system --no-create-home --shell=/bin/false \ --home=/home/hadoop/cm-5.3.3/run/cloudera-scm-server/ \ --comment "Cloudera SCM User" cloudera-scm |
将cloudera-manager的安装包解压到指定目录/home/hadoop
|
$ cd /home/hadoop/cm-5.3.3 $ ./share/cmf/schema/scm_prepare_database.sh \ mysql -uroot -pxxxx --scm-host localhost scm scm scm |
该步骤是初始化cm的数据库, 只需要在server节点初始化, 查看该文件可获得参数的含义
将cm-5.3.3目录复制到集群的其它节点, 并修改agent配置文件
|
$ vim /home/hadoop/cm-5.3.3/etc/cloudera-scm-agent/config.ini |
注意修改下面的配置
server_host=hdp-cms # server就是集群主节点, 具体是你设置的机器的名字
parcel_dir=/home/hadoop/cloudera/parcels
准备CDH离线安装包
创建/opt/cloudera/parcel-repo/目录 , 当然这个目录是可以指定为其它目录的, CM配置时选择那个目录即可
|
$ mkdir -p /opt/cloudera/parcel-repo/ |
将CDH离线包加压到该目录下,
CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel
CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel.sha1 # 该文件的内容可以在manifest.json中找到, parcelName是上面那个文件名的对应的hash值
manifest.json
启动安装server和agent
|
$ cd /home/hadoop/home/hadoop/cm-5.3.3 $ ./etc/init.d/cloudera-scm-server start |
在主节点启动以上服务, 要确认一下是否启动成功, 如果有问题在log中查看具体的报错原因
|
$ ./etc/init.d/cloudera-scm-agent start |
该命令在其它节点上执行, 错误请查看log
CM安装步骤
跟着提示一步步走吧