admin 管理员组

文章数量: 1086019


2024年12月24日发(作者:网站制作快速入口)

hadoop2.7.1安装手册

1、准备阶段述

·安装包

·jdk1.6以上版本,这里统一使用jdk1.8版本

·CentOS-6.4安装包

2、安装步骤概述

2.1、安装Centos-6.4系统

2.2、安装jdk1.8

2.4、 如若使用64位机器,请编译hadoop-2.7.1文件

2.4、zookeeper安装,单机安装以及集群安装

2.5、关闭linux防火墙,安装已编译好的hadooop安装包以及配置QJM,或

者配置High Availability With NFS,验证hadoop是否安装成功

2.6、sqoop的编译与安装

2.7、Mysql安装

2.8、HBASE安装

2.9、HIVE安装

3、集群规划

集群规划:

主机名

hadoop01

IP

172.16.112.113

安装的软件

jdk、hadoop

运行的进程

NameNode、

DFSZKFailoverController(zkfc

)

hadoop02

172.16.112.114

jdk、hadoop

NameNode、

DFSZKFailoverController(zkfc

)

hadoop03

hadoop04

hadoop05

172.16.112.115

172.16.112.116

172.16.112.117

jdk、hadoop

jdk、hadoop

jdk

hadoop

zookeeper

ResourceManager

ResourceManager

DataNode

NodeManager

JournalNode

QuorumPeerMain

hadoop06

172.16.112.118

jdk

hadoop

zookeeper

DataNode

NodeManager

JournalNode

QuorumPeerMain

hadoop07

172.16.112.119

jdk

hadoop

zookeeper

DataNode

NodeManager

JournalNode

QuorumPeerMain

4、安装具体步骤

4.1、安装

Centos

-6.4系统

(1)、下载64位的CentOS-6.4镜像文件

CentOS-6.4-x86_

CentOS-6.4-x86_

系统安装只用到CentOS-6.4-x86_这个镜像,第二个镜像是系

统自带的软件安装包

下载完成之后,使用光盘刻录软件将ISO镜像文件刻录在CD或者DVD光盘

里得到一张安装光盘

(2)、安装CentOS

·使用安装介质启动电脑出现如下界面

·选择Install or upgrade an existing system,并跳过media test

·出现引导界面,点击next

·语言选择,选“English”,以防止出现乱码

·键盘布局选择:h

·选择“Basic Storage Devies”,点击next

·询问是否忽略所有数据,新电脑安装系统选择"Yes,discard any data"

·Hostname填写

·网络设置安装图示顺序点击就可以了

·时区可以在地图上点击,选择“shanghai”并取消System clock uses UTC前面的对

·设置root的密码

·硬盘分区,一定要按照图示点选

·调整分区,必须要有/home这个分区,如果没有这个分区,安装部分软件会出

现不能安装的问题

·询问是否格式化分区

·将更改写入到硬盘

·引导程序安装位置

·选择安装模式选择Minimal Desktop安装模式,并且选择现在进行客户化定制

在进行“客户化定制时”可直接next,不过在language support时,选择

“Chinese Support”,如下图:

·

(3)、修改虚拟机主机名并建立IP地址与主机名之间的映射关系,最后重启

虚拟机

以root权限登录

·修改主机名:vi /etc/sysconfig/network ;分别修改HOSTNAME的值,为对

应的主机名hadoop01、hadoop02、hadoop03

·建立IP地址与主机名之间的映射关系:vi /etc/hosts;

在hadoop01虚拟机的hosts文件中添加如下字段:

172.16.112.113 hadoop01

在hadoop02虚拟机的hosts文件中添加如下字段:

172.16.112.114 hadoop02

在hadoop03虚拟机的hosts文件中添加如下字段:

172.16.112.115 hadoop03

在hadoop02虚拟机的hosts文件中添加如下字段:

172.16.112.116 hadoop04

在hadoop02虚拟机的hosts文件中添加如下字段:

172.16.112.117 hadoop05

在hadoop02虚拟机的hosts文件中添加如下字段:

172.16.112.118 hadoop06

在hadoop02虚拟机的hosts文件中添加如下字段:

172.16.112.119 hadoop07

4.2、安装jdk1.8

(1)、在hadoop家目录下创建software文件夹,并使用Secure CRT工具,点击

Secure FX将所需要的jdk安装包上传到linux系统上的software文件中

·切换回当前用户:su – hadoop01

·创建目录:mkdir /home/hadoop01/software

·上传文件:(以二进制文件形式传输)

(2)、安装jdk1.8

·进入jdk1.8存放目录:cd /home/hadoop01/software/

·切换为root用户:su,输入密码

·安装jdk1.8: rpm -ivh

(3)、配置jdk环境变量

·设置环境变量:vi /etc/profile

·在profile文件中设置JAVA_HOME、CLASS_PATH、PATH三个环境变量:

# JAVA_HOME

export JAVA_HOME=/usr/java/jdk1.8.0_45

# CLASSPATH

export

CLASSPATH=.:$JAVA_HOME/jre/lib/:$JAVA_HOME/lib/:$JAVA_HO

ME/lib/

#PATH

export PATH=$PATH:$JAVA_HOME/bin

·启动配置项:source /etc/profile

·验证jdk是否安装成功:java –version

如图:安装成功

4.3编译hadoop2.7.1

(1)、实现ssh登录,公钥自联

·登录root用户:su ,输入密码

·打开公钥验证服务:

#RSAAuthentication yes

#PubkeyAuthentication yes

#AuthorizedKeysFile .ssh/authorized_keys

去掉这也项的#

·重启ssh服务:service sshd restart

·以hadoop01账户登录linux系统:su – hadoop01

·启动ssh协议:rpm -qa|grep openssh

rpm -qa|grep rsync

·生成密钥对:ssh-keygen -t rsa -P '' 直接回车

·将公钥写入授权文件:cat ~/.ssh/id_ >> authorized-keys

·修改授权文件权限:

授权文件:chmod 600 ~/.ssh/authorized-keys

·验证ssh登录: ssh localhost

多次ssh登录到localhost用户观察是否还需要输入密码

如图时,成功

(2)、将hadoop01作为Master节点,配置ssh免密码登陆,使得hadoop01无密

码登录所有的slave节点:

·将其他两台hadoop02,hadoop03,hadoop04,hadoop05,hadoop06,hadoop07

实现一次自联过程

·分别修改hadoop02,hadoop03,hadoop04,hadoop05,hadoop06,hadoop07

节点上.ssh文件的权限和authorized-keys文件的权限:

chmod 700 ~/.ssh

chmod 600 authorized-keys

·将hadoop01节点的公钥传给hadoop02,hadoop03,hadoop04,hadoop05,

hadoop06,hadoop07:

scp ~/.ssh/id_ hadoop@hadoop02:~/

scp ~/.ssh/id_ hadoop@hadoop03:~/

scp ~/.ssh/id_ hadoop@hadoop04:~/

scp ~/.ssh/id_ hadoop@hadoop05:~/

scp ~/.ssh/id_ hadoop@hadoop06:~/

scp ~/.ssh/id_ hadoop@hadoop07:~/

·将hadoop01的公钥追加到hadoop02,hadoop03,hadoop04,hadoop05,

hadoop06,hadoop07的authorized-keys中:

cat ~/id_ >> ~/.ssh/authorized-keys

·验证是否实现ssh登录

(3)、编译hadoop-2.7.1环境

·所需软件:maven、protobuf、openssl库、CMake、ant

·安装maven:

1、解压缩压缩包:

tar -zxvf

2、设置Maven环境变量:

#MAVEN

ssh hadoop02

ssh hadoop03

ssh hadoop04

ssh hadoop05

