CDH搭建那些事

来源:互联网 发布:淘宝卖家无法完成发货 编辑:程序博客网 时间:2024/06/10 23:26

一、虚拟机单机环境配置

准备工作

首先在PC机里面安装好VMWare,xshell,xftp

确保电脑的虚拟化技术已开启,Virtualization Technology(VT),中文译为虚拟化技术,英特尔(Intel)和AMD的大部分CPU均支持此技术,名称分别为VT-x、AMD-V。进入BIOS可以查看。

然后打开VMWare软件

 

 

cdh虚拟机配置

 

cdh1

cdh2

cdh3

内存

10g/8g

2g/1.5g

2g/1.5g

磁盘

>=30g

>=30g

>=30g

 

已上是配置cdh的基本配置参数,内存分配8-1.5-1.5是最小分配,对应电脑内存12g。

 

实际生产环境中cdh1 一般配置64g内存

新建虚拟机

关键步骤见下面截图








ISO系统文件同样在云盘中:http://pan.baidu.com/s/1i5FI1hj







安装好后一开始Xshell外部客户端是连接不进去的,通过VMWare来操作Centos配置网络

配置网络

下图不是必须用223网段,只是需要记住你自己的网段就好,方便后面在Linux中配置网络



配置网卡

就多加NETMASK、GATEWAY、IPADDR

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


 

配置好网卡重启服务:

service network restart

 

修改DNS

vi /etc/resolv.conf

nameserver 192.168.223.99

nameserver 8.8.8.8

 

ping 192.168.223.99

ping www.baidu.com

以上两条命令确保网络设置OK

ping命令退出 ctrl+c

 

关闭防火墙

service iptables stop

chkconfig iptables off

 

修改hosts文件

vi /etc/hosts

192.168.223.11       cdh1

192.168.223.12       cdh2

192.168.223.13       cdh3

为了方便后面搭建各种集群

 

 

vi编辑器:

进入后输入是i,保存退出是 按住esc,然后shift+: ,wq 回车

 

 

使用本地源

挂载镜像到/mnt目录下: mount/dev/cdrom /mnt

尝试yum安装: yum -y installtelnet

测试网络连接: ping www.baidu.com

修改nameserver: vi/etc/resolv.conf

nameserver 192.168.1.1

 

配置本地源: vi/etc/yum.repos.d/CentOS-Base.repo

 

[base]

name=CentOS-$releasever - Base

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/

baseurl=file:///mnt/

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

 

如上注释mirrorlist,将baseurl修改为红色内容,其它配置可全部删除。保存退出后执行下面两条命令:

yum makecache

yum -y install telnet

 

成功yum安装telnet后安装man手册和vim编辑器: yum -yinstall man vim

 

 

安装软件JAVA

上传rpm包到虚拟机并安装:rpm -ivh jdk-7u67-linux-x64.rpm

