码迷,mamicode.com
首页 > 其他好文 > 详细

基于Hadoop生态圈的数据仓库实践 —— 环境搭建(二)

时间:2016-06-28 13:11:08      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

二、安装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/
页面如下图所示。
技术分享
缺省的用户名和密码都是admin,登录后进入欢迎页面。勾选许可协议,如下图所示,点继续。
技术分享
进入版本说明页面,如下图所示,点继续。
技术分享
进入服务说明页面,如下图所示,点继续。
技术分享
进入选择主机页面,如下图所示,全选四个主机,点继续。
技术分享
进入选择存储库页面,如下图所示,点继续。
技术分享
进入集群安装页面,如下图所示,点继续。
技术分享
进入验证页面,如下图所示,点完成。
技术分享
进入集群设置页面,如下图所示,根据需要选择服务,点继续。
技术分享
进入自定义角色分配页面,如下图所示,保持不变,点继续。
技术分享
进入数据库设置页面,填写相关信息,点测试连接,如下图所示,点继续。
技术分享
进入审核更改页面,保持不变,点继续。

进入首次运行页面,等待运行完,如下图所示,点继续。
技术分享
进入安装成功页面,如下图所示,点完成。
技术分享
进入安装成功页面,如下图所示。
技术分享
至此,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

基于Hadoop生态圈的数据仓库实践 —— 环境搭建(二)

标签:

原文地址:http://blog.csdn.net/wzy0623/article/details/51768968

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!