ssh hadoop06

ssh hadoop07

export MAVEN_HOME=/home/hadoop/software/apache-maven-3.3.3

#environment path

export PATH= /home/hadoop/software/apache-maven-3.3.3/bin

3、生效

source /etc/profile

4、验证maven

mvn –v

·安装protobuf-2.5.0

1、 安装依赖包

以root身份登录

yum install gcc-c++

2、 解压protobuf-2.5.0安装包

tar -zxvf

3、 进入protobuf-2.5.0文件夹,进行如下操作:

./configure

make

make check

make install

ldconfig

4、 修改环境变量:

vi /etc/profile

#protobuf

export LD_LIBRARY_PATH=/home/hadoop/software/protobuf-2.5.0

5、 生效

source /etc/profile

注意:配置/etc/profile,在虚拟机重启后,可能配置会失效,所

以重启后,需要再次执行source操作。

6、 安装

·解压安装包:tar -zxvf

·配置环境变量:vi /etc/profile

#Ant

export ANT_HOME=/home/hadoop/software/apache-ant-1.9.4

#PATH

export PATH=

$ANT_HOME/bin

·生效

source /etc/profile

·校验

ant -version

7、 编译hadoop-2.7.1

将解压缩,并进入hadoop-2.7.1-src文件夹

执行命令:mvn package -Pdist,native -DskipTests -Dtar

8、 在目录hadoop-2.4.0-src/hadoop-dist/target下有文件:

编译成功

4.4 Zookeeper 3.2 单机安装

本篇為Zookeeper 的獨立測試 (不包含搭配 Hadoop, Hbase 的協同合作)

• 測試於 Ubuntu 9.10 , Zookeeper 為 3.2.1 版,java 版本為 1.6 ,並且

於環境變數已經加入 JAVA_HOME=/usr/lib/jvm/java-6-sun

• 設定好 ssh localhost 免密碼

安裝目錄

工作目錄

/opt/zookeeper/

/var/zookeeper/

安装步骤

1. 下載 zookeeper 最新版,並且解壓縮到 /opt/zookeeper

2. 新建 /var/zookeeper 當作 zookeeper的工作目錄,並確實設定可讀寫權限

新建配置文档 /opt/zookeeper/conf/

tickTime=2000

dataDir=/var/zookeeper

clientPort=2181

$ cd /local/software/zookeeper/;ln -s zookeeper-3.3.1/

zookeeper

$ export

ZOOKEEPER_INSTALL=/local/software/zookeeper/zookeeper/

$ export PATH=$PATH:$ZOOKEEPER_INSTALL/bin

接着执行

$ cd /opt/zookeeper

$ bin/ start

完成启动

运行 netstat -tnl

可以看到 2181 端口已打开

关闭

$bin/ stop

执行测试

接着执行

$bin/ -server 127.0.0.1:2181

基本测试

[zkshell: 0] help

[zkshell: 8] ls /

[zookeeper]

[zkshell: 9] create /zk_test my_data

Created /zk_test

[zkshell: 11] ls /

[zookeeper, zk_test]

[zkshell: 12] get /zk_test

my_data

[zkshell: 14] set /zk_test junk

[zkshell: 15] get /zk_test

junk

[zkshell: 16] quit

·

zooKeeper配置文件参数

参考:

/zookeeper/docs/r3.3.1/#sc_configura

tion

ZooKeeper Server的行为受配置文件的控制,的设计目标是让所

有服务器都可以使用相同的配置文件,如果需要使用不同的配置文件,需要保证

关于cluster部分的参数相同。下面是具体的参数:

最小必要配置的参数

clientPort

服务的监听端口

dataDir

用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件

夹里(注意:一个配置文件只能包含一个dataDir字样,即使它被注释掉了。)

tickTime

心跳时间,为了确保连接存在的,以毫秒为单位,最小超时时间为两个心跳时间

高级配置参数

dataLogDir

用于单独设置transaction log的目录,transaction log分离可以避免和普通log还

有快照的竞争

globalOutstandingLimit

client请求队列的最大长度,防止内存溢出,默认值为1000

preAllocSize

预分配的Transaction log空间为block个proAllocSize KB,默认block为64M,一

般不需要更改,除非snapshot过于频繁

snapCount

在snapCount个snapshot后写一次transaction log,默认值是100,000

traceFile

用于记录请求的log,打开会影响性能,用于debug的,最好不要定义

maxClientCnxns

最大并发客户端数,用于防止DOS的,默认值是10,设置为0是不加限制

clientPortBindAddress

3.3.0后新增参数,可是设置指定的client ip以及端口,不设置的话等于

ANY:clientPort

minSessionTimeout

3.3.0后新增参数,最小的客户端session超时时间,默认值为2个tickTime,单位

是毫秒

maxSessionTimeout

3.3.0后新增参数,最大的客户端session超时时间,默认值为20个tickTime,单

位是毫秒

集群参数

electionAlg

用于选举的实现的参数,0为以原始的基于UDP的方式协作,1为不进行用户验证

的基于UDP的快速选举,2为进行用户验证的基于UDP的快速选举,3为基于TCP

的快速选举,默认值为3

initLimit

多少个心跳时间内,允许其他server连接并初始化数据,如果ZooKeeper管理的

数据较大,则应相应增大这个值

leaderServes

leader是否接受客户端连接。默认值为yes。 leader负责协调更新。当更新吞吐

量远高于读取吞吐量时,可以设置为不接受客户端连接,以便leader可以专注于

同步协调工作。默认值是yes,说明leader可以接受客户端连接。(注意:当集群

中有超过3台ZooKeeper Server时,强烈建议打开leader选举)

server.x=[hostname]:nnnnn[:nnnnn], etc

配置集群里面的主机信息,其中server.x的x要写在myid文件中,决定当前机器

的id,第一个port用于连接leader,第二个用于leader选举。如果electionAlg为0,

则不需要第二个port。hostname也可以填ip。

syncLimit

多少个tickTime内,允许follower同步,如果follower落后太多,则会被丢弃。

group.x=nnnnn[:nnnnn]

weight.x=nnnnn

这两个是用于集群分组的参数,暂时只有3台机器,没仔细研究,先给个例子看

看吧

group.1=1:2:3

group.2=4:5:6

group.3=7:8:9

weight.1=1

weight.2=1

weight.3=1

weight.4=1

weight.5=1

weight.6=1

weight.7=1

weight.8=1

weight.9=1

用于用户认证的选项

不安全选项

·

ZooKeeper集群部署管理

1. 约定:

a. ZooKeeper Server,[server1]的ip为172.16.104.241,[server2]的ip为

172.16.104.242,[server3]的ip为172.16.104.243。

b. [zk_dir]表示ZooKeeper的根目录,假设为/home/user/zookeeper

c. [zk_data]表示ZooKeeper数据文件存放地址,假设为/home/user/zk_data

d. [zk_trlog]表示ZooKeeper的Transaction Log目录,假设为

/home/user/zk_trlog

e. [zk_logs]表示ZooKeeper的一半log目录,假设为/home/user/zk_logs

2. 服务端环境要求:

a. Linux或者其他类UNIX系统(Windows及Mac OS只能作为开发环境,不能做生

产环境)

b. JDK 1.6或更高

c. Server管理需要netcat或者telnet

3. 获得ZooKeeper发行版:

访问:/zookeeper/,目前ZooKeeper

的最新版本为3.3.1版本(2010年5月17日发行)

4. 修改配置文件:

因为ZooKeeper的配置文件设计目标是可供所有机器使用的通用配置文件,因此

可以现在一台机器上写完,然后复制到其他server上。在[zk_dir]/conf下新建