(安装和我一样的cdh版本请使用jdk-7u67-linux-x64.rpm,网盘地址:http://pan.baidu.com/s/1o7FXZ54)

查看java版本: java –version

不用去修改vi /etc/profile,全局的环境变量

对应在公司一台服务器可以会有多人使用,所以我们通常要修改

 

如果全局,就放到/etc/profile.d/jdk.sh

vim /etc/profile.d/jdk.sh

export JAVA_HOME=/usr/java/default

export PATH=$PATH:$JAVA_HOME/bin

 

如果局部,就放到用户的~/.bash_profile

vi ~/.bash_profile

export JAVA_HOME=/usr/java/default

export PATH=$PATH:$JAVA_HOME/bin

执行命令使配置立即生效: source ~/.bash_profile

 

已上配置红色的default是软链接指向latestlatest再指向jdk1.7.0_67

 

ntp时间同步

安装ntp服务:yum -y installntp

设置开机自启动:chkconfig ntpd on

启动ntp服务:service ntpdstart

同步时间:ntpdate -u 1.cn.pool.ntp.org

-u是使用一个非特权端口发送数据包,防火墙问题。但是主动向外产生相关包默认不链接。

 

配置自动同步的服务:vi /etc/ntp.conf

 

server     1.cn.pool.ntp.org

server   127.127.1.0     # local clock

fudge    127.127.1.0 stratum 10

 

二、集群环境准备

克隆多台并修改网络

在创建一台虚拟机后,修改网络,以及安装完JDK后,克隆其他节点只是不到一分钟的事情

虚拟机关闭状态下右击-管理-克隆


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

需要再次修改网卡,(这次删除UUID以及HWADDR两行修改IPADDR的值

删除之前的mac

rm -rf /etc/udev/rules.d/70-persistent-net.rules

修改节点名称

vi /etc/sysconfig/network

init 6 或者 reboot 重启即可

然后还是PING命令确保可以上网

 

配置ssh免密钥登录

在每一台机器上执行:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

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

 

配置cdh1免密钥登录到cdh2:在cdh1上:

scp ~/.ssh/id_dsa.pub root@cdh2:/home

按提示输入yes和cdh2的root登录密码,拷贝成功后在cdh2上执行:

cat /home/id_dsa.pub >>~/.ssh/authorized_keys

在cdh1机器上测试:ssh cdh2

 

同理配置cdh1到cdh3免密钥登录等。。

 

 

 

此处适合建立快照

 

 

三、安装cdh

准备工作

关闭seLinux 强制访问控制(MAC)系统

vim /etc/selinux/config

SELINUX=disabled

 

 

安装配置mysql

yum 安装或者,rpm安装,percona公司的也行

cdh1上安装mysql

# yum -y install mysql-server mysql

# chkconfig mysqld on

# service mysqld start

可以使用

/usr/bin/mysql_secure_installation

执行此命令时注意disallow root login 时输入 n,

# mysql         测试一下

 

mysql> grant all on *.* to 'cdh'@'%'identified by 'cdh' with grant option;

mysql> flush privileges;

cdh是mysql中带授权的用户

# mysql -u cdh -p

 

第三方依赖包

所有节点都安装

yum -y install chkconfig python bind-utilspsmisc libxslt zlib sqlite fuse fuse-libs redhat-lsb cyrus-sasl-plaincyrus-sasl-gssapi

本地yum源

 

ok,可以开始安装了

NAT模式

192.168.223.11      cdh1

192.168.223.12      cdh2

192.168.223.13      cdh3

 

虚拟机配置

 

cdh1

cdh2

cdh3

内存

10g/8g

2g/1.5g

2g/1.5g

磁盘

>=30g

>=30g

>=30g

 

 

 

 

CM的安装

安装包及相关文件下载:http://pan.baidu.com/s/1i43WSgX

CM Server、Agent准备

cdh1、cdh2、cdh3都需要cm

# cd /tmp      (上传cloudera-manager-el6-cm5.4.3_x86_64.tar.gz/tmp目录下)

# mkdir -p /opt/cloudera-manager

# tar xfcloudera-manager-el6-cm5.4.3_x86_64.tar.gz -C /opt/cloudera-manager

 

scp的时候注意相对路径

# cd /opt

# scp -r * cdh2:/opt

# scp -r * cdh3:`pwd`

 

在cdh1、cdh2、cdh3上增加用户

# useradd -r -d/opt/cloudera-manager/cm-5.4.3/run/cloudera-scm-server -M -c "Cloudera SCMUser" cloudera-scm

# id cloudera-scm (查看用户)

 

配置Agent

在cdh1、cdh2、cdh3上配置

# cd/opt/cloudera-manager/cm-5.4.3/etc/cloudera-scm-agent/

修改server_host为cdh1,都指向cm,即cdh1

[General]

# Hostname of the CM server.

server_host=cdh1

或使用sed修改

# sed -i's/server_host=.*/server_host=cdh1/'/opt/cloudera-manager/cm-5.4.3/etc/cloudera-scm-agent/config.ini

 

准备元数据库

在cdh1上准备mysql的jar包

# mkdir -p /usr/share/java

/usr/share/java中放入jar包,将jar包的名字修改为mysql-connector-java.jar,把它放到下面的目录中。当然这一步放在cdh1上做。

 

准备数据库、表

在/opt/cloudera-manager/cm-5.4.3/share/cmf/schema/下有scm_prepare_database.sh --help

解释如下:

scm_prepare_database.sh [options](postgresql|mysql|oracle) database username [password]

-u是创建scm数据库的用户;username是创建了scm库后访问它的用户

# cd/opt/cloudera-manager/cm-5.4.3/share/cmf/schema/

# ./scm_prepare_database.sh-h192.168.223.11 -P3306 -ucdh -pcdh --scm-host cdh1 mysql scm scmuser scmpwd

使用密码为cdh的cdh数据库用户,Scm主机是cdh1,数据库类型是mysql,库名为scm,用户名为scmuser,密码为scmpwd

 

 

Parcel源

准备仓库目录,在cdh1上

# mkdir -p /opt/cloudera/parcel-repo

# chown cloudera-scm:cloudera-scm/opt/cloudera/parcel-repo

cdh1、cdh2、cdh3都需要准备存储parcel的目录

# mkdir -p /opt/cloudera/parcels

# chown cloudera-scm:cloudera-scm/opt/cloudera/parcels

 

制作本地CDH源

安装包

CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel 安装包,里面有几乎所有的组件

CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel.sha 校验码

manifest.json 所有版本文件的元数据,包括校验码。保证本文件中CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel对应的hash码和CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel.sha的一样

 

cdh1上

# cd /opt/cloudera/parcel-repo/

复制CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel、CDH-5.4.0-1.cdh5.4.0.p0.27-el6.parcel.sha和manifest.json到/opt/cloudera/parcel-repo/中

 

至此,准备工作完成。准备启动服务

启动前,再次确认时间同步问题。

建议此处有快照。

 

 

启动

cdh1启动CM Server、Agent

# cd /opt/cloudera-manager/cm-5.4.3/etc/init.d/

# ./cloudera-scm-server start

第一次慢,初始化数据库的表和数据,开启7180端口,可以使用命令查看日志 # tail -f/opt/cloudera-manager/cm-5.4.3/log/cloudera-scm-server/cloudera-scm-server.log

开始启动客户端

# ./cloudera-scm-agent start

9000端口,python的

 

登录

http://192.168.223.11:7180

admin/admin

 

登录后,做到选择主机处就可以停。

选择免费版



排错

/opt/cloudera-manager/cm-5.4.3/log/cloudera-scm-server下面的log

/opt/cloudera-manager/cm-5.4.3/log/cloudera-scm-agent下面的log

 

启动cdh2、cdh3上的agent

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


安装过程中的错误

2016-08-20 12:53:25,455 INFOWebServerImpl:org.mortbay.log: jetty-6.1.26.cloudera.4

2016-08-20 12:53:25,470 INFOWebServerImpl:org.mortbay.log: Started SelectChannelConnector@0.0.0.0:7180

2016-08-20 12:53:25,470 INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl:Started Jetty server.

2016-08-20 12:53:44,056 ERRORParcelUpdateService:com.cloudera.parcel.components.ParcelDownloaderImpl: Unableto retrieve remote parcel repository manifest

这个是没有联网导致的,不要紧,本次使用离线安装的方式

 

 

 

 

 

选择主机后的配置

选择本地源:

出现下图需要等待较长时间



如上图,安装到这里报错,按提示修改2

1、时间同步问题

2swappiness问题

# echo "vm.swappiness = 0">> /etc/sysctl.conf

# sysctl -p

# cat /proc/sys/vm/swappiness

echo "vm.swappiness = 0" >>/etc/sysctl.conf ;sysctl -p;cat /proc/sys/vm/swappiness

命令执行完在浏览器点击重新运行,主机正确性全部通过,点击完成按钮


如上图,选择“自定义服务”自定义安装:选择 HDFS、YARN、ZooKeeper


如上图红色部分:

HDFS中SecondaryNameNode不用关心,后面做成高可用HA

DataNode选择所有主机

ZooKeeper中选择所有主机


默认配置即可

 

 

 


如上图,配置完成后有红框所标记的应用以及右边所示图表

 

刚进入页面时会有错误,下图所示的绿色圆灯可能全是红色,稍等几分钟之后会变为绿色(长时间为红色请点击查看日志,并确认机器的时间是否一致)

 

 

安装hive


 


 



上图所示先在mysql中创建hive库:用户名hive,密码hive:

create databasehive DEFAULT CHARACTER SET utf8;

grant all onhive.* to 'hive'@'%' IDENTIFIED by 'hive';

flush PRIVILEGES;

 

 


 

 

服务添加完毕返回主页集群中出现hive

 

 


安装oozie

 

 

上图所示先在mysql中创建oozie库:用户名oozie,密码oozie

create databaseoozie DEFAULT CHARACTER SET utf8;

grant all onoozie.* to 'oozie'@'%' IDENTIFIED by 'oozie';

flush PRIVILEGES;

 

 

 

 

 

 

 

 

 

安装hue

 

 

 

 

 

相关脚本

提供一些方便的脚本~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

scm.sh

#!/bin/bash

# create by xw 20160315

[ $# -ne 1 ] && exit 100

ACTION=$1

/opt/cloudera-manager/cm-5.4.3/etc/init.d/cloudera-scm-server$ACTION

 

 

 

sagent.sh

#!/bin/bash

# create by xw 20160315

[ $# -ne 1 ] && exit 100

ACTION=$1

for x in {1..3}

do

   ssh root@cdh${x} /opt/cloudera-manager/cm-5.4.3/etc/init.d/cloudera-scm-agent$ACTION

   if [ $? -eq 0 ] ;then

       echo "cdh${x} Agent $ACTION ok"

   else

       echo "cdh${x} Agent $ACTION failed"

   fi

done

 

 

 

sdate

#!/bin/bash

# created by xw 20160315

for x in {1..3}

do

 echo"======== cdh $x time ========="

       ssh root@cdh${x} date

done

 

 

sjps

#!/bin/bash

# created by xw 20160315

for x in {1..3}

do

   echo -e "====cdh${x}'s jps info===="

   ssh root@cdh$x jps

   result=`ssh cdh$x jps | wc -l`

   echo $(($result-1))   

done

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


0 0