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为例:
(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上,如果这是一个以逗号分隔的目录
它应该保存它的块的本地文
件系统的路径列表
列表,那么数据将被存储在所有命
名的目录,通常在不同的设备。
-->
ovider
sshfence
shell(/bin/true)
(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上:
(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或负值,
则该值被计算为十分之一的
聚合日志保留时间。请注意,
设置这个太小了,你将称为
名称节点的垃圾邮件。
(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数据连接、驱动、用户名和密码
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已经安装成功并能运行了。
版权声明:本文标题:hadoop2.7.1安装手册 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1735108375a1635691.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论