文件,详细参数说明参见附录,这里给出一个配置文件的例子:

# BASIC SETTINGS

# The number of milliseconds of each tick

tickTime=2000

# the port at which the clients will connect

clientPort=2181

# the directory where the snapshot is stored.

dataDir=/home/user/zk_logs/zk_data

# the directory where the transaction log is stored

dataLogDir=/home/user/zk_logs/zk_trog

# BASIC SETTINGS END

##########################################################

# CLUSTER SETTINGS

# The number of ticks that the initial

# synchronization phase can take

initLimit=10

# The number of ticks that can pass between

# sending a request and getting an acknowledgement

syncLimit=5

# CLUSTER SERVER CONFIG

server.1=192.168.1.201:2888:3888

server.2=192.168.1.202:2888:3888

server.3=192.168.1.203:2888:3888

# CLUSTER SETTINGS END

其中的# CLUSTER SERVER CONFIG部分为集群的三台机器的ip

5. 为每台服务器设置id:

在[server1]的[zk_data]目录下新建myid文件,纯文本ASCII编码文件即可,内容

为1,也就是配置文件中server.x中的x的值。其他两台机器上依此类推,也新建

内容为自己id的myid文件。

6. 配置log文件信息:

ZooKeeper采用log4j记录日志,ties文件在[zk_dir]/conf目录下,

编辑[zk_dir]/conf/ties文件,按需要配置,这里给出一个在文件里

记录DEBUG, INFO, ERROR等级,并且文件每天重命名一次的例子:

#

# ZooKeeper Logging Configuration

#

gger=INFO, DEBUG, ERROR

# DEBUG

=ollingFileAppender

old=DEBUG

=nLayout

sionPattern=%d{ISO8601} - %-5p

[%t:%C{1}@%L] - %m%n

ttern='.'yyyy-MM-dd'.log'

=true

=/home/user/zk_logs/zk_

# INFO

=ollingFileAppender

old=INFO

=nLayout

sionPattern=%d{ISO8601} - %-5p

[%t:%C{1}@%L] - %m%n

ttern='.'yyyy-MM-dd'.log'

=true

=/home/user/zk_logs/zk_

# ERROR

=ollingFileAppender

old=ERROR

=nLayout

sionPattern=%d{ISO8601} - %-5p

[%t:%C{1}@%L] - %m%n

ttern='.'yyyy-MM-dd'.log'

=true

=/home/user/zk_logs/zk_

7. Server简单管理命令:

现在可以启动ZooKeeper服务器了:

# Server启动命令

$ [zk_dir]/bin/ start

# Server重启

$ [zk_dir]/bin/ restart

# Server停止

$ [zk_dir]/bin/ stop

# Server基本状态查看,需要netcat

$ [zk_dir]/bin/ status

8. ZooKeeper的管理命令:

需要使用telnet或者netcat连接到ZooKeeper Server的clientPort端口,命令均为

4个字母,命令及功能如下:

conf

3.3.0新增: 打印server配置文件内容

cons

3.3.0新增:列出连接到本Server的Client的完整连接及Session信息。包括分组发

送/接收信息,session id,操作延时,最后一个操作的执行等

crst

3.3.0新增: 重置所有连接/session

dump

Lists the outstanding sessions and ephemeral nodes. 只在leader server上有效。

envi

屏幕打印server的环境变量

ruok

测试server是否处于无错状态。 如果状态健康则返回”imok”,否则无任何结果。

A response of “imok” does not necessarily indicate that the server has joined

the quorum, just that the server process is active and bound to the specified

client port. Use “stat” for details on state wrt quorum and client connection

information.

srst

Reset server statistics.

srvr

3.3.0新增: Lists full details for the server.

stat

Lists brief details for the server and connected clients.

wchs

3.3.0新增: Lists brief information on watches for the server.

wchc

3.3.0新增: Lists detailed information on watches for the server, by session.

This outputs a list of sessions(connections) with associated watches (paths).

Note, depending on the number of watches this operation may be expensive

(ie impact server performance), use it carefully.

wchp

3.3.0新增: Lists detailed information on watches for the server, by path. This

outputs a list of paths (znodes) with associated sessions. Note, depending on

the number of watches this operation may be expensive (ie impact server

performance), use it carefully.

4.5 oop-2.7.1安装

这里要涉及到的配置文件有7个:

/Hadoop-2.7.1/etc/hadoop/

/Hadoop-2.7.1/etc/hadoop/slaves

/Hadoop-2.7.1/etc/hadoop/

/Hadoop-2.7.1/etc/hadoop/

/Hadoop-2.7.1/etc/hadoop/

/Hadoop-2.7.1/etc/hadoop/

并且配置之前,需要在Cluster文件系统创建以下文件夹,用于存放命名空间以及数据信息。

~/dfs/name

~/dfs/data

~/temp

~/etc/hadoop/slave

每台机器的配置基本相同,所以现在作为master的hadoop01上进行部署,最终在复制到

其他机器上去。

(1)、解压缩文件,注意完整的解压缩路径统一定为

/home/hadoop/software/hadoop-2.7.1,进入到/hadoop-2.7.1/etc/hadoop文件夹

(2)、修改etc/hadoop/中的JAVA_HOME,设置为hadoop所依赖的jdk

路径

export JAVA_HOME=/usr/java/jdk1.8.0_45

(3)、修改文件

参数

tFS

NameNode URI

131072

注释

hdfs://host:port/

SequenceFiles文件中.读写缓存size设定

以hadoop01为例:

tFS

hdfs://ns1

/home/hadoop/software/hadoop-2.7.0/tmp

131072

hadoop04:2181,hadoop06:2181,hadoop07:2181

(4)、修改

Configurations for NameNode:

参数

在本地文件系统所在

的NameNode的存储空

间和持续化处理日志

Notes

如果这是一个以逗

号分隔的目录列

表,然后将名称表

被复制的所有目

录,以备不时之需。

/

e

Datanodes

permitted/excluded

列表

如有必要,可以使

用这些文件来控制

允许数据节点的列

ize

268435456

大型的文件系统

HDFS块大小为

256MB

100

设置更多的

namenode线程,处

理从datanode发出

的大量RPC请求

• Configurations for DataNode:

Parameter

Value

Notes

逗号分隔的一个DataNode上,如果这是一个以逗号分隔的目录

它应该保存它的块的本地文

件系统的路径列表

列表,那么数据将被存储在所有命

名的目录,通常在不同的设备。

rvices

ns1

1

nn1,nn2

1

hadoop01:9000

1

hadoop01:50070

2

hadoop02:9000

2

hadoop02:50070

-->

/home/hadoop/software/hadoop-2.7.1/journal

d

true

1

uredFailoverProxyPr

ovider

s

sshfence

shell(/bin/true)

e-key-files

/home/hadoop/.ssh/id_dsa

t-timeout

30000

(5)、修改

文件是由mapred-site .xml. template文件修改而来

执行: mv te

• 配置 MapReduce 应用程序:

参数

yarn

1536

备注

执行框架设置为 Hadoop YARN.

对maps更大的资源限制的.

-Xmx1024M

maps 中对jvm child设置更大的

堆大小

3072

设置 reduces对于较大的资源限

-Xmx2560M

reduces对 child

jvms Larger heap-size 设置

512

更高的内存限制,而对数据进行

排序的效率。

100

在文件排序中更多的流合并为一

elcopies

50

通过reduces从非常多的map

中读取较多的平行副本

• 配置MapReduce的JobHistory服务器:

Parameter

s

Value

Notes

MapReduce JobHistory 默认端口号

Server

host:port

10020.

s

MapReduce JobHistory 默认端口

Server Web

UI

host:port

号 19888.

ediate-done-dir

