在centos6.3 安装hadoop hbase zookeeper

一、环境准备

1、安装centos系统时为hadoop指定专用用户:hadoop

2、如果sudo命令有问题则可以先配置sudo,以便后续安装运维方便,如下步骤修改:

1)、切换到root权限:suroot(如果已经是则不用切换)

2)、修改sudoers文件,添加hadoop用户的权限:vi/etc/sudoers,在“rootALL=(ALL)ALL”这一行后面添加一行:“hadoopALL=(ALL)ALL”。

3、修改hosts:vi/etc/hosts,配置master和slave的ip与域名,例如:

192.168.22.129master

192.168.22.130slave1

192.168.22.131slave2

4、修改系统的域名:vi/etc/sysconfig/network,把HOSTNAME修改为新的主机名称(主机为master,从机为slave(1..n)),修改完后重新启动服务器,启动后重新连接linux远程终端,重新进入则可在执行命令处看到变化:[root@localhost]#变为:[root@master]#

二、安装jdk

1、下载jdk的rpm安装包,执行如下命令:

rpm–ivhjdk---.rpm

安装完成后,执行java–version,查看是否安装成功。

2、配置环境变量:vi/etc/profile,添加如下内容:

exportJAVA_HOME=/usr/java/jdk1.7.0_25

exportPATH=$PATH:$JAVA_HOME/bin

添加完成后,执行source/etc/profile

注:环境变量可以在hadoop、hbase、zookeeper均安装完成后,再统一设置,如此可简化工作

三、配置ssh

需配置ssh实现master、slave机之间的相互免密码登录。

1、如果不是hadoop用户,需要切换到hadoop用户;

2、如果centos没有安装ssh,则需先安装

3、在所有的服务器执行如下命令,生成密钥对

ssh-keygen-q-trsa-N""

4、复制所有的slave服务器的公钥到master的.ssh目录下

[hadoop@slave1~]$scp~/.ssh/id_rsa.pubhadoop@master:~/.ssh/slave1.pub

[hadoop@slave2~]$scp~/.ssh/id_rsa.pubhadoop@master:~/.ssh/slave2.pub

5、在master服务器把所有服务器的公钥加入到用于认证的公钥文件:

[hadoop@master~]$cat~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys

[hadoop@master~]cat~/.ssh/slave1.pub>>~/.ssh/authorized_keys

[hadoop@master~]cat~/.ssh/slave2.pub>>~/.ssh/authorized_keys

6、对authorized_keys进行授权:

[hadoop@master~]chmod600~/.ssh/authorized_keys

7、复制master的authorized_keys到所有的slave服务器:

[hadoop@master~]scp~/.ssh/authorized_keyshadoop@slave1:~/.ssh/authorized_keys

[hadoop@master~]scp~/.ssh/authorized_keyshadoop@slave2:~/.ssh/authorized_keys

注:.ssh文件是隐藏文件,在~/下看不见,但是可以通过cd进入

至此免密码登录本机的配置已经配置好

8、验证ssh是否安装成功:

在master、slave之间以及slave之间进行相互的ssh登录,如果不需要输入密码则成功:

例如:[hadoop@master~]sshslave1,执行后不需要密码及可以登录slave1

四、安装hadoop

解压hadoop压缩包:sudotarxzfhadoop-x.y.z.tar.gz

更改用户和用户组:sudochown-Rhadoop:hadoophadoop-x.y.z

配置hadoop:

1.修改$HADOOP_HOME/conf/hadoop-evn.sh,取消JAVA_HOME的注释并配置正确的信息,如:

exportJAVA_HOME=/usr/java/jdk1.7.0_25

2.配置$HADOOP_HOME/conf/core-site.xml添加如下内容:

<property>

<name>fs.default.name</name>

<value>hdfs://master:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/home/hadoop/data</value>

</property>

3.配置$HADOOP_HOME/conf/hdfs-site.xml添加如下内容:

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

4.配置$HADOOP_HOME/conf/mapred-site.xml添加如下内容:

<property>

<name>mapred.job.tracker</name>

<value>master:9001</value>

</property>

5.配置$HADOOP_HOME/conf/masters添加如下内容:

master

6.配置$HADOOP_HOME/conf/slaves添加如下内容:

slave1

slave2

7.通过scp命令把在master服务器上配置好的hadoop目录copy到所有的slave服务器上,保持目录相同

如果slave的jdk安装目录有不同的,需要单独修改$HADOOP_HOME/conf/hadoop-evn.sh配置文件

8.配置master和所有的slave服务器的环境变量:sudovi/etc/profile在profile中加入:

exportHADOOP_HOME=/home/hadoop/software/hadoop-1.2.1

exportPATH=$PATH:$HADOOP_HOME/bin

添加完成后,执行source/etc/profile命令

注:环境变量可以在hadoop、hbase、zookeeper均安装完成后,再统一设置,如此可简化工作

9.格式化namenode

hadoopnamenode–format

10.关闭所有服务器的防火墙(否则可能因为端口不可访问而导致启动失败)

重启后永久性生效:chkconfigiptablesoff

即时生效,重启后失效:serviceiptablesstop

