二、安装Hadoop及其所需的服务
1. CDH安装概述


CDH的全称是Cloudera's Distribution Including Apache Hadoop,是Cloudera公司的Hadoop分发版本。有三种方式安装CDH:


. Path A - 通过Cloudera Manager自动安装


. Path B - 使用Cloudera Manager Parcels或Packages安装


. Path C - 使用Cloudera Manager Tarballs手工安装


不同方式的安装步骤总结如下:


步骤

 

 

 

步骤 1: 安装 JDK

Cloudera Manager Server、Management Service和CDH需要安装JDK。

有两个选项:

. 使用Cloudera Manager安装程序在集群中的所有主机的/usr/java下安装一个Oracle JDK的支持版本。

. 使用命令行在所有主机上安装一个Oracle JDK的支持版本,并且设置JAVA_HOME环境变量为JDK的安装目录。

步骤 2: 设置数据库

Cloudera Manager Server、Cloudera Management Service和某些CDH的可选服务需要安装、配置和启动数据库。

有两个选项:

. 使用Cloudera Manager安装程序安装、配置和启动一个内嵌的PostgreSQL数据库。

. 使用诸如yum这样的命令行包安装工具安装、配置和启动数据库。

 

Path A

Path B

Path

步骤 3: 安装Cloudera Manager服务器

在一台主机上安装和启动Cloudera Manager服务器。

使用Cloudera Manager安装程序安装服务器。需要该主机的sudo权限并能访问互联网。

使用Linux包安装命令(如yum)安装Cloudera Manager服务器。

修改数据库属性。

使用service命令启动Cloudera Manager服务器。

使用Linux命令解包,并且使用service命令启动服务。

步骤 4: 安装Cloudera Manager代理

在所有主机上安装并启动Cloudera Manager代理。

使用Cloudera Manager安装向导在所有主机上安装代理。

有两个选项:

. 使用Linux包安装命令(如yum)在所有主机上安装Cloudera Manager代理。

. 使用Cloudera Manager安装向导在所有主机上安装代理。

使用Linux命令在所有主机上解包并启动代理。

步骤 5: 安装CDH和服务

在所有主机上安装CDH及其服务。

使用Cloudera Manager安装向导安装CDH及其服务。

有两个选项:

. 使用Cloudera Manager安装向导安装CDH及其服务。

. 使用Linux包安装命令(如yum)在所有主机上安装CDH及其服务。

使用Linux命令在所有主机上解包,并使用service命令启动CDH及其服务。

步骤 6: 建立、配置并启动CDH和服务

在所有主机上配置并启动CDH及其服务。

使用Cloudera Manager安装向导给主机赋予角色并配置集群。许多配置是自动的。

使用Cloudera Manager安装向导给主机授予角色并配置集群。许多配置是自动的。

使用Cloudera Manager安装向导给主机赋予角色并配置集群。许多配置是自动的。也可以使用Cloudera Manager API管理一个集群,这对于脚本预配置部署是很有用的。

2. 实验环境

主机信息:


主机名                      

IP地址                                              

CDH1

172.16.1.101

CDH2

172.16.1.102

CDH3

172.16.1.103

CDH4

172.16.1.104


硬件配置:


每台主机:CPU4核、内存8G、硬盘100G



软件版本:


名称                                                    

版本                                                                               

操作系统

CentOS release 6.4 (Final) 64位

JDK

1.7.0_80

数据库

MySQL 5.6.14

JDBC

MySQL Connector Java 5.1.38

Cloudera Manager

5.7.0

CDH

5.7.0


3. 安装配置


(1)安装前准备(都是使用root用户在集群中的所有4台主机配置)


. 从以下地址下载所需要的安装文件


http://archive.cloudera.com/cm5/cm/5/cloudera-manager-el6-cm5.7.0_x86_64.tar.gz http://archive.cloudera.com/cdh5/parcels/5.7/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel


http://archive.cloudera.com/cdh5/parcels/5.7/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha1


http://archive.cloudera.com/cdh5/parcels/5.7/manifest.json


  • 使用下面的命令检查OS依赖包,xxxx换成包名

rpm -qa | grep xxxx


以下这些包必须安装:


chkconfig


python (2.6 required for CDH 5)


bind-utils


psmisc


libxslt


zlib


sqlite


cyrus-sasl-plain


cyrus-sasl-gssapi


fuse


portmap (rpcbind)


fuse-libs


redhat-lsb


  • 配置域名解析

vi /etc/hosts


# 添加如下4行内容


172.16.1.101 cdh1


