CDH 5.11.2集群搭建

CDH集群服务器:

192.168.195.128cdh1),

192.168.195.133(cdh2)

192.168.195.131cdh3

操作系统:CentOS6.5 x64(32位最高只能支持8G内存)

Cloudera Manager5.11.2

CDH: 5.11.2

主节点至少分配8G内存.

 

采用parcel离线安装方式,而且重装什么的都非常方便。后期的集群统一包升级也非常好。

Cloudera Manager下载地址:

http://archive.cloudera.com/cm5/cm/5/cloudera-manager-el5-cm5.11.2_x86_64.tar.gz

CDH安装包地址:

http://archive.cloudera.com/cdh5/parcels/5.11.2/

由于我们的操作系统为CentOS6.5,需要下载以下文件:

CDH-5.11.2-1.cdh5.11.2.p0.4-el6.parcel

CDH-5.11.2-1.cdh5.11.2.p0.4-el6.parcel.sha1(需要将.sha1后的1去掉)

manifest.json

1、网络配置(所有节点)

修改hostname:  vim /etc/sysconfig/network


NETWORKING=yes

HOSTNAME=cdh3

输入命令 hostname cdh1  ,不需要重启虚拟机

修改ip与主机名的对应关系: vim /etc/hosts

127.0.0.1   localhost

192.168.195.128   cdh1

192.168.195.133   cdh2

192.168.195.131   cdh3

2.配置SSH免密码登录

所有节点上执行

ssh-keygen -t rsa ;

ssh-copy-id cdh1/2/3;

3.配置selinux (所有节点)

查看状态 /usr/sbin/sestatus -v      

#如果 SELinux status 参数为 enabled 即为开启状态
vim /etc/selinux/config 
改为SELINUX=disabled 

setenforce  0(临时关闭) 不需要重启虚拟机
4.关闭防火墙 (所有节点)

service iptables stop (临时关闭) 
chkconfig iptables off (永久关闭,重启后生效) 

遇到的坑,配置过程突然连接断掉(没有配置静态ip),重启虚拟机能ping通主机ip,主机ping不同虚拟机ip,原因是vmnet8网卡的ip与虚拟机的网段不一致,但是我检查了下net8的配置没有问题啊.再突然断掉就删除vmnet1和桥接模式,只留下vmnet8.

通过windows  终端查看是自动获取的ip,与设置的网关不一致,我索性就把他的ipv4属性改为自动获取ip地址,没想到成功了,哈哈哈哈.....(我感觉是我电脑的问题,每次启动虚拟机都要在VMware重新配置下网卡信息才能ping通,挺郁闷的...)

 

5.安装OracleJava(所有节点)

CentOS,自带OpenJdk,不过运行CDH5需要使用OracleJdk

卸载自带的OpenJdk,使用 rpm -qa | grep java 查询java相关的包,使用 rpm -e --nodeps 后跟包名  卸载。

解压安装包,解压到/usr/local/java

[root@cdh1~]# tar -zxf  jdk-8u201-linux-x64.tar.gz  -C /usr/local/java

scp到cdh2和cdh3

[root@cdh1~]# vim /etc/profile  加入:

export JAVA_HOME=/usr/local/java/jdk1.8.0_65/

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$JAVA_HOME/bin:$PATH

将/etc/profile  scp到cdh2和cdh3

source /etc/profile使生效.  

java -version检查.

6.安装ntp时间同步服务(所有节点)

安装ntp

yum  install ntp -y

配置NTP服务为自启动

# chkconfig ntpd on

启动服务service ntpd start/restart/status

使用ntpdate手动同步时间:

# ntpdate -u 202.112.10.36

 3 Feb 06:26:12 ntpdate[1573]: step time server 202.112.10.36 offset 20.210641 sec
表示同步成功.

修改配置文件: vim /etc/ntp.conf

主节点:

# For more information about this file, see the man pages
# ntp.conf(5), ntp_acc(5), ntp_auth(5), ntp_clock(5), ntp_misc(5), ntp_mon(5).
 
driftfile /var/lib/ntp/drift
 
# Permit time synchronization with our time source, but do not
# permit the source to query or modify the service on this system.
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
 
# Permit all access over the loopback interface.  This could
# be tightened as well, but to do so would effect some of
# the administrative functions.
restrict 127.0.0.1
restrict -6 ::1
 
# Hosts on local network are less restricted.
# 允许内网其他机器同步时间
restrict 192.168.195.0 mask 255.255.255.0 nomodify notrap
 
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
# 中国这边最活跃的时间服务器 : http://www.pool.ntp.org/zone/cn
server 210.72.145.44 perfer   # 中国国家受时中心
server 202.112.10.36             # 1.cn.pool.ntp.org
server 59.124.196.83             # 0.asia.pool.ntp.org
 
