CDH安装配置(详细说明)

  • Post author:
  • Post category:其他


从网上看了很多的资料,填了不少的坑。总结一下。(这篇是整合网络的资料+自己的坑)

关于CDH和Cloudera Manager

CDH (Cloudera’s Distribution, including Apache Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,并集成了很多补丁,可直接用于生产环境。

Cloudera Manager则是为了便于在集群中进行Hadoop等大数据处理相关的服务安装和监控管理的组件,对集群中主机、Hadoop、Hive、Spark等服务的安装配置管理做了极大简化。

系统环境

实验环境:windown下Oracle VM VirtualBox虚拟机

操作系统:CentOS-7-x86_64-DVD-1511 (至少内存2G以上,这里内存不够的同学建议还是整几台真机配置比较好,将CDH的所有组件全部安装会占用很多内存,我已开始设置的虚拟机内存是1G,安装过程中直接卡死了)

Cloudera Manager:5.12.1

CDH: 5.12.1

相关包的下载地址


所以的安装包

(挣点积分)


系统规划


准备3个节点,一个master节点,二个slave节点。

master:1核3G ;192.168.6.171; master.msxf.hadoop

slave1:1核2G; 192.168.6.172; slave1.maxf.hadoop

slave2:1核2G; 192.168.6.173; slave2.msxf.hadoop

准备工作:系统环境搭建


1.CentOS-7安装(别最小安装,因为会有很多麻烦)我就都给安装了,哈哈。(

安装



2.配置ip(

所有节点


vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

TYPE=Ethernet
BOOTPROTO=static     //更改部分
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=enp0s3
UUID=b645b437-8eaa-4d95-a003-7629471b814d
DEVICE=enp0s3
ONBOOT=yes         //更改部分
#添加部分
IPADDR=192.168.6.171     
NETMASK=255.255.255.0    
GATEWAY=192.168.6.1         
DNS1=8.8.8.8                
DNS2=114.114.114.114    

重启:service network restart


3.网络配置(

所有节点

)

vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=master.msxf.hadoop

子节点192.168.6.172配置

NETWORKING=yes
HOSTNAME=slave1.msxf.hadoop

子节点192.168.6.173配置

NETWORKING=yes
HOSTNAME=slave2.msxf.hadoop

重启操作系统生效 :service network restart(如果不生效reboot)


4.配置hosts(

所有节点

)

vi /etc/hosts
192.168.6.171 master.msxf.hadoop
192.168.6.172 slave1.msxf.hadoop
192.168.6.173 slave2.msxf.hadoop


5.关闭防火墙和

SELinux



所有节点


关闭防火墙:

systemctl stop firewalld.service

关闭SELINUX:

setenforce 0 (临时生效)

修改 /etc/selinux/config 下的 SELINUX=disabled (重启后永久生效)


6.安装JDK(

所有节点



卸载openJdk

rpm -e --nodeps java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64
我把jdk放在/opt/jdk里了(jdk必须在/usr/java路径下)

1.配置环境变量
    vi /etc/profile
2./etc/profile中添加下面配置项
    JAVA_HOME=/usr/java/jdk1.8.0_201
    PATH=$JAVA_HOME/bin:$PATH
    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
3.刷新环境变量使配置立即生效
    source /etc/profile
4.检查JDK是否配置成功
    java -version


注意:如果jdk安装的路径不是 /usr/java/目录下需要软件列,因为默认的cdh文件默认的路径就是/usr/java/jdk1.8

mkdir -p /usr/java/jdk1.8
ln -s /opt/jdk/jdk1.8.0_201/* /usr/java/jdk1.8/


7.SSH免密登录(

所有节点


1.在主节点上执行ssh-keygen -t rsa一路回车,生成无密码的密钥对。(默认位置 ~/.ssh)
2.将公钥添加到认证文件中:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3.并设置authorized_keys的访问权限:chmod 600 ~/.ssh/authorized_keys
4.在两个slave节点上执行ssh-keygen -t rsa一路回车,生成无密码的密钥对,并生成.ssh 目录,用于认证文件authorized_keys的同步。scp文件到所有slave节点

scp ~/.ssh/authorized_keys root@slave1.msxf.hadoop:~/.ssh/
scp ~/.ssh/authorized_keys root@slave2.msxf.hadoop:~/.ssh/

注意:输入yes  slave1节点登录密码
测试:在主节点上ssh slave1.msxf.hadoop,正常情况下,不需要密码就能直接登陆进去了


8.

配置NTP服务(主)

1.在线安装

配置yum源:https://opsx.alibaba.com/mirror  有操作的步骤(必须有网)

提供了两个版本,防火墙必须关闭,不关闭ntp同步不过来。(

NTP离线配置

1.yum install ntp
2.vi /etc/ntp.conf
3.把其他的service都用#
server 0.asia.pool.ntp.org prefer

配置文件完成,保存退出,启动服务,执行如下命令:service ntpd start

检查是否成功,用ntpstat命令查看同步状态,出现以下状态代表启动成功:

如果出现异常请等待几分钟,一般等待5-10分钟才能同步。

9.


配置ntp客户端(所有slave节点)

1.vi /etc/ntp.conf
2.把其他的service都用#
server master.msxf.hadoop

保存退出,请求服务器前,请先使用ntpdate手动同步一下时间:

ntpdate -u master.msxf.hadoop (主节点ntp服务器)

启动服务:service ntpd start


10.安装配置MySql(

主节点





离线安装

⑴.删除原有的mariadb,不然mysql装不进去 (本章用的是yum安装的)

rpm -qa|grep mariadb
rpm -e --nodeps mariadb-libs

⑵.下载mysql的rpm包

wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

⑶. 执行:rpm -ivh mysql-community-release-el7-5.noarch.rpm

⑷.执行:yum install -y mysql-server

⑸.首先关闭mysql服务:systemctl stop mysqld

⑹.然后修改配置文件:vi /etc/my.cnf

⑺.接下来加入一句代码即可空密码登录mysql:

# Disabling symbolic-links is recommended to prevent assorted security risks
skip-grant-tables #添加这句话,这时候登入mysql就不需要密码
symbolic-links=0

⑻.开启mysql服务:systemctl start mysqld

⑼.空密码登录mysql:mysql -u root -p #输入命令回车进入,出现输入密码提示直接回车

⑽设置mysql密码:

mysql> set password for root@localhost = password('root');

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

mysql> flush privileges; #更新权限

Query OK, 0 rows affected (0.00 sec)

mysql> set password for root@localhost = password('root');

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql>flush privileges; #更新权限

mysql>quit; #退出


service mysqld stop

# 停止mysql服务, 恢复mysql配置

vi /etc/my.cnf #修改配置文件

# Disabling symbolic-links is recommended to prevent assorted security risks

# skip-grant-tables # 注释掉这句话

symbolic-links=0

service mysqld start # 启动mysql服务

mysql -u root -p # 输入新密码登录

创建以下数据库:

#hive
create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

#activity monitor
create database amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

#hue
create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

#oozie
create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

设置root授权访问以上所有的数据库:
#授权root用户在主节点拥有所有数据库的访问权限
grant all privileges on *.* to 'root'@'master.msxf.hadoop' identified by 'root' with grant option;
flush privileges;

正式开工(重点了)

安装Cloudera Manager Server 和Agent


1.主节点解压安装

cloudera manager的目录默认位置在/opt下,解压:tar -xzvf cloudera-manager*.tar.gz将解压后的cm-5.12.1和cloudera目录放到/opt目录下。


2.为Cloudera Manager 5建立数据库

首先需要去MySql的官网下载JDBC驱动,

http://dev.mysql.com/downloads/connector/j/

,解压后,找到mysql-connector-java-5.1.33-bin.jar,放到

/opt/cm-5.12.1/share/cmf/lib/

中。

在主节点初始化CM5的数据库,输入mysql密码:

/opt/cm-5.12.1/share/cmf/schema/scm_prepare_database.sh mysql cm -h localhost -u root -p root --scm-host localhost scm scm scm


3.Agent配置

修改

/opt/cm-5.12.1/etc/cloudera-scm-agent/config.ini中的master.msxf.hadoop

为主节点的主机名。


4.同步Agent到其他节点

scp -r /opt/cm-5.12.1 root@slave1.msxf.hadoop:/opt/
scp -r /opt/cm-5.12.1 root@slave2.msxf.hadoop:/opt/


5.在所有节点创建cloudera-scm用户

useradd --system --home=/opt/cm-5.12.1/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm


6.在主节点创建cloudera-manager-server的本地元数据保存目录

mkdir /var/cloudera-scm-server
chown cloudera-scm:cloudera-scm /var/cloudera-scm-server
chown cloudera-scm:cloudera-scm /opt/cm-5.12.1


7.主节点中创建parcel-repo仓库目录

mkdir -p /opt/cloudera/parcel-repo
chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo


8.所有节点创建parcels目录

mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels

解释:Clouder-Manager将CDHs从主节点的/opt/cloudera/parcel-repo目录中抽取出来,分发解压激活到各个节点的/opt/cloudera/parcels目录中


9.准备Parcels,用以安装CDH5

将CHD5相关的Parcel包放到主节点的

/opt/cloudera/parcel-repo/

目录中(parcel-repo需要手动创建)。

相关的文件如下:

CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel

CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1

manifest.json

最后将CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha1,重命名为CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel.sha,这点必须注意,否则,系统会重新下载CDH-5.12.1-1.cdh5.12.1.p0.3-el7.parcel文件。

安装psmisc(把这个安装了,如果有就不用了。要不然服务起不来,正常情况下是安装的) 
# yum -y install psmisc

启动服务端和启动Agent服务。

/opt/cm-5.12.1/etc/init.d/cloudera-scm-server start 
/opt/cm-5.12.1/etc/init.d/cloudera-scm-agent start  
//日志
tail -f /opt/cm-5.12.1/log/cloudera-scm-server

//查看服务
ps -ef|grep cloudera

CDH5的安装配置

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

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


http://master.msxf.hadoop:7180

注意:

1.如果主节点不能访问用:http://192.168.6.171:7180  访问(配置hosts文件可以解析主机名访问c:\windows\system32\drivers\etc

192.168.6.171 master.msxf.hadoop
192.168.6.172 slave1.msxf.hadoop
192.168.6.173 slave2.msxf.hadoop

如果访问成功把子节点都起来服务

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

默认账号密码admin/admin


接下来,出现以下包名,说明本地Parcel包配置无误,直接点继续就可以了。(看你们用什么版本了)

点击,继续,如果配置本地Parcel包无误,然后就是耐心等待分配过程就行了,大约10多分钟吧,取决于内网网速。

接下来是服务器检查,可能会遇到以下问题:

1.Cloudera 建议将 /proc/sys/vm/swappiness 设置为 10。当前设置为 60。
使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。
您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。
以下主机受到影响:
        echo 0 > /proc/sys/vm/swappiness
 
2、检查主机正确性时出现 “已启用“透明大页面”,它可能会导致重大的性能问题。” 的警告,进行如下设定:
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
 

接下来是选择安装服务(根据自己的需求按装)

服务配置,一般情况下保持默认就可以了(Cloudera Manager会根据机器的配置自动进行配置,如果需要特殊调整,自行进行设置就可以了):(别人的图)

接下来是数据库的设置,检查通过后就可以进行下一步的操作了:(这是刚才咱们mysql创建的库账号密码 root,root)

这块hue和amon会报错,连接不上

cannot open shared object file: No such file or directory

问题原因:

这个错误出现的原因是找不到 libmysqlclient.so.18 这个文件,根本原因是,

一般我们使用的mysql都是自己从新安装的,不是系统自带的,所以在我们安装我们自己的mysql的时候,会把删除原来的mysql,此时会连带这删掉这个文件

,32的目录是 /usr/lib/mysql/,64位的为 /usr/lib64/mysql/下面有这个文件。

1、解决问题的关键是,在找一台未装过mysql的服务器,然后把此文件夹下面的 libmysqlclient.so.18.0.0 文件拷贝到此服务器的这个目录中,然后做软连接。

2、然后 vi /etc/ld.so.conf 后面增加一条记录:/usr/lib64/mysql (libmysqlclient.so.18 和libmysqlclient.so.18.0.0所在目录)

mkdir -p /usr/lib64/mysql
cd /usr/lib64/mysql
ln -s libmysqlclient.so.18.0.0  libmysqlclient.so.18

3、运行 ldconfig 命令,让其生效。

  ok,完美解决。

下面是集群设置的审查页面,我这里都是保持默认配置的:

最后的安装了。这块是最麻烦的了。最烦的。注意:

1.这里安装Hive的时候可能会报错,因为我们使用了MySql作为hive的元数据存储,hive默认没有带mysql的驱动,通过以下命令拷贝一个就行了:
 
cp /opt/cm-5.12.1/share/cmf/lib/mysql-connector-java-5.1.47-bin.jar /opt/cloudera/parcels/CDH-5.12.1-1.cdh5.12.1.p0.3/lib/hive/lib/
 
2.安装Spark,jdk的位置不行。进行软连接
    创建mkdir -p /usr/java/default
    ln -s /opt/jdk/jdk1.8.0_74/* /usr/java/default/
 
3.oozie:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
     cp -p /opt/cm-5.12.1/share/cmf/lib/mysql-connector-java-*-bin.jar /var/lib/oozie/


cdh集成StreamSets安装配置



版权声明:本文为u012448904原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。