工程师计划 大数据 CDH大数据平台搭建

CDH大数据平台搭建

1.搭建环境

  • 两台笔记本电脑A和B,自带内存分别为12G和8G,安装VMware 12。
  • A开一个虚拟机,2*CPU,8G内存,使用桥接网卡模式,安装CentOS6.5,充当主机Master。
  • B开两个虚拟机,1*CPU,2G内存,使用桥接网卡模式,安装CentOS6.5,充当分机Slave1,Slave2。
  • 两台电脑通过网线连接到学校内网,使用内网网络环境搭建,三台虚拟机的root密码必须一致。

2.安装前的准备

首先先下载以下安装包

  • cloudera-manager-el6-cm5.8.0_x86_64.tar.gz (Cloudera Manager 安装包,el6代表使用的CentOs6.x,cm-5.8.0代表使用的Cloudera Manager版本为5.8.0)
  • CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel (CDH离线资源包)
  • CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1
  • manifest.json
  • cm5.8.0-centos6.tar.gz (里面有一些必要的环境)
  • mysql-connector-java-5.1.6-bin.jar (JDBC)

下载路径分别为

http://archive.cloudera.com/cm5/cm/5/

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

http://archive.cloudera.com/cm5/repo-as-tarball/5.8.0/

注意:不要图方便少下什么,或者少安装什么,尤其是JDK一定要安装官方的,要不会导致后面Spark配制出错,这个地方我们起码失败了5、6次,一定要全部下下来,重来的代价会更高

3.安装前的配置

首先进入root权限:输入

su

,再输入密码即可

3.1.配置主机名

分别修改各节点/etc/sysconfic/network文件,设置主机名为Master,Slave1,Slave2。

找到HOSTNAME可进行修改,名字以方便识别主节点和分节点为标准。

修改完后执行

service network restart

重启服务。

使用

hostname

进行验证。

如果没有生效,那就重启虚拟机。

3.2.关闭防火墙

执行命令:

service iptables stop

再执行:

chkconfig iptables off

使用

chkconfig --list|grep iptables

检查是否全关

如果为

iptables 0:off  1:off 2:off  3:off  4:off 5:off  6:off

则说明关完了

3.3.绑定ip与主机名

先查看

ifconfig

三台虚拟机的ip。

分别在三台虚拟机上打开并更改hosts

vi /etc/hosts

输入如下


192.168.30.21  Master
192.168.30.22  Slave1
192.168.30.23  Slave2

配置完后,3台虚拟机互ping ip和主机名,验证是否配置成功。

3.4.配置ssh免密码登录(默认已安装ssh)

在Master中使用

ssh-keygen -t rsa

生成秘钥,一路回车.

cd ~/.ssh

找到

id_rsa.pub

,将其写入到

authorized_keys

中.

输入

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

.

输入

ssh Master

看看是否已经免秘钥,第一次可能要输密码和输一个yes.

成功后同理在其他两台机子上输入

ssh-keygen -t rsa

生成秘钥。

将生成的秘钥如果是图形化的界面直接粘贴到Master的

authorized_keys

中,再由Master使用scp分发给其他两台主机。

如果不是图形化,那就用putty,xshell等等登录虚拟机粘贴,如果没有,那就用scp传。

使用scp将

authorized_keys

传给slave1和slave2,输入

scp ~/.ssh/authorized_keys root@slave1:~/.ssh

把slave1改为slave2及传给2。

互相使用

ssh hostname

登录对方看看是否免秘钥,不行检查

authorized_keys

是否正确。

3.5.关闭SELINUX


setenforce 0 #临时生效

修改/etc/selinux/config 文件的 SELINUX=disabled #重启生效

3.6.安装Mysql(master节点)

首先使用

rpm -qa|grep -i mysql

检查是否安装了Mysql,如果有

使用

rpm -e 包名

删除Mysql包。

然后下载MySQL包

http://dev.mysql.com/downloads/mysql/#downloads

我使用的是MySQL-5.5.49-1.linux2.6.x86_64.rpm-bundle.tar这个文件,解压它得到


MySQL-client-5.5.49-1.linux2.6.x86_64.rpm
MySQL-devel-5.5.49-1.linux2.6.x86_64.rpm
MySQL-embedded-5.5.49-1.linux2.6.x86_64.rpm
MySQL-server-5.5.49-1.linux2.6.x86_64.rpm
MySQL-shared-5.5.49-1.linux2.6.x86_64.rpm
MySQL-shared-compat-5.5.49-1.linux2.6.x86_64.rpm
MySQL-test-5.5.49-1.linux2.6.x86_64.rpm