/mr-history/tmp

在历史文件被写

入由MapReduce

作业

-dir

/mr-history/done

目录中的历史文

件是由MR

JobHistory

Server管理。

指定MR运行在Yarn上:

yarn

(6)、修改文件

Configurations for ResourceManager and NodeManager:

参数

备注

true

/

false

启用ACL的?默认为false。

Admin ACL

访问控制列表,在群集上设置管理员。 ACL

是为逗号分隔usersspacecomma分隔组。

默认为*特殊值这意味着任何人。只是空间

的特殊值意味着没有人进入。

-aggregation-enable

false

配置来启用或禁用日志聚合

Configurations for ResourceManager:

参数

s

备注

host:port

客户端对

ResourceManager主

机通过

host:port 提交

作业

s

ApplicationMasters

通过

ResourceManager

机访问host:port 跟踪调

host:port

度程序获资源

s

NodeManagers通过

host:port

ResourceManager主

机访问

host:port

s

管理命令通过

ResourceManager

机访问host:port

host:port

s

ResourceManager

web

host:port

页面host:port.

ResourceManager

CapacityScheduler

度类(Scheduler class)

(推荐),

FairScheduler(也

推荐),

orFifoScheduler

m-allocation-mb

每个容器内存最低限额分

配到的资源管理器要求

m-allocation-mb

资源管理器分配给每个容

器的内存最大限制

以MB为单位

I以MB为单位

e-path

NodeManagers 的

/

e-path

permitted/excluded列表

如有必要,可使用

这些文件来控制允

许NodeManagers

• 配置 NodeManager:

参数

ce.

memory-mb

givenNodeManager

即资源的可用物理内

存,以MB为单位

备注

定义在节点管理器总的可用资源,以提供给运行容器

-pmem-ratio

最大比率为一些任务

的虚拟内存使用量可

能会超过物理内存率

-dirs

数据写入本地文件系

统路径的列表用逗号

分隔

-dirs

本地文件系统日志路

径的列表逗号分隔。

-seconds

-app-log-dir

-app-log-dir-suffix

logs

/logs

10800

每个任务的虚拟内存的使用可以通过这个比例超过了

物理内存的限制。虚拟内存的使用上的节点管理器任

务的总量可以通过这个比率超过其物理内存的使用。

多条存储路径可以提高磁盘的读写速度

多条存储路径可以提高磁盘的读写速度

如果日志聚合被禁用。默认的时间(以秒为单位)保

留在节点管理器只适用日志文件,

HDFS目录下的应用程序日志移动应用上完成。需要

设置相应的权限。仅适用日志聚合功能。

后缀追加到远程日志目录。日志将被汇总到

${-app-log-dir}/${user}/

${thisParam} 仅适用日志聚合功能。

-services

mapreduce_shuffle

Shuffle service 需要加以设置的Map Reduce的应

用程序服务。

Configurations for History Server (Needs to be moved elsewhere):

参数

-seconds

备注

-1

如何长期保持聚集日志删除

之前。 -1禁用。请注意,设

置这个太小了,你将名称节

点的垃圾邮件

-check-interval-seconds

-1

检查汇总的日志保留的时

间。如果设置为0或负值,

则该值被计算为十分之一的

聚合日志保留时间。请注意,

设置这个太小了,你将称为

名称节点的垃圾邮件。

d

true

r-id

yrc

-ids

rm1,rm2

1

hadoop03

2

hadoop04

-address

hadoop05:2181,hadoop06:2181,hadoop07:2181

-services

mapreduce_shuffle

(7)、修改slaves

在slaves文件中做如下修改:

hadoop05

hadoop06

hadoop07

(8)、将在hadoop01上配置完成的hadoop-2.7.1拷贝到其他服务器上

scp -r /home/hadoop/software/hadoop-2.7.1

hadoop02@ hadoop:/home/hadoop/software/

(9)、配置hadoop环境变量

·修改:vim /etc/profile

·将hadoop的bin目录与sbin目录一起添加到环境变量中去

#hadoop_home

export HADOOP_HOME=/home/hadoop/software/hadoop-2.7.0

#enviroment parameter

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

·生效:source /etc/profile

·并在其他服务器上也如此配置

(10)、启动Zookeeper

在hadoop05,hadoop06,hadoop07上启动

·进入bin目录:cd /home/hadoop/software/zookeeper-3.4.6/bin

·启动Zookeeper:./ start

·查看Zookeeper状态:./ status;一个leader,两个follower

(11)、启动journalnode

在hadoop05、hadoop06、hadoop07上启动

·进入sbin目录:cd /home/hadoop/software/hadoop-2.7.1/sbin/

·启动journalnode:./ start journalnode

·jps进行检测

(12)、初始化hadoop-2.7.1

· 在hadoop01上初始化hadoop-2.7.1:./hadoop namenode –format,出现format

success成功

· 让hadoop02共享tmp下的文件数据:

scp -r tmp/ hadoop02:/hadoop/hadoop-2.7.1/

(13)、格式化ZK(在hadoop01上执行)

· 格式化Zookeeper:hdfs zkfc -formatZK

(14)、启动HDFS(hadoop01执行)

· 输入命令:sbin/

(15)、启动YARN(hadoop03执行)

· 输入命令:sbin/

(16)、通过浏览器访问HDFS和Yarn,查看节点数

· 访问hadoop01

172.16.112.113:50070

NameNode 'hadoop01:9000' (active)

· 访问hadoop02

172.16.112.114:50070

NameNode 'itcast02:9000' (standby)

· 访问hadoop03的Yarn:

172.16.112.115:8088

如上为配置High Availablity with QJM的方法,也可以配置NFS代替QJM,

·配置 High Availablity with NFS

(1)、检查NFS包是否已经安装

[root@h1 ~]# rpm -qa | grep nfs

6.i686

6.i686

6.i686

检查到已经安装到系统中了

(2)、检查rpcbind包是否已经安装

[root@h1 ~]# rpm -qa | grep rpcbind

6.i686

现在都已经安装到系统中了

如果你的系统显示没有安装,可以使用yum install nfs-utils rpcbind 进行安装,

然后配置

(3)、查看一下NFS服务和rpcbind服务是否启动

[root@h1 ~]# service nfs status

d 已停

已停

nfsd 已停

d 已停 nfs已经停止了,我们现在应该启动nfs

服务

[root@h1 ~]# service rpcbind status

rpcbind (pid 1431) 正在运行…….

(4)、启动服务

[root@h1 ~]# service nfs start

启动NFS服务 【确定】

关掉NFS配额 【确定】

启动FNS守护进程 【确定】

启动NFS mountd 【确定】

(5)、设置开机启动

[root@h1 ~]# chkconfig nfs on

[root@h1 ~]# chkconfig rpcbind on

(6)、把/home/grid/目录设置为共享目录

[root@h1 grid]# vim /etc/exports 在exports文件中添加

/home/grid *(sync,rw)字符串

/home/grid *(sync,rw)

目录说明:

/home/grid 是NFS要共享的目录

星号 代表所有ip地址

Rw为读写,ro为只读

Sync为立刻写入硬盘,rsync为优先写入缓存

No_root_squas root用户具有根目录的完全管理访问权限(这个如果不配置会

造成远程root用户只读)

[root@h1 grid]# cat /etc/exports

/home/grid *(sync,rw)

(7)、重启rpcbind和nfs服务

[root@h1 grid]# service rpcbind restart

停止 rpcbind: 【确定】

正在启动rpcbind 【确定】

[root@h1 grid]# service nfs restart

全部启动

注意这里也要关闭防火墙设置

(8)、输出本地挂载点(即master上的共享目录)

[root@h1 grid]# showmount -e localhost

