hadoop271安装手册文档格式.docx
《hadoop271安装手册文档格式.docx》由会员分享,可在线阅读,更多相关《hadoop271安装手册文档格式.docx(58页珍藏版)》请在冰点文库上搜索。
NodeManager
JournalNode
QuorumPeerMain
hadoop06
172.16.112.118
hadoop07
172.16.112.119
4、安装具体步骤
4.1、安装Centos-6.4系统
(1)、下载64位的CentOS-6.4镜像文件
CentOS-6.4-x86_64-bin-DVD1.iso
CentOS-6.4-x86_64-bin-DVD2.iso
系统安装只用到CentOS-6.4-x86_64-bin-DVD1.iso这个镜像,第二个镜像是系统自带的软件安装包
下载完成之后,使用光盘刻录软件将ISO镜像文件刻录在CD或者DVD光盘里得到一张安装光盘
(2)、安装CentOS
使用安装介质启动电脑出现如下界面
选择Installorupgradeanexistingsystem,并跳过mediatest
出现引导界面,点击next
语言选择,选“English”,以防止出现乱码
键盘布局选择:
U.S.English
选择“BasicStorageDevies”,点击next
询问是否忽略所有数据,新电脑安装系统选择"
Yes,discardanydata"
Hostname填写
网络设置安装图示顺序点击就可以了
时区可以在地图上点击,选择“shanghai”并取消SystemclockusesUTC前面的对勾
设置root的密码
硬盘分区,一定要按照图示点选
调整分区,必须要有/home这个分区,如果没有这个分区,安装部分软件会出现不能安装的问题
询问是否格式化分区
将更改写入到硬盘
引导程序安装位置
选择安装模式选择MinimalDesktop安装模式,并且选择现在进行客户化定制
在进行“客户化定制时”可直接next,不过在languagesupport时,选择“ChineseSupport”,如下图:
(3)、修改虚拟机主机名并建立IP地址与主机名之间的映射关系,最后重启虚拟机
以root权限登录
·
修改主机名:
vi/etc/sysconfig/network;
分别修改HOSTNAME的值,为对应的主机名hadoop01、hadoop02、hadoop03
建立IP地址与主机名之间的映射关系:
vi/etc/hosts;
在hadoop01虚拟机的hosts文件中添加如下字段:
172.16.112.113hadoop01
在hadoop02虚拟机的hosts文件中添加如下字段:
172.16.112.114hadoop02
在hadoop03虚拟机的hosts文件中添加如下字段:
172.16.112.115hadoop03
172.16.112.116hadoop04
172.16.112.117hadoop05
172.16.112.118hadoop06
172.16.112.119hadoop07
4.2、安装jdk1.8
(1)、在hadoop家目录下创建software文件夹,并使用SecureCRT工具,点击SecureFX将所需要的jdk安装包上传到linux系统上的software文件中
切换回当前用户:
su–hadoop01
创建目录:
mkdir/home/hadoop01/software
上传文件:
(以二进制文件形式传输)
(2)、安装jdk1.8
进入jdk1.8存放目录:
cd/home/hadoop01/software/
切换为root用户:
su,输入密码
安装jdk1.8:
rpm-ivhjdk-8u45-linux-x64.rpm
(3)、配置jdk环境变量
设置环境变量:
vi/etc/profile
在profile文件中设置JAVA_HOME、CLASS_PATH、PATH三个环境变量:
#JAVA_HOME
exportJAVA_HOME=/usr/java/jdk1.8.0_45
#CLASSPATH
exportCLASSPATH=.:
$JAVA_HOME/jre/lib/rt.jar:
$JAVA_HOME/lib/dt.jar:
$JAVA_HOME/lib/tools.jar
#PATH
exportPATH=$PATH:
$JAVA_HOME/bin
启动配置项:
source/etc/profile
验证jdk是否安装成功:
java–version
如图:
安装成功
4.3编译hadoop2.7.1
(1)、实现ssh登录,公钥自联
登录root用户:
su,输入密码
打开公钥验证服务:
#RSAAuthenticationyes
#PubkeyAuthenticationyes
#AuthorizedKeysFile.ssh/authorized_keys
去掉这也项的#
重启ssh服务:
servicesshdrestart
以hadoop01账户登录linux系统:
启动ssh协议:
rpm-qa|grepopenssh
rpm-qa|greprsync
生成密钥对:
ssh-keygen-trsa-P'
'
直接回车
将公钥写入授权文件:
cat~/.ssh/id_dsa.pub>
>
authorized-keys
修改授权文件权限:
授权文件:
chmod600~/.ssh/authorized-keys
验证ssh登录:
sshlocalhost
多次ssh登录到localhost用户观察是否还需要输入密码
如图时,成功
(2)、将hadoop01作为Master节点,配置ssh免密码登陆,使得hadoop01无密码登录所有的slave节点:
将其他两台hadoop02,hadoop03,hadoop04,hadoop05,hadoop06,hadoop07实现一次自联过程
分别修改hadoop02,hadoop03,hadoop04,hadoop05,hadoop06,hadoop07节点上.ssh文件的权限和authorized-keys文件的权限:
chmod700~/.ssh
chmod600authorized-keys
将hadoop01节点的公钥传给hadoop02,hadoop03,hadoop04,hadoop05,hadoop06,hadoop07:
scp~/.ssh/id_rsa.pubhadoop@hadoop02:
~/
scp~/.ssh/id_rsa.pubhadoop@hadoop03:
scp~/.ssh/id_rsa.pubhadoop@hadoop04:
scp~/.ssh/id_rsa.pubhadoop@hadoop05:
scp~/.ssh/id_rsa.pubhadoop@hadoop06:
scp~/.ssh/id_rsa.pubhadoop@hadoop07:
将hadoop01的公钥追加到hadoop02,hadoop03,hadoop04,hadoop05,hadoop06,hadoop07的authorized-keys中:
cat~/id_rsa.pub>
~/.ssh/authorized-keys
验证是否实现ssh登录
sshhadoop02
sshhadoop03
sshhadoop04
sshhadoop05
sshhadoop06
sshhadoop07
(3)、编译hadoop-2.7.1环境
所需软件:
maven、protobuf、openssl库、CMake、ant
安装maven:
1、解压缩压缩包:
tar-zxvfapache-maven-3.3.3-bin.tar.gz
2、设置Maven环境变量:
#MAVEN
exportMAVEN_HOME=/home/hadoop/software/apache-maven-3.3.3
#environmentpath
exportPATH=/home/hadoop/software/apache-maven-3.3.3/bin
3、生效
4、验证maven
mvn–v
安装protobuf-2.5.0
1、安装依赖包
以root身份登录
yuminstallgcc-c++
2、解压protobuf-2.5.0安装包
tar-zxvfprotobuf-2.5.0.tar.gz
3、进入protobuf-2.5.0文件夹,进行如下操作:
./configure
make
makecheck
makeinstall
ldconfig
4、修改环境变量:
#protobuf
exportLD_LIBRARY_PATH=/home/hadoop/software/protobuf-2.5.0
5、生效
注意:
配置/etc/profile,在虚拟机重启后,可能配置会失效,所以重启后,需要再次执行source操作。
6、安装pache-ant-1.9.4-bin.tar.gz
解压安装包:
tar-zxvfapache-ant-1.9.4-bin.tar.gz
配置环境变量:
#Ant
exportANT_HOME=/home/hadoop/software/apache-ant-1.9.4
exportPATH=$ANT_HOME/bin
·
生效
source/etc/profile
校验
ant-version
7、编译hadoop-2.7.1
将hadoop-2.7.1-src.tar.gz解压缩,并进入hadoop-2.7.1-src文件夹
执行命令:
mvnpackage-Pdist,native-DskipTests-Dtar
8、在目录hadoop-2.4.0-src/hadoop-dist/target下有文件:
hadoop-2.4.0.tar.gz编译成功
4.4Zookeeper3.2单机安装
本篇為Zookeeper的獨立測試(不包含搭配Hadoop,Hbase的協同合作)
•測試於Ubuntu9.10,Zookeeper為3.2.1版,java版本為1.6,並且於環境變數已經加入JAVA_HOME=/usr/lib/jvm/java-6-sun
•設定好sshlocalhost免密碼
安裝目錄
/opt/zookeeper/
工作目錄
/var/zookeeper/
安装步骤
1.下載zookeeper最新版,並且解壓縮到/opt/zookeeper
2.新建/var/zookeeper當作zookeeper的工作目錄,並確實設定可讀寫權限
新建配置文档/opt/zookeeper/conf/zoo.cfg
tickTime=2000
dataDir=/var/zookeeper
clientPort=2181
$
cd/local/software/zookeeper/;
ln-szookeeper-3.3.1/zookeeper
exportZOOKEEPER_INSTALL=/local/software/zookeeper/zookeeper/
$ZOOKEEPER_INSTALL/bin
接着执行
$cd/opt/zookeeper
$bin/zkServer.sh
start
完成启动
运行netstat-tnl
可以看到2181端口已打开
关闭
$bin/zkServer.shstop
执行测试
$bin/zkCli.sh-server127.0.0.1:
2181
基本测试
[zkshell:
0]help
8]ls/
[zookeeper]
9]create/zk_testmy_data
Created/zk_test
11]ls/
[zookeeper,zk_test]
12]get/zk_test
my_data
14]set/zk_testjunk
15]get/zk_test
junk
16]quit
zooKeeper配置文件参数
参考:
http:
//hadoop.apache.org/zookeeper/docs/r3.3.1/zookeeperAdmin.html#sc_configuration
ZooKeeperServer的行为受配置文件zoo.cfg的控制,zoo.cfg的设计目标是让所有服务器都可以使用相同的配置文件,如果需要使用不同的配置文件,需要保证关于cluster部分的参数相同。
下面是具体的参数:
最小必要配置的参数
clientPort
服务的监听端口
dataDir
用于存放内存数据库快照的文件夹,同时用于集群的myid文件也存在这个文件夹里(注意:
一个配置文件只能包含一个dataDir字样,即使它被注释掉了。
)
tickTime
心跳时间,为了确保连接存在的,以毫秒为单位,最小超时时间为两个心跳时间
高级配置参数
dataLogDir
用于单独设置transactionlog的目录,transactionlog分离可以避免和普通log还有快照的竞争
globalOutstandingLimit
client请求队列的最大长度,防止内存溢出,默认值为1000
preAllocSize
预分配的Transactionlog空间为block个proAllocSizeKB,默认block为64M,一般不需要更改,除非snapshot过于频繁
snapCount
在snapCount个snapshot后写一次transactionlog,默认值是100,000
traceFile
用于记录请求的log,打开会影响性能,用于debug的,最好不要定义
maxClientCnxns
最大并发客户端数,用于防止DOS的,默认值是10,设置为0是不加限制
clientPortBindAddress
3.3.0后新增参数,可是设置指定的clientip以及端口,不设置的话等于ANY:
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台ZooKeeperServer时,强烈建议打开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.ZooKeeperServer,[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的TransactionLog目录,假设为/home/user/zk_trlog
e.[zk_logs]表示ZooKeeper的一半log目录,假设为/home/user/zk_logs
2.服务端环境要求:
a.Linux或者其他类UNIX系统(Windows及MacOS只能作为开发环境,不能做生产环境)
b.JDK1.6或更高
c.Server管理需要netcat或者telnet
3.获得ZooKeeper发行版:
访问:
//hadoop.apache.org/zookeeper/releases.html,目前ZooKeeper的最新版本为3.3.1版本(2010年5月17日发行)
4.修改配置文件:
因为ZooKeeper的配置文件设计目标是可供所有机器使用的通用配置文件,因此可以现在一台机器上写完,然后复制到其他server上。
在[zk_dir]/conf下新建zoo.cfg文件,详细参数说明参见附录,这里给出一个配置文件的例子:
#BASICSETTINGS
#Thenumberofmillisecondsofeachtick
#theportatwhichtheclientswillconnect
#thedirectorywherethesnapshotisstored.
dataDir=/home/user/zk_logs/zk_data
#thedirectorywherethetransactionlogisstored
dataLogDir=/home/user/zk_logs/zk_trog
#BASICSETTINGSEND
##########################################################
#CLUSTERSETTINGS
#Thenumberofticksthattheinitial
#synchronizationphasecantake
initLimit=10
#Thenumberofticksthatcanpassbetween
#sendingarequestandgettinganacknowledgement
syncLimit=5
#CLUSTERSERVERCONFIG
server.1=192.168.1.201:
2888:
3888
server.2=192.168.1.202:
server.3=192.168.1.203:
#C