172.16.1.102 cdh2


172.16.1.103 cdh3


172.16.1.104 cdh4


  • 安装JDK

CDH5推荐的JDK版本是1.7.0_67、1.7.0_75、1.7.0_80,这里安装1.7.0_80


注意:所有主机要安装相同版本的JDK;安装目录为/usr/java/jdk-version


mkdir /usr/java/


mv jdk-7u80-linux-x64.tar.gz /usr/java/


cd /usr/java/


tar -zxvf jdk-7u80-linux-x64.tar.gz


chown -R root:root jdk1.7.0_80/


vi /etc/profile.d/java.sh


# 添加如下3行内容


export JAVA_HOME=/usr/java/jdk1.7.0_80


export CLASSPATH=.:$JAVA_HOME/jre/lib/*:$JAVA_HOME/lib/*


export PATH=$PATH:$JAVA_HOME/bin


# 使环境变量生效


source /etc/profile.d/java.sh


  • 安装、配置并启动NTP服务

yum install ntp


chkconfig ntpd on


ntpdate -u 202.112.29.82


vi /etc/ntp.conf


# 添加如下8行内容


driftfile /var/lib/ntp/drift


restrict default kod nomodify notrap nopeer noquery


restrict -6 default kod nomodify notrap nopeer noquery


restrict 127.0.0.1


restrict -6 ::1


server 202.112.29.82


includefile /etc/ntp/crypto/pw


keys /etc/ntp/keys


# 启动NTP服务


service ntpd start


  • 建立CM用户

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


usermod -a -G root cloudera-scm


echo USER=\"cloudera-scm\" >> /etc/default/cloudera-scm-agent


echo "Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin" >> /etc/sudoers


  • 安装配置MySQL数据库(为了后面配置方便,这里每个主机都装了)

rpm -ivh MySQL-5.6.14-1.el6.x86_64.rpm


vi /etc/profile.d/mysql.sh


# 添加如下2行内容


export MYSQL_HOME=/home/mysql/mysql-5.6.14


export PATH=$PATH:$MYSQL_HOME/bin


# 使环境变量生效


source /etc/profile.d/mysql.sh


# 修改root密码


mysqladmin -u root password


# 编辑配置文件


vi /etc/my.cnf


# 内容如下


[mysqld]


transaction-isolation = READ-COMMITTED


log_bin=/data/mysql_binary_log


binlog_format = mixed


innodb_flush_log_at_trx_commit  = 2


innodb_flush_method = O_DIRECT


key_buffer = 16M


key_buffer_size = 32M


max_allowed_packet = 32M


thread_stack = 256K


thread_cache_size = 64


query_cache_limit = 8M


query_cache_size = 64M


query_cache_type = 1


max_connections = 550


read_buffer_size = 2M


read_rnd_buffer_size = 16M


sort_buffer_size = 8M


join_buffer_size = 8M


innodb_flush_log_at_trx_commit  = 2


innodb_log_buffer_size = 64M


innodb_buffer_pool_size = 4G


innodb_thread_concurrency = 8


innodb_log_file_size = 512M


[mysqld_safe]


log-error=/data/mysqld.err


pid-file=/data/mysqld.pid


sql_mode=STRICT_ALL_TABLES



# 添加开机启动


chkconfig mysql on


# 启动MySQL


service mysql restart


# 根据需要建立元数据库


mysql -u root -p -e "create database hive DEFAULT CHARACTER SET utf8;create database rman DEFAULT CHARACTER SET utf8;create database oozie DEFAULT CHARACTER SET utf8;grant all on *.* TO 'root'@'%' IDENTIFIED BY 'mypassword';"


  • 安装MySQL JDBC驱动

tar -zxvf mysql-connector-java-5.1.38.tar.gz 


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


  • 配置免密码ssh(这里配置了任意两台机器都免密码)

# 分别在四台机器上生成密钥对:


cd ~


ssh-keygen -t rsa


# 然后一路回车


# 在cdh1上执行:


cd ~/.ssh/


ssh-copy-id cdh1


scp /root/.ssh/authorized_keys cdh2:/root/.ssh/


# 在cdh2上执行:


cd ~/.ssh/


ssh-copy-id cdh2


scp /root/.ssh/authorized_keys cdh3:/root/.ssh/


#在cdh3上执行:


cd ~/.ssh/


ssh-copy-id cdh3


scp /root/.ssh/authorized_keys cdh4:/home/grid/.ssh/


#在cdh4上执行:


cd ~/.ssh/


ssh-copy-id cdh4


scp /root/.ssh/authorized_keys cdh1:/root/.ssh/


scp /root/.ssh/authorized_keys cdh2:/root/.ssh/


scp /root/.ssh/authorized_keys cdh3:/root/.ssh/



(2)在cdh1上安装Cloudera Manager


tar -xzvf cloudera-manager*.tar.gz -C /opt/


# 建立cm数据库


/opt/cm-5.7.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -pmypassword --scm-host localhost scm scm scm


# 配置cm代理


vi /opt/cm-5.7.0/etc/cloudera-scm-agent/config.ini 


# 将cm主机名改为cdh1


server_host=cdh1


# 将Parcel相关的三个文件拷贝到/opt/cloudera/parcel-repo


cp CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel /opt/cloudera/parcel-repo/


cp CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha1 /opt/cloudera/parcel-repo/


cp manifest.json /opt/cloudera/parcel-repo/


# 改名


mv /opt/cloudera/parcel-repo/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha


# 修改属主


chown -R cloudera-scm:cloudera-scm /opt/cloudera/


chown -R cloudera-scm:cloudera-scm /opt/cm-5.7.0/


# 将/opt/cm-5.7.0目录拷贝到其它三个主机


scp -r -p /opt/cm-5.7.0 cdh2:/opt/


scp -r -p /opt/cm-5.7.0 cdh3:/opt/


scp -r -p /opt/cm-5.7.0 cdh4:/opt/



(3)在每个主机上建立/opt/cloudera/parcels目录,并修改属主


mkdir -p /opt/cloudera/parcels


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



(4)在cdh1上启动cm server


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


# 此步骤需要运行一些时间,用下面的命令查看启动情况


tail -f /opt/cm-5.7.0/log/cloudera-scm-server/cloudera-scm-server.log



(5)在所有主机上启动cm agent


mkdir /opt/cm-5.7.0/run/cloudera-scm-agent


chown cloudera-scm:cloudera-scm /opt/cm-5.7.0/run/cloudera-scm-agent


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



(6)登录cm控制台,安装配置CDH5及其服务


打开控制台


http://172.16.1.101:7180/


页面如下图所示。


搭建artifactory仓库_mysql

缺省的用户名和密码都是admin,登录后进入欢迎页面。勾选许可协议,如下图所示,点继续。


搭建artifactory仓库_mysql_02

进入版本说明页面,如下图所示,点继续。


搭建artifactory仓库_cloudera_03

进入服务说明页面,如下图所示,点继续。


搭建artifactory仓库_mysql_04

进入选择主机页面,如下图所示,全选四个主机,点继续。


搭建artifactory仓库_搭建artifactory仓库_05

进入选择存储库页面,如下图所示,点继续。


搭建artifactory仓库_java_06

进入集群安装页面,如下图所示,点继续。


搭建artifactory仓库_搭建artifactory仓库_07

进入验证页面,如下图所示,点完成。


搭建artifactory仓库_java_08

进入集群设置页面,如下图所示,根据需要选择服务,点继续。


搭建artifactory仓库_搭建artifactory仓库_09

进入自定义角色分配页面,如下图所示,保持不变,点继续。


搭建artifactory仓库_搭建artifactory仓库_10

进入数据库设置页面,填写相关信息,点测试连接,如下图所示,点继续。


搭建artifactory仓库_搭建artifactory仓库_11

进入审核更改页面,保持不变,点继续。



进入首次运行页面,等待运行完,如下图所示,点继续。


搭建artifactory仓库_搭建artifactory仓库_12

进入安装成功页面,如下图所示,点完成。


搭建artifactory仓库_java_13

进入安装成功页面,如下图所示。


搭建artifactory仓库_mysql_14

至此,CDH安装完成,主机和角色对应如下表所示。


服务                                           

角色                                                                          

主机                                     

HDFS

DataNode

cdh1

cdh3

cdh4

NameNode

cdh2

SecondaryNameNode

cdh2

Hive

Hive Metastore Server

cdh2

HiveServer2

cdh2

Hue

Hue Server

cdh2

Impala

Impala Catalog Server

cdh2

Impala Daemon

cdh1

cdh3

cdh4

Impala StateStore

cdh2

Oozie

Oozie Server

cdh2

Sqoop 2

Sqoop 2 Server

cdh2

YARN

JobHistory Server

cdh2

NodeManager

cdh1

cdh3

cdh4

ResourceManager

cdh2

CDH的官方安装文档URL地址为:

http://www.cloudera.com/documentation/enterprise/latest/topics/installation.html