Export list for localhost:

/home/grid *

解释:

/home/grid 是NFS要共享的目录

星号 代表所有ip地址

(9)、客户端h2 h4上配置

登陆h2

[root@h2 ~]# mkdir /nfs_share 在根目标下创建挂载点

[root@h2 ~]# mount -t nfs 192.168.2.102:/home/grid /nfs_share/

在h2上访问h1把/home/grid目录挂载到/ nfs_share/目录下

drwx------. 38 grid hadoop 4096 12月 15 15:00 nfs_share

切换到grid用户进入共享目录查看

[grid@h2 ~]$ cd /nfs_share/

-bash: cd: nfs_share/: 权限不够

报错啦,权限不够,这是为什么呢,经过了激烈的测试,发现是h1中/home/grid

目录权限问题

[root@h1 home]# chmod -R 777 grid 为了方便我直接给了全部权限,在h1

上操作

[root@h2 /]# mount 192.168.2.102:/home/grid/ /nfs_share/ 在h2上重新挂载

目录

[root@h2 /]# su – grid 切换用户

[grid@h2 /]$ cd nfs_share/ ok我们现在可以畅通无阻了

[grid@h2 nfs_share]$ cd .ssh 没有问题进来啦,成功

(10)、测试

在h1的共享目录上创建一个文件,然后登陆h2的挂载点,测

试是否能查询到

h1 服务端

[root@h1 grid]# touch

[root@h1 grid]# ll | grep

h2 客户端

[grid@h2 nfs_share]$ ll | grep

-rw-r--r--. 1 root root 0 1月 27 14:27

(11)、设置开机后自动挂载nfs共享目录

修改fstab文件,这个文件描述了开机后应该挂载哪些挂载点

[root@h2 ~]# vim /etc/fstab 在最后添加这行命令

192.168.2.102:/home/grid /nfs_share nfs defaults 1 1

[root@h2 ~]# cat /etc/fstab

tmpfs /dev/shm tmpfs defaults 0 0

devpts /dev/pts devpts gid=5,mode=620 0 0

sysfs /sys sysfs defaults 0 0

proc /proc proc defaults 0 0

192.168.2.102:/home/grid /nfs_share nfs defaults 1 1

现在NFS配置成功

(12)、使用NFS共享密钥文件

h2 客户端

[grid@h2 .ssh]$ pwd

/nfs_share/.ssh

[grid@h2 .ssh]$ ln -s authorized_keys /home/grid/.ssh/authorized_keys

这种方式可能会导致软链接文件符号链接的层次过多,创建失败,但会有文

件名注意文件名是红色的,这是不正常的,避免的方法是都使用绝对路径

还有另一种方法

[grid@h2 .ssh]$ cd ~/.ssh/

[grid@h2 .ssh]$ ln -s /nfs_share/.ssh/authorized_keys authorized_keys

authorized_keys -> /nfs_share/.ssh/authorized_keys

第一个authorized_keys指的是h2上的,第二个authorized_keys指的是h1上

的,注意区分

我们用h1的authorized_keys文件来创建h2上authorized_keys文件软链接

注意如果原来h2上就有/home/grid/.ssh/authorized_keys文件需要先删除在创

rm -rf /home/grid/.ssh/authorized_keys

我们在h2上看一下h1的authorized_keys文件内容

[grid@h2 .ssh]$ cat /nfs_share/.ssh/authorized_keys

ssh-rsa

AAAAB3NzaC1yc2EAAAABIwAAAQEAr6+D01KKqeMUrkyakulV3su+9RU+jJ6sNJMly

dxFq38oGBsJBwcskVL/I9ds7vE5g7coP+cMzgtRyj1ns+elgF0g3/uhtSerad4QdWXVLZ

gUjyUxijkm+nI3SSdwLihzsNNgH4GzeKX3HQAH/7S+rLoZSBPi//w9HYfO6VeXdo7N2

lkvUxNW2z/h7JuYPMEqiaOIWAeLK7AJXhjJaeJkZh/ccGuEx4uBLRxqce5zjbNsFapoD

2bact1w80a7mrgzAN3cVcQuQPzmpdj750negxMtai+QRmPDlSx2ZXtbarI4opSVmBi

qpY84PJ/h9m5wptQ3hg/1XIxv4gyqwLSxZw== grid@h4

ssh-rsa

AAAAB3NzaC1yc2EAAAABIwAAAQEA5iKGfOGKh3d8BYr4vkkNaEtZkxCbBzBn6pfD0

n3h82/1f9PwEtT4CEgqzBssYvQ2Nbc6dUy2NbDD9j5dIwQENS/fAJDwccdiJjEYMo5+

o4ocPABx6OVM0r9nsUkyU7bxeHjap3ZUmcC1UvgW5asOsRMl7ePCze+rnt5D5ldZ+

VOKh0NgtY2/CST8qXHmedfZFbQSEhIPf5Lh4A6oSoRHTFQbDN4apvf5s7Cm5/NgPiy

hU+KbHBz96pNCxkjuOwj69a7kx4AgQYJoYc0T9O6YfjfVy3l1a7N2aJ6jp4SMv0Gaoh

gzIrBNXwoFK6skuyf10yIxvNlGzkhTYK9GS9hjJw== grid@h2

ssh-rsa

AAAAB3NzaC1yc2EAAAABIwAAAQEA5V1lyss14a8aWFEkTk/aBgKHFLMX/XZX/xtXV

UqJl8NkTQVLQ37+XLyqvTfrcJSja70diqB3TrwBp3K5eXNxp3EOr6EGHsi0B6D8owsg0

bCDhxHGHu8RX8WB4DH9UOv1uPL5BESAPHjuemQuQaQzLagqrnXbrKix8CzdIEgm

nOknYiS49q9msnzawqo3luQFRU7MQvAU9UZqkxotrnzHqh0tgjJ3Sq6O6nscA7w//

Xmb0JGobVQAFCDJQdn/z1kOq7E5WNhVa8ynF9GOF7cMdppug7Ibw1RZ9cKa+igi

1KhhavS5H7XCM64NuGfC87aQE9nz0ysS3Kh8PT5h6zlxfw== grid@h1

查看h2的软链接文件内容是不是已经链过去了

[grid@h2 .ssh]$ cat authorized_keys

ssh-rsa

AAAAB3NzaC1yc2EAAAABIwAAAQEAr6+D01KKqeMUrkyakulV3su+9RU+jJ6sNJMly

dxFq38oGBsJBwcskVL/I9ds7vE5g7coP+cMzgtRyj1ns+elgF0g3/uhtSerad4QdWXVLZ

gUjyUxijkm+nI3SSdwLihzsNNgH4GzeKX3HQAH/7S+rLoZSBPi//w9HYfO6VeXdo7N2

lkvUxNW2z/h7JuYPMEqiaOIWAeLK7AJXhjJaeJkZh/ccGuEx4uBLRxqce5zjbNsFapoD

2bact1w80a7mrgzAN3cVcQuQPzmpdj750negxMtai+QRmPDlSx2ZXtbarI4opSVmBi

qpY84PJ/h9m5wptQ3hg/1XIxv4gyqwLSxZw== grid@h4

ssh-rsa

AAAAB3NzaC1yc2EAAAABIwAAAQEA5iKGfOGKh3d8BYr4vkkNaEtZkxCbBzBn6pfD0

n3h82/1f9PwEtT4CEgqzBssYvQ2Nbc6dUy2NbDD9j5dIwQENS/fAJDwccdiJjEYMo5+

o4ocPABx6OVM0r9nsUkyU7bxeHjap3ZUmcC1UvgW5asOsRMl7ePCze+rnt5D5ldZ+