使用

rpm -ivh MySQL*

全部安装,一个都不能少,要不可能会导致后面报错!

然后使用

/usr/bin/mysql_secure_installation

 改mysql密码。

输入

mysql -u root -p

进入mysql。

首先创建用户


<span class="hljs-keyword">CREATE USER <span class="hljs-string">'hive'@'%' IDENTIFIED BY 'hive';
CREATE USER 'hue'@'%' IDENTIFIED BY 'hue';
CREATE USER 'oozie'@'%' IDENTIFIED BY 'oozie';</span></span>

在创建数据库


<span class="hljs-keyword">CREATE DATABASE hive;
CREATE DATABASE hue;
CREATE DATABASE oozie;</span>

最后赋予各个用户权限


<span class="hljs-keyword">GRANT ALL ON hive.* TO <span class="hljs-string">'hive'@'%'
GRANT ALL ON hue.* TO 'hue'@'%'
GRANT ALL ON oozie.* TO 'oozie'@'%' </span></span>

3.7.安装JDK

解压

cm5.8.0-centos6.tar.gz

后打开里面的

rpm

文件夹,里面应该有一个

JDK 1.6

和一个

 Oracle JDK 

两个都要安装上。然后输入

java -version

应该可以看到


java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)

3.8.配置NTP服务(所有节点)

安装NTP服务,使用

yum install ntp

安装

修改ntp配置

vi /etc/ntp.conf

Master设置

server 210.72.145.44     #这是中国国家授时中心的IP

Slave1~2设置

server master

设置开机时自动运行时间服务

chkconfig ntpd on

启动或停止时间服务


service ntpd start
service ntpd stop
service ntpd restart

查看ntp服务状态

watch ntpq -p

4.安装Cloudera Manager Server和Agent

4.1.创建cloudera-manager文件夹(1~7步在三个节点都要进行)

mkdir /opt/cloudera-manager

4.2.在master节点解压安装包至/opt/cloudera-manager默认目录

tar -zxvf cloudera-manager-el6-cm5.8.0x8664.tar.gz -C /opt/cloudera-manager

4.3.创建用户

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

4.4.创建log文件夹


mkdir /var/log/cloudera-scm-server
chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-server

4.5.修改agent指向的sever地址

进入到

cd /opt/cloudera-manager/cm-5.8.0/etc/cloudera-scm-agent

使用

vim config.ini

server_host=localhost

改为

server_host=master

4.6.创建存放parcel的文件夹


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

4.7.创建run/cloudera-scm-agent文件夹

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

如果有则不用创建。

以下开始是在Master上进行!

4.8.为Cloudera Manager 5建立数据库

将mysql-connector-java-5.1.6-bin.jar文件放到/opt/cm-5.8.0/share/cmf/lib/中。

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

4.9.在master节点初始化CM5的数据库

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

4.10.准备Parcels,用以安装CDH5

将CHD5相关的Parcel包放到主节点的/opt/cloudera/parcel-repo/目录中(parcel-repo需要手动创建)。

相关的文件如下:

  • CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel
  • CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1
  • manifest.json

最后将CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1,重命名为CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha,这点必须注意,否则,系统会重新下载CDH-5.3.8-1.cdh5.3.8.p0.5-el6.parcel.sha文件。

4.11.执行启动脚本

在master节点启动服务端:

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

在所有节点启动Agent:

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

等待5分钟,分别使用

/opt/cloudera-manager/cm-5.8.0/etc/init.d/cloudera-scm-server status
/opt/cloudera-manager/cm-5.8.0/etc/init.d/cloudera-scm-agent status

检查server和agent状态。如果出错,比如死掉了之类的,去

/opt/cloudera-manager/cm-5.8.0/log

里面查看日志,看看是哪里报错了

如果agent报错是以下这样


Traceback (most recent call last):
  File <span class="hljs-string">"/opt/cloudera-manager/cm-5.8.0/lib64/cmf/agent/build/env/lib/python2.6/site-packages/cmf-5.8.0-py2.6.egg/cmf/agent.py", line <span class="hljs-number">2163, <span class="hljs-keyword">in connect_to_new_supervisor
    self.get_supervisor_process_info()
  File "/opt/cloudera-manager/cm-5.8.0/lib64/cmf/agent/build/env/lib/python2.6/site-packages/cmf-5.8.0-py2.6.egg/cmf/agent.py", line 2185, in get_supervisor_process_info
    self.identifier = self.supervisor_client.supervisor.getIdentification()
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1199, in __call__
    return self.__send(self.__name, args)
  File "/usr/lib64/python2.6/xmlrpclib.py", line 1489, in __request
    verbose=self.__verbose
  File "/opt/cloudera-manager/cm-5.8.0/lib64/cmf/agent/build/env/lib/python2.6/site-packages/supervisor-3.0-py2.6.egg/supervisor/xmlrpc.py", line 470, in request
    '' )