11.安装成功,通过命令start-all.sh启动hadoop集群

五、安装hbase

安装前提:

Java已经安装;

Hadoop已经正确安装,并可以启动hdfs;

必须安装ssh,并且已经实现服务器建的免密码登陆;

集群的时钟基本一致,如果时间相差比较大,则会导致安装失败;

解压hbase-0.94.12.tar.gz并且配置hbase

1.配置hbase-env.sh:

exportJAVA_HOME=/usr/java/jdk1.7.0_25

exportHBASE_MANAGES_ZK=false:false,使用独立的zookeeper

2.配置hbase-site.xml:

<configuration>

<property>

<name>hbase.master</name>

<value>hdfs://master:60000</value>

</property>

<property>

<name>hbase.rootdir</name>

<value>hdfs://master:9000/hbase</value>

</property>

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

</property>

<property>

<name>hbase.zookeeper.quorum</name><value>master,slave1,slave2</value>

</property>

</configuration>

3.配置regionservers,添加hbase的region服务器域名:

slave1

slave2

4.通过scp命令copyhbase的目录到其他服务器

5.配置所有服务器的环境变量:vi/etc/profile,添加如下内容:

exportHBASE_HOME=/home/hadoop/software/hbase-0.94.12

exportPATH=$PATH:$HBASE_HOME/bin

执行source/etc/profile命令,使修改生效。

注:环境变量可以在hadoop、hbase、zookeeper均安装完成后,再统一设置,如此可简化工作

六、安装zookeeper

1.解压zookeeper-3.4.5.tar.gz并且配置:

2.进入conf目录,把zoo_sample.cfg更名为zoo.cfg

3.配置zoo.cfg,在文件中添加如下信息:

server.1=master:2888:3888

server.2=slave1:2888:3888

server.3=slave2:2888:3888

4.通过scp命令把zookeepere的目录copy到其它几台服务器

5.执行vi/tmp/zookeeper/myid命令在文件myid中保存服务器对应的id,与zoo.cfg中的数字对应,本文的master服务器为1,slave1:2,slave2:3

6.修改各服务器的环境变量:vi/etc/profile:

exportZOOKEEPER_HOME=/home/hadoop/software/zookeeper-3.4.5

exportPATH=$PATH:$ZOOKEEPER_HOME/bin

执行命令source/etc/profile

注:环境变量可以在hadoop、hbase、zookeeper均安装完成后,再统一设置,如此可简化工作

七、启动hadoop、zookeeper、hbase

启动顺序先hadoop,再zookepper,最后hbase,分别的执行命令如下:

start-all.sh

zkServer.shstart

start-hbase.sh

其中zookeeper的启动需要在每台服务器执行,hadoop和hbase只需在master服务器启动,slave集群会自动启动。

停止的顺序与启动向反。

启动完后,在master服务器通过jps命令可以看到如下的进程:

[hadoop@masterzookeeper]$jps

3779QuorumPeerMain

2917SecondaryNameNode

2767NameNode

4053HMaster

2999JobTracker

在slave服务器可以看到如下的进程:

[[email protected]]$jps

3526HRegionServer

2602DataNode

2669TaskTracker

3393QuorumPeerMain

在master服务器执行hbaseshell命令,进入hbase命令模式,执行create'f1','f2'命令创建表f1,再执行list命令查看是否有表f1,如果均符合预期则说明hbase可用:

hbase(main):001:0>list

TABLE

0row(s)in4.7660seconds

hbase(main):002:0>create'f1','f2'

0row(s)in1.8420seconds

hbase(main):003:0>list

TABLE

f1

1row(s)in0.1310seconds

至此完全安装完成。

八、安装及使用等问题解决方案

1.master与slave机无法通信问题

通常是因为防火墙导致的问题,可以关闭防火墙试试。

2.使用非hadoop用户启动hadoop时导致再用hadoop用户启动失败的问题

例如:如果hadoop集群的用户是非root用户,但是通过root用户启动后,再用hadoop启动,会失败,此时通过如下步骤解决;

在root用户下执行stop-all.sh命令

ps-aux|grepjava查找是否有hadoop的进程,有则kill

切换到hadoop用户

通过chown-R把$hadoop.tmp.dir指定的data目录的所有文件的拥有者设置为hadoop用户,

因为hdfs在启动时会生成新的fsimage和edits文件,通过root用户启动过后,这两个文件的拥有者变为root用户,再用hadoop用户启动时会没有写权限导致失败

重启成功

3.启动hbase后立马停止hbase可能导致无法停止hbase的问题

通过master的日志:Masterhascompletedinitialization,当出现了这句话后才可以停止hbase,否则就算通过jps可以看到hbase的进程,但是并不是真正的启动完成,这时停止hbase会导致无法停止,这时可以强制killhbase的进程,需要注意的是,强制kill后,需要重新启动zookeepper,否则再启动hbase时,master启动不了,因为在zookeeper里还有master的信息,但是实际master已经被kill了。

4.hbase的regionserver依赖hdfs的datanode,因此在配置hbase的regionservers配置文件时,需配置有datanode的服务器,否则会导致hbase经常失败,或者经常无法停止的问题。

相关推荐