VOKh0NgtY2/CST8qXHmedfZFbQSEhIPf5Lh4A6oSoRHTFQbDN4apvf5s7Cm5/NgPiy

hU+KbHBz96pNCxkjuOwj69a7kx4AgQYJoYc0T9O6YfjfVy3l1a7N2aJ6jp4SMv0Gaoh

gzIrBNXwoFK6skuyf10yIxvNlGzkhTYK9GS9hjJw== grid@h2

ssh-rsa

AAAAB3NzaC1yc2EAAAABIwAAAQEA5V1lyss14a8aWFEkTk/aBgKHFLMX/XZX/xtXV

UqJl8NkTQVLQ37+XLyqvTfrcJSja70diqB3TrwBp3K5eXNxp3EOr6EGHsi0B6D8owsg0

bCDhxHGHu8RX8WB4DH9UOv1uPL5BESAPHjuemQuQaQzLagqrnXbrKix8CzdIEgm

nOknYiS49q9msnzawqo3luQFRU7MQvAU9UZqkxotrnzHqh0tgjJ3Sq6O6nscA7w//

Xmb0JGobVQAFCDJQdn/z1kOq7E5WNhVa8ynF9GOF7cMdppug7Ibw1RZ9cKa+igi

1KhhavS5H7XCM64NuGfC87aQE9nz0ysS3Kh8PT5h6zlxfw== grid@h1

看一模一样

在H4节点上共享密钥文件

h4

[root@h4 ~]# mkdir /nfs_share 在根目标下创建挂载点

[root@h4 ~]# mount -t nfs 192.168.2.102:/home/grid /nfs_share/

在h4上访问h1把/home/grid目录挂载到/ nfs_share/目录下

[root@h4 ~]# su – grid 切换到grid用户

[grid@h4 /]$ cd nfs_share/.ssh/ 我们可以成功进入共享目录来访问h1中的

文件

修改fstab文件,这个文件描述了开机后应该挂载哪些挂载点

[root@h4 ruby]# vim /etc/fstab

tmpfs /dev/shm tmpfs defaults 0 0

devpts /dev/pts devpts gid=5,mode=620 0 0

sysfs /sys sysfs defaults 0 0

proc /proc proc defaults 0 0

192.168.2.102:/home/grid /nfs_share nfs defaults 1 1

在最后添加红色字符串一行,这样在重启时系统就会自动挂载NFS共享目录

[grid@h4 .ssh]$ cd ~/.ssh/ 进入h4的.ssh目录

[grid@h4 .ssh]$ rm -rf authorized_keys 发现原来存在authorized_keys文件顾

删除

[grid@h4 .ssh]$ ln -s /nfs_share/.ssh/authorized_keys ~/.ssh/authorized_keys

authorized_keys -> /nfs_share/.ssh/authorized_keys 软链接文件已经生成

[grid@h4 .ssh]$ cat authorized_keys 查看软链接文件内容

ssh-rsa

AAAAB3NzaC1yc2EAAAABIwAAAQEAr6+D01KKqeMUrkyakulV3su+9RU+jJ6sNJMly

dxFq38oGBsJBwcskVL/I9ds7vE5g7coP+cMzgtRyj1ns+elgF0g3/uhtSerad4QdWXVLZ

gUjyUxijkm+nI3SSdwLihzsNNgH4GzeKX3HQAH/7S+rLoZSBPi//w9HYfO6VeXdo7N2

lkvUxNW2z/h7JuYPMEqiaOIWAeLK7AJXhjJaeJkZh/ccGuEx4uBLRxqce5zjbNsFapoD

2bact1w80a7mrgzAN3cVcQuQPzmpdj750negxMtai+QRmPDlSx2ZXtbarI4opSVmBi

qpY84PJ/h9m5wptQ3hg/1XIxv4gyqwLSxZw== grid@h4

ssh-rsa

AAAAB3NzaC1yc2EAAAABIwAAAQEA5iKGfOGKh3d8BYr4vkkNaEtZkxCbBzBn6pfD0

n3h82/1f9PwEtT4CEgqzBssYvQ2Nbc6dUy2NbDD9j5dIwQENS/fAJDwccdiJjEYMo5+

o4ocPABx6OVM0r9nsUkyU7bxeHjap3ZUmcC1UvgW5asOsRMl7ePCze+rnt5D5ldZ+

VOKh0NgtY2/CST8qXHmedfZFbQSEhIPf5Lh4A6oSoRHTFQbDN4apvf5s7Cm5/NgPiy

hU+KbHBz96pNCxkjuOwj69a7kx4AgQYJoYc0T9O6YfjfVy3l1a7N2aJ6jp4SMv0Gaoh

gzIrBNXwoFK6skuyf10yIxvNlGzkhTYK9GS9hjJw== grid@h2

ssh-rsa

AAAAB3NzaC1yc2EAAAABIwAAAQEA5V1lyss14a8aWFEkTk/aBgKHFLMX/XZX/xtXV

UqJl8NkTQVLQ37+XLyqvTfrcJSja70diqB3TrwBp3K5eXNxp3EOr6EGHsi0B6D8owsg0

bCDhxHGHu8RX8WB4DH9UOv1uPL5BESAPHjuemQuQaQzLagqrnXbrKix8CzdIEgm

nOknYiS49q9msnzawqo3luQFRU7MQvAU9UZqkxotrnzHqh0tgjJ3Sq6O6nscA7w//

Xmb0JGobVQAFCDJQdn/z1kOq7E5WNhVa8ynF9GOF7cMdppug7Ibw1RZ9cKa+igi

1KhhavS5H7XCM64NuGfC87aQE9nz0ysS3Kh8PT5h6zlxfw== grid@h1

通过对比知道h1的authorized_keys授权文件和h2 h4上的软链接文件内容都

是一模一样的,到此我们就可以免密码连入了

4.6 sqoop的编译与安装

·sqoop编译部分

安装编译sqoop所需的软件

* asciidoc

* make

* python 2.5+

* xmlto

* tar

* gzip

yum -y install asciidoc

yum -y install make

yum -y install xmlto

yum -y install tar

yum -y install gzip

第一步:解压 文件到 /opt/software目录下(在该目录

下将生成 sqoop-1.4.4 文件夹)

cd /opt/software

tar -xvf

第二步:cd 到 sqoop-1.4.4 文件夹, 修改文件中指定的hadoop

版本为2.4.1(其他不变,其他相关版本尝试修改好像有问题,提示下载不到相

关版本的文件)

cd /opt/software/sqoop-1.4.4

vi

第三步:运行ant package

[root@funshion-hadoop194 sqoop-1.4.4]# ant package

...

[ivy:resolve] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS

BUILD FAILED

/opt/software/sqoop-1.4.4/:1282: impossible to resolve dependencies:

resolve failed - see output for details

Total time: 27 seconds

[ivy:resolve] uf#protobuf-java;2.4.1 by