ProtocolError: &lt;ProtocolError for 127.0.0.1/RPC2: 401 Unauthorized&gt;</span></span></span>

重启虚拟机即可解决,是因为有什么程序占用了那个端口。

5.配置CDH集群

PS:由于某些原因,安装的时候我的主机名也就是Master是叫yao5,不要在意

验证都正常工作后,就在浏览器打开http://master:7180进入CDH管理界面,由于CM Server的启动需要花点时间,这里可能要等待一会(我最久等了20分钟)才能访问,默认的用户名和密码均为admin。

5.1.为CDH群集安装指定主机

为CDH群集安装指定主机这一步(忘截图了==|||),要能直接在当前管理的主机能看到三台机子,分别为Master,Slave1,Slave2.才说明安装正确了,如果搜不到,说明可能是你偷懒直接复制

cm-5.8.0

这个文件夹给其他主机了,因为在启动的时候会生成一个

SSID

,是这个机子唯一的,所以搜索的时候可能会出问题。

5.2.群集安装

接下来是群集安装,这一步点选

使用Parcel(建议)

,将网络地址全部删除,退出来后要能看到可以选择本地包才说明本地配置对了,如果没看到,可能有以下几个原因

  1. 未将CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha1,重命名为CDH-5.8.0-1.cdh5.8.0.p0.42-el6.parcel.sha
  2. cloudera

    ,

    parcel-repo

    parcels

    三个文件夹的权限设置没有设置好。

安装完成后如上图。

5.3.检查主机正确性

如果出现和上图一样,就说明离成功又近了一步,如果出现了其他错误,比如出现JAVA版本不一致,想想你是不是自己安JDK了,这个地方会导致后面Spark安装失败,没有例外,因为这里我们起码重装了5次,才发现必须用官方给的JDK。

按照给出的方式修改,输入

echo 10 &gt; /proc/sys/vm/swappiness
echo never &gt; /sys/kernel/mm/transparent_hugepage/defrag

如果你想重启后不出问题,可以按上面的修改其他那些文件。

修改完后点击重新运行,得到以下样子

是不是看起来很舒服。

5.4.选择在集群上安装的服务

我们选择安装含Spark的内核

5.5.自定义角色分配

注意将DataNode选成所有主机,还有下面的Zookeeper选成所有主机,其他默认就可以了。

5.6.数据库设置

之前已经配置过数据库,直接像上面那样填即可,可能会在Hue测试连接的时候失败,那就是你没有安装完MySQL包里share,最好全部安装,防止报各种奇怪的错。

5.7.所需目录结构

默认即可,不用改动什么。

5.8.等待初始化和启动服务

这个地方初始化可能会出各种问题

1.Spark报错,一般都是JDK未使用官方版本。

2.Hive,Hbase,Hue等报错,类似于下图

解决办法也就是将mysql-connector-java-5.1.6-bin.jar拷贝到hive存放jar文件的目录重试即可。

cp mysql-connector-java-5.1.6-bin.jar /opt/cloudera/parcels/CDH-5.8.0-1.cdh5.8.0.p0.42/lib/hive/lib/

3.Oozie报错,显示timeout,这里是因为网络环境太差,传输很慢,所以要把超时时间设置久一点,我们将超时时间调到了300s。

如上图出现报错,浏览器打开另一个标签页,进入http://master:7180,点击oozie组件,搜索oozie_upload_sharelib_cmd_timeout parameter 和 change it to something bigger 然后将270改为600即可解决。

最后安装成功

6.调试CDH集群

安装完成后会因为电脑过卡,内存过小,硬盘空间不够等等问题导致会有很多运行状态不佳的主机

经过将内存阈值,分配空间阈值,报警阈值调小后即可解决,最后等待一会便可以达到全绿,满足强迫症的你。

输入http://master:8888 可以进入Hue中,使用Hive,Pig和Oozie

在终端输入

spark-shell

可以进入Spark-shell.

我们可以使用

hdfs hadoop jar \/opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar \pi 10 100

来测试

mapreduce

,运行结果如下

本文来自网络,不代表本网站立场,转载请注明出处。http://loadingok.com/1858.html
© 2021 京ICP备2021027871号-1
联系我们

联系我们

18513870113

在线咨询: QQ交谈

邮箱: 1140136143@qq.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部