#broadcast 192.168.1.255 autokey        # broadcast server
#broadcastclient                        # broadcast client
#broadcast 224.0.1.1 autokey            # multicast server
#multicastclient 224.0.1.1              # multicast client
#manycastserver 239.255.254.254         # manycast server
#manycastclient 239.255.254.254 autokey # manycast client
 
# allow update time by the upper server 
# 允许上层时间服务器主动修改本机时间
restrict 210.72.145.44 nomodify notrap noquery
restrict 202.112.10.36 nomodify notrap noquery
restrict 59.124.196.83 nomodify notrap noquery
 
# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available. 
# 外部时间服务器不可用时,以本地时间作为时间服务
server  127.127.1.0     # local clock
fudge   127.127.1.0 stratum 10
 
# Enable public key cryptography.
#crypto
 
includefile /etc/ntp/crypto/pw
 
# Key file containing the keys and key identifiers used when operating
# with symmetric key cryptography. 
keys /etc/ntp/keys
 
# Specify the key identifiers which are trusted.
#trustedkey 4 8 42
 
# Specify the key identifier to use with the ntpdc utility.
#requestkey 8
 
# Specify the key identifier to use with the ntpq utility.
#controlkey 8
 
# Enable writing of statistics records.
#statistics clockstats cryptostats loopstats peerstats

从节点:

driftfile /var/lib/ntp/drift
restrict 127.0.0.1
restrict -6 ::1
 
# 配置时间服务器为本地的时间服务器(master的ip)
server 192.168.195.128
 
restrict 192.168.195.128 nomodify notrap noquery
 
server  127.127.1.0     # local clock
fudge   127.127.1.0 stratum 10
 
includefile /etc/ntp/crypto/pw
 
keys /etc/ntp/keys

ntpstat 命令查看时间同步状态,这个一般需要5-10分钟后才能成功与外网时间服务器连接和同步。

从节点执行ntpdate -u  192.168.195.128   与主节点时间同步

7.安装配置MySQL(主节点)

通过 yum installmysql-server 安装mysql服务器,(也可以通过tar包的方式安装),是mysql-5.1.73-8.el6_8.x86_64版本.

 chkconfig mysqld on 设置开机启动,

 service mysqld start 启动mysql服务。

mysql -uroot -pxxxx 进入mysql命令行,创建以下数据库:

create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database Oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;--集群监控数据库

设置root授权访问以上所有的数据库:

授权root用户在主节点cdh1拥有所有数据库的访问权限

grant all privileges on *.* to root@cdh1 identified by '密码';
flush privileges;

8.安装Cloudera Manager Server 和Agent

  • 主节点解压安装cloudera-manager-el6-cm5.11.2_x86_64.tar.gz(只需要上传到主节点)

cloudera manager的目录默认位置在/opt/cloudera-manager,将其解压到/opt/cloudera-manager目录下

tar -zxvf cloudera-manager-el6-cm5.11.2_x86_64.tar.gz -C /opt/cloudera-manager

将解压出来的两个目录的所有者改成root

chown -R  root.root /opt/cloudera-manager/cloudera/

chown -R  root.root /opt/cloudera-manager/cm-5.11.2/

为Cloudera Manager 5建立数据库,首先需要去MySql的官网下载JDBC驱动。地址:https://dev.mysql.com/downloads/file/?id=480091

解压后,找到mysql-connector-java-5.1.47-bin.jar,放到/opt/cloudera-manager/cm-5.11.2/share/cmf/lib/中。

cp mysql-connector-java-5.1.41-bin.jar /opt/cloudera-manager/cm-5.11.2/share/cmf/lib/

  • 在主节点初始化CM5的数据库:

执行:

/opt/cloudera-manager/cm-5.11.2/share/cmf/schema/scm_prepare_database.sh mysql
 cm -h localhost -uroot -proot --scm-host localhost scm scm scm

格式:scm_prepare_database.sh 数据库类型  数据库名 -h 主节点ip -u用户名 -p密码 
-scm-host  cm_Server所在机器ip 数据库  用户名 密码 。 
因为我们用的是Mysql数据库,所以我们需要将Mysql的JDBC驱动放到/opt/cloudera-manager/cm-5.11.2/share/cmf/lib/目录下。 
在后面安装其他组件的时候,它会从/usr/share/java目录下找驱动,
然后自动cp,所以为保险起见,建议把mysql的驱动jar包也拷贝到agent节点的/usr/share/java下面
(最好把版本和“”bin“”去掉,如mysql-connector-java.jar).  

 

  • Agent配置:

修改/opt/cloudera-manager/cm-5.11.2/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名。

server_host=cdh1

创建cloudera-scm-agent的pid目录

mkdir  /opt/cloudera-manager/cm-5.11.2/run/cloudera-scm-agent

同步Agent到其他节点

scp -r  /opt/cloudera-manager/cm-5.11.2 cdh2:/opt/cloudera-manager/cm-5.11.2

scp -r  /opt/cloudera-manager/cm-5.11.2 cdh3:/opt/cloudera-manager/cm-5.11.2
  • 在所有节点创建cloudera-scm用户
useradd --system --home=/opt/cloudera-manager/cm-5.11.2/run/cloudera-scm-server/
--no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
  • 准备Parcels,用以安装CDH5

将CHD5相关的Parcel包放到主节点的 /opt/cloudera/parcel-repo/目录中。

mkdir -p /opt/cloudera/parcel-repo 

相关的文件如下:

CDH-5.11.2-1.cdh5.11.2.p0.8-el6.parcel 
CDH-5.11.2-1.cdh5.11.2.p0.8-el6.parcel.sha 
manifest.json 

从节点上也新建parcels存放目录 
mkdir -p /opt/cloudera/parcels 

  • 启动服务

服务端(主节点)

/opt/cloudera-manager/cm-5.11.2/etc/init.d/cloudera-scm-server start

客户端:(所有节点启动)启动Agent服务。

/opt/cloudera-manager/cm-5.11.2/etc/init.d/cloudera-scm-agent start

停止服务stop,重启是restart,状态是status

Cloudera Manager ServerAgent都启动以后,就可以进行CDH5的安装配置了。

这时可以通过浏览器访问主节点的7180端口测试(由于CM Server的启动需要花点时间,要等待几分钟才能访问),默认的用户名和密码均为admin

 

9.安装失败重装:

1.删除Agent节点的UUID

rm -rf /opt/cm-5.4.7/lib/cloudera-scm-agent/*

2.清空主节点CM数据库

进入主节点的Mysql数据库,drop database cm;

3. 删除namenode和datanode节点信息(如果产生了)

rm -rf /dfs/nn/*

rm -rf /dfs/dn/*

rm -rf /dfs/ssn/*

4.在主节点上重新初始化CM数据库

/opt/cloudera-manager/cm-5.11.2/share/cmf/schema/scm_prepare_database.sh mysql  cm -h localhost -uroot -proot --scm-host localhost scm scm scm

5.执行启动脚本

/opt/cloudera-manager/cm-5.11.2/etc/init.d/cloudera-scm-server restart

/opt/cloudera-manager/cm-5.11.2/etc/init.d/cloudera-scm-agent  restart

过一会儿,即可通过主节点的7180端口重新进行CDH的安装http://192.168.195.128:7180/cmf/login

10.出现的错误:

 

      日志查看:

       /opt/cloudera-manager/cm-5.11.2/log/cloudera-scm-agent/cloudera-scm-agent.log

       /opt/cloudera-manager/cm-5.11.2/log/cloudera-scm-server/cloudera-scm-server.log

  1. agent启动后查看状态一会自己就stop了;

         cloudera-scm-agent 已死,但 pid 文件仍存

         删除 /opt/cloudera-manager/cm-5.11.2/run/cloudera-scm-agent/cloudera-scm-server.pid

         重启agent

      2.mysql数据库使用引擎应该是innodb

        修改/etc/my.conf,

        添加   default-storage-engine=InnoDB

        重启mysql服务

      3. 安装启动spark找不到Java_home

        将JAVA_HOME软连接到/usr/java/default  :

        ln -s /usr/local/java/jdk1.8.0_201  /usr/java/default
        并在/root/.bashrc文件里面添加export JAVA_HOME=/usr/java/default就能以root身份启动spark服务

      4.创建hive metastore database tables报错:

         cp mysql-connector-java-5.1.47-bin.jar  /usr/share/java/mysql-connector-java.jar

         或者建立软连接

      5.检查主机配置时出错(所有节点执行)

         echo 0 >> /proc/sys/vm/swappiness

         关闭透明大页:

         echo never >>  /sys/kernel/mm/transparent_hugepage/enabled

         echo never >>  /sys/kernel/mm/transparent_hugepage/defrag

 

参考博客:

搭建:http://blog.51cto.com/12676522/1934844

安装失败:https://blog.csdn.net/slowtech/article/details/50847008

时间同步:https://acooly.iteye.com/blog/1993484             

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值