[uf#protobuf-java;2.5.0] in [hadoop200]

---------------------------------------------------------------------

| | modules || artifacts |

| conf | number| search|dwnlded|evicted||

number|dwnlded|

---------------------------------------------------------------------

| hadoop200 | 154 | 59 | 58 | 37 || 120 | 48 |

---------------------------------------------------------------------

[ivy:resolve]

[ivy:resolve] :: problems summary ::

[ivy:resolve] :::: WARNINGS

[ivy:resolve] [FAILED ]

#jetty;6.1.26!: (0ms)

[ivy:resolve] ==== fs: tried

[ivy:resolve] /root/.m2/repository/org/mortbay/jetty/jetty/6.1.26/jetty

-

[ivy:resolve] ==== apache-snapshot: tried

[ivy:resolve] /co ... 26/

[ivy:resolve] ==== datanucleus: tried

[ivy:resolve] /downl ... 26/

[ivy:resolve] ==== cloudera-releases: tried

[ivy:resolve] / ... 26/

[ivy:resolve] ==== cloudera-staging: tried

[ivy:resolve] / ... 26/

[ivy:resolve] ==== maven2: tried

[ivy:resolve] /maven2/or ... 26/

[ivy:resolve] ::::::::::::::::::::::::::::::::::::::::::::::

[ivy:resolve] :: FAILED DOWNLOADS ::

[ivy:resolve] :: ^ see resolution messages for details ^ ::

[ivy:resolve] ::::::::::::::::::::::::::::::::::::::::::::::

[ivy:resolve] :: #jetty;6.1.26!

[ivy:resolve] ::::::::::::::::::::::::::::::::::::::::::::::

[ivy:resolve]

[ivy:resolve] :: USE VERBOSE OR DEBUG MESSAGE LEVEL FOR MORE DETAILS

[ivy:resolve] #netty; by [#netty;]

in [hadoop200test]

[ivy:resolve] asm#asm;[3.0, 4.0) by [asm#asm;3.1] in [hadoop200test]

[ivy:resolve] asm#asm;3.1 by [asm#asm;3.2] in [hadoop200test]

[ivy:resolve] uf#protobuf-java;2.4.1 by

[uf#protobuf-java;2.5.0] in [hadoop200test]

---------------------------------------------------------------------

| | modules || artifacts |

| conf | number| search|dwnlded|evicted||

number|dwnlded|

---------------------------------------------------------------------

| hadoop200test | 156 | 0 | 0 | 38 || 121 | 0 |

---------------------------------------------------------------------

-- 错误1(如上)解决方法:单独下载 文件到

/root/.m2/repository/org/mortbay/jetty/jetty/6.1.26/目录下,解决。

------------------------------------------------------------------------------

[ivy:resolve] uf#protobuf-java;2.4.1 by

[uf#protobuf-java;2.5.0] in [hadoop200test]

---------------------------------------------------------------------

| | modules || artifacts |

| conf | number| search|dwnlded|evicted||

number|dwnlded|

---------------------------------------------------------------------

| hadoop200test | 156 | 2 | 2 | 38 || 121 | 2 |

---------------------------------------------------------------------

ivy-retrieve-hadoop-test:

[ivy:retrieve] :: retrieving :: #sqoop [sync]

[ivy:retrieve] confs: [hadoop200test]

[ivy:retrieve] 121 artifacts copied, 0 already retrieved (113206kB/376ms)

compile-test:

[mkdir] Created dir: /opt/software/sqoop-1.4.4/build/test/classes

[javac] /opt/software/sqoop-1.4.4/:433: warning:

'includeantruntime' was not set, defaulting to sspath=last; set to

false for repeatable builds

[javac] Compiling 130 source files to

/opt/software/sqoop-1.4.4/build/test/classes

[javac]

/opt/software/sqoop-1.4.4/src/test/org/apache/sqoop/TestExportUsingProced

:244: repeat(,int) in

Utils cannot be applied to

(,,int)

[javac] (("?", ", ",

[javac] ^

[javac] Note: Some input files use or override a deprecated API.

[javac] Note: Recompile with -Xlint:deprecation for details.

[javac] Note: Some input files use unchecked or unsafe operations.

[javac] Note: Recompile with -Xlint:unchecked for details.

[javac] 1 error

BUILD FAILED

/opt/software/sqoop-1.4.4/:433: Compile failed; see the compiler

error output for details.

Total time: 1 minute 9 seconds

-- 错误2(如上),解决方法:

-- 第一步:

vi +433 /opt/software/sqoop-1.4.4/

debug="${}">

-- 将第433行修改为如下两行:

debug="${}"

includeantruntime="on">

-- 第二步:vi +244

/opt/software/sqoop-1.4.4/src/test/org/apache/sqoop/TestExportUsingProced

(("?", ", ",

-- 将第244行修改为如下:

(("?,",

-- 继续重新运行 ant package,最后我们将看到:BUILD SUCCESSFUL 字样,

表示编译成功。

...

[move] Moving 1 file to /opt/software/sqoop-1.4.4

[mkdir] Created dir:

/opt/software/sqoop-1.4.4/build/__hadoop-2.4.1/lib

[copy] Copying 10 files to

/opt/software/sqoop-1.4.4/build/__hadoop-2.4.1/lib

[copy] Copying 2 files to

/opt/software/sqoop-1.4.4/build/__hadoop-2.4.1/lib

[copy] Copying 115 files to

/opt/software/sqoop-1.4.4/build/__hadoop-2.4.1/docs

[copy] Copying 14 files to

/opt/software/sqoop-1.4.4/build/__hadoop-2.4.1/docs/man

[copy] Copying 13 files to

/opt/software/sqoop-1.4.4/build/__hadoop-2.4.1/bin

[copy] Copying 1 file to

/opt/software/sqoop-1.4.4/build/__hadoop-2.4.1/conf

BUILD SUCCESSFUL

-- 然后的/opt/software/sqoop-1.4.4/build目录下将生成

__hadoop-2.4.1的文件夹,这就是我们的安装文件,将其压缩:

cd /opt/software/sqoop-1.4.4/build

tar -cvf

__ ./__hadoop-2.4.1

__文件就是我们需要的sqoop安装包了。

-- 安装:

将__解压并cp到/usr/local

tar -xvf __

mv ./__hadoop-2.4.1 /usr/local

chown -R /usr/local/__hadoop-2.4.1

ln -s /usr/local/__hadoop-2.4.1 /usr/local/sqoop

vi ~/.bash_profile -- 添加如下两行:

export SQOOP_HOME=/usr/local/sqoop

export PATH=$PATH:${SQOOP_HOME}/bin

source ~/.bash_profile

cd /usr/local/sqoop/conf

cp -- 将文件复制

vi -- 编辑刚才复制的文件,添加如下三行(如果没

有安装hive的话,将最后一行屏蔽)

export HADOOP_COMMON_HOME=/usr/local/hadoop

export

HADOOP_MAPRED_HOME=/usr/local/hadoop/share/hadoop/mapreduce

export HIVE_HOME=/usr/local/hive

-- 编译成功后,测试(看能否访问mysql,测试前记得将mysql的jdbc包放到

$SQOOP_HOME/lib目录下):

-- 我的mysql的jdbc包是:

sqoop list-databases --connect jdbc:mysql://funshion-hadoop32:3306/

--username hive --password bee56915

·sqoop安装部分

(1)、解压缩按照包

tar –zxvf

(2)、sqoop配置

将$SQOOP_HOME配置在/etc/profile中

并且将$SQOOP_HOME/bin目录添加在Path中

(3)、将Mysql数据库链接驱动,放置在$

SQOOP_HOME/bin目录下

4.7 Mysql安装

Linux安装mysql服务分两种安装方法:

①源码安装,优点是安装包比较小,只有十多M,缺点是安装依赖的库多,安装

编译时间长,安装步骤复杂容易出错;

②使用官方编译好的二进制文件安装,优点是安装速度快,安装步骤简单,缺点是安装包很

大,300M左右。以下介绍linux使用官方编译好的二进制包安装mysql。

工具/原料

·

·mysql-5.6.17-linux-glibc2.5-x86_

·linux系统,32位、64位均可

方法/步骤

1、到mysql官网下载mysql编译好的二进制安装包,在下载页面Select Platform:

选项选择linux-generic,然后把页面拉到底部,64位系统下载Linux - Generic

(glibc 2.5) (x86, 64-bit),32位系统下载Linux - Generic (glibc 2.5) (x86, 32-bit)

2、解压32位安装包:

进入安装包所在目录,执行命令:tar

3、复制解压后的mysql目录到系统的本地软件目录:

执行命令:cp mysql-5.6.17-linux-glibc2.5-i686 /usr/local/mysql -r

注意:目录结尾不要加/

4、添加系统mysql组和mysql用户:

执行命令:groupadd mysql和useradd -r -g mysql mysql

5、安装数据库:

进入安装mysql软件目录:执行命令 cd /usr/local/mysql

修改当前目录拥有者为mysql用户:执行命令 chown -R mysql:mysql ./

安装数据库:执行命令 ./scripts/mysql_install_db --user=mysql

修改当前目录拥有者为root用户:执行命令 chown -R root:root ./

修改当前data目录拥有者为mysql用户:执行命令 chown -R mysql:mysql data

到此数据库安装完毕

6、启动mysql服务和添加开机启动mysql服务:

添加开机启动:执行命令cp support-files/ /etc/init.d/mysql,把启

动脚本放到开机初始化目录

启动mysql服务:执行命令service mysql start

执行命令:ps -ef|grep mysql 看到mysql服务说明启动成功,如图

7、修改mysql的root用户密码,root初始密码为空的:

执行命令:./bin/mysqladmin -u root password '密码'

8、把mysql客户端放到默认路径:

ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql

注意:建议使用软链过去,不要直接包文件复制,便于系统安装多个版本的mysql

4.8 HBASE安装

Hbase的完全分布式安装概述:

1. 配置hosts,确保涉及的主机名均可解析为ip

2. 编辑

3. 编辑

4. 编辑regionservers文件,文件默认内容是localhost

/home/grid/hbase/conf/regionservers,将所有的slavenode添加到这个文件

5. Hbase复制到其他节点

6. 启动Hbase

7. 验证

选择Hadoop和Hbase版本不同,可能会有不兼容的情况,

例如Hadoop 0.20

解决版本、jar包冲突:

1)删除hbase/lib/(备份到其它路径,以备万

一);

2)拷贝hadoop/(注意是hadoop根目录下),

hadoop/lib/

hadoop/lib/到hbase/lib下

Setp 1 下载解压hbase

Step 2 修改配置文件

第一个文件:/home/zhang/hbase/hbase-0.94.16/conf/

Step 3 设置环境变量

Step 4 配置/hbase/hbase-0.94.16/conf/

模板文件路径:~/hbase/hbase-0.94.16/src/main/resources/

拷贝需要的内容

添加修改到文件,内容如下:

r :存放数据目录

r

hdfs://node01:9000/hbase

打开分布模式:

buted

true

设置临时文件目录:

/home/criss/hbase/tmp

添加Zookeeper的节点主机名:

node01,node02,node03

r

/home/criss/hbase/tmp/zookeeper

Property from ZooKeeper's config .

The directory where the snapshot is stored.

Step 5 编辑/home/grid/hbase/conf/regionservers,将所有的slavenode添加到这个

文件

我在 没有配置hmater,所以这里吧3台机都添加进去了

Step6将Hbase拷贝到其他节点机并对其他节点机配置环境变量

scp -r hbase/ node03:/home/criss/hbase

scp -r hbase/ node02:/home/criss/hbase

Step 7 启动Hbase

Step 8验证HMaster

Node01主机:

验证Node03和Node02主机:

Step 9 测试Hbase shell

Create ‘test’,’data’

Disable ‘test’

Dorp ‘test’

可以查看下tmp文件夹下生成的内容:

4.9 HIVE安装

Hive两种模式安装

数据仓库工具,可以把Hadoop下的原始结构化数据变成Hive中的表。

支持一种与SQL几乎完全相同的语言HiveQL,除了不支持更新、索引和事

务。

可以看成是从SQL到Map-Reduce的映射器。

提供shell、JDBC/ODBC、thrift、Web等接口。

一、内嵌模式安装

这样安装的元数据保持在内嵌的Derby数据库中,只能允许一个会话连接,

只适用于简单的测试。

1、解压Hive

[coder@h1 ~]$ tar -zxvf

2、配置环境变量/etc/profile

加入Hive的安装目录,并把Hive的bin目录配置到PATH

HIVE_HOME=/home/coder/hive-0.10.0

PATH=$HADOOP_INSTALL/bin:$PIG_INSTALL/bin:$JAVA_HOME/bin:$HIVE_HOME/bin

:$PATH

执行 source /etc/profile命令,使得配置生效

3、新建Hive所需目录

在HDFS上建立/tmp和/user/hive/warehouse目录,并赋予组用户写权

限。这是Hive默认的数据文件存放目录,可以在文件中配置。

[coder@h1 hadoop-0.20.2]$ bin/hadoop fs -mkdir /tmp

[coder@h1 hadoop-0.20.2]$ bin/hadoop fs -mkdir /user/hive/warehouse

[coder@h1 hadoop-0.20.2]$ bin/hadoop fs -chmod g+w /tmp

[coder@h1 hadoop-0.20.2]$ bin/hadoop fs -chmod g+w /user/hive/warehouse

4、输入hive命令,出现类似下面的内容,说明安装成功。

[coder@h1 hadoop-0.20.2]$ hive

Logging initialized using configuration in

jar:file:/home/coder/hive-0.10.0/lib/!/ties

Hive history file=/tmp/coder/hive_job_log_coder_2_

hive>

hive> show tables;

OK

Time taken: 24.479 seconds

hive> exit;

二、独立模式安装

支持多用户会话,需要一个独立的元数据库,常用的是使用MySQL作为元

数据库。

1、启动MySQL

[root@h1 ~]# service mysqld start

Starting mysqld: [ OK ]

[root@h1 ~]#

2、为Hive建立相应的MySQL账号

[root@h1 ~]# mysql

Welcome to the MySQL monitor. Commands end with ; or g.

Your MySQL connection id is 2

Server version: 5.1.66 Source distribution

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> create user 'hive' identified by '123456';

Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost' IDENTIFIED BY '123456'

WITH GRANT OPTION;

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> exit

Bye

[root@h1 ~]#

然后从客户端用hive账号登陆MySQL

3、建立Hive专用元数据库

mysql>create database hive;

4、配置Hive

在Hive安装目录的conf目录下,将te复制一份

命名为:

修改以下内容,配置上mysql数据连接、驱动、用户名和密码

tionURL

jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true

tionDriverName

tionUserName

hive

tionPassword

123456

5、把mysql的驱动包拷贝到Hive安装路径下的lib目录

6、进入Hive,没报错说明独立模式安装成功

[coder@h1 ~]$ hive

Logging initialized using configuration in

jar:file:/home/coder/hive-0.10.0/lib/!/ties

Hive history file=/tmp/coder/hive_job_log_coder_2_

hive> show tables;

OK

Time taken: 24.783 seconds

hive> exit;

7、Hive运行示例:

Hive提供了一个CLI(Command Line Interface)客户端,我们可以通过CLI进行直观的

DDL、DML及SQL操作。以下是CLI使用示例:

[root@192.168.1.111] # 打开Hive客户端

[root@192.168.1.111] $HIVE_HOME/bin/hive

hive>CREATE TABLE tt (

id INT,

name string

)

ROW FORMAT DELIMITED

FIELDS TERMINATED BY ','

COLLECTION ITEMS TERMINATED BY 'n'

STORED AS TEXTFILE;

hive>select * from tt;

hive>drop table tt;

在hive控制台,执行命令成功后会打印如下所求的提示:

OK

Time taken: 5.004 seconds

如果有以上提示就证明你的Hive已经安装成功并能运行了。


本文标签: 文件 安装 目录 配置