首页 > 代码库 > Hadoop2.4.0-Hbase-098.9-完全分布式安装部署

Hadoop2.4.0-Hbase-098.9-完全分布式安装部署

1准备环境

1.1所需软件包

a、CentOS-6.5-i386-LiveDVD.iso 32位centos系统

b、jdk-7u71-linux-i586.rpm 32位jdk-Linux rpm文件

c、hadoop-2.2.0.tar.gz  hadoop安装包

d、zookeeper-3.4.6.tar.gz  zookeeper安装包

1.2运行环境

a、VMware9.0及以上版本虚拟机工具

b、创建三个虚拟机节点

c、网卡模式设置为桥接模式

1.3节点信息

Hadoop1 192.168.120.191    namenode,resourcemanagerHMaster, HRegionServer

Hadoop2 192.168.120.192    namenode,resourcemanagerHRegionServer

Hadoop3 192.168.120.193    datanode,nodemanagerHRegionServer

2具体配置

2.1系统配置

安装三个Centos6.5 32位系统作为三个节点

2.1.1配置网络

#vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"

BOOTPROTO="static"

IPV6INIT="yes"

NM_CONTROLLED="yes"

ONBOOT="yes"

TYPE="Ethernet"

IPADDR=192.168.120.191

NETMASK=255.255.255.0

GATEWAY=192.168.120.1

DNS1=210.31.249.20

技术分享

2.1.2修改hostname和hosts文件

#vim /etc/sysconfig/network

NETWORKING=yes

HOSTNAME=hadoop1

技术分享

#vim /etc/hosts

192.168.120.191hadoop1

192.168.120.192hadoop2

192.168.120.193hadoop3

技术分享

2.1.3关闭iptables和selinux

#serviceiptables stop

#chkconfigiptables off

#vim/etc/selinux/config

...

SELINUX=disabled

...

技术分享

将另外两台虚机做上述同样的操作,只需将相应的IP地址和hostname做相应的修改即可,然后将三个节点都重启,执行命令 #init 0 或 #reboot

2.1.4 SSH无密钥登录

三个节点都执行

#ssh-keygen -t dsa -P ‘’ -f ~/.ssh/id_dsa

#cp /root/.ssh/id_dsa.pub/root/.ssh/authorized_keys

分别将三个节点/root/.ssh/id_dsa.pub中的内容都拷贝到各个节点的authorized_keys文件中

技术分享

以上是hadoop1的authorized_keys中的内容,hadoop2和hadoop3节点也须保持一致,保存退出后,检验是否生效:

Hadoop1节点:

#ssh hadoop2             //第一次登陆会有提示,输入yes

技术分享

#ssh hadoop3

技术分享

Hadoop2节点:

技术分享

Hadoop3节点:

技术分享

2.1.5 JDK的安装

到http://www.oracle.com/technetwork/java/javase/downloads/index.html链接中下载jdk-7u71-linux-i586.rpm文件,将下载的文件拷贝到三个节点的/root目录下,安装rpm文件执行命令:

#rpm -ivhjdk-7u71-linux-i586.rpm     //默认安装路径(/usr/java),其中latest是软链接文件


2.1.6 更新源

到http://mirrors.163.com/.help/centos.html链接中下载Centos6的repo源文件CentOS6-Base-163.repo,将其拷贝到/root目录下(三个节点均执行)

#rm -rf /etc/yum.repos.d/*

#cp /root/CentOS6-Base-163.repo/etc/yum.repos.d/

#yum makecache


2.2HBase集群部署

2.2.1 hadoop版本对HBase支持情况

技术分享

S = 支持并且测试,
X = 不支持,
NT = 应该可以,但是没有测试.

本环境hadoop版本为2.4.0采用的Hbase版本为0.98.9

2.2.2下载HBase

地址为:http://mirror.bit.edu.cn/apache/hbase/stable/

技术分享

2.2.3安装Hbase

将hbase-0.98.9-hadoop2-bin.tar.gz安装包拷贝到/opt/hbase目录下,安装hbase

#tar -zxvf hbase-0.98.9-hadoop2-bin.tar.gz

mv hbase-0.98.9-hadoop2-bin hbase

技术分享

修改环境变量

#vim /etc/profile

export HBASE_HOME=/opt/hbase/hbase

技术分享

#source /etc/profile

2.2.4 配置hbase-site.xml

将/root/ /hadoop/etc/hadoop下hdfs-site.xml拷贝到/opt/hbase/hbase/conf

 cp /root/ hadoop/etc/hadoop/hdfs-site.xml /opt/hbase/hbase/conf/

修改/ opt/hbase/hbase/conf/下hbase-site.xml

vi hbase-site.xml

<configuration>

       <property>

              <name>hbase.rootdir</name>

               <value>mycluster</value>

       </property>

       <property>

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

               <value>true</value>

       </property>

       <property>

               <name>hbase.master</name>

              <value>hadoop1:60000</value>

        </property>

       <property>

              <name>hbase.zookeeper.quorum</name>

              <value>hadoop1,hadoop2,hadoop3</value>

       </property>

</configuration>

 

注:这里的hbase.rootdir与/root/ hadoop/etc/hadoop/hdfs-site.xml下hdfs-site.xml的

dfs.nameservices保持一致

hbase.rootdir指定Hbase数据存储目录

hbase.cluster.distributed 指定是否是完全分布式模式,单机模式和伪分布式模式需要将该值设为false

hbase.master指定Master的位置

hbase.zookeeper.quorum指定zk的集群,多台机器以逗号分隔

技术分享

2.2.5配置hbase-env.sh

vi hbase-env.sh

#JDK的安装目录
export JAVA_HOME=/usr/java/latest
#hadoop的配置目录
export HBASE_CLASSPATH=/root/hadoop/etc/hadoop

#true:表示zookeeper交给hbase管理,启动hbase时,会自动启动hbase-site.xml里的hbase.zookeeper.quorum属性中的所有zookeeper实例 #false:表示启动hbase时,要手动启动所有zookeeper实例

export HBASE_MANAGES_ZK=true

技术分享

2.2.6配置regionservers 

vi regionservers 

hadoop1

hadoop2

hadoop3

技术分享

2.2.7替换lib下jar

.为避免hadoop和hbase之间版本冲突;替换hbase安装目录下的lib中使用的hadoop2.2的jar包替换成2.4.0的。

为了简便在这里可以写一个脚本copyJar.sh(位于/opt/hbase/hbase/lib下):

#! /bin/bash

find -name"hadoop*jar" | sed ‘s/2.2.0/2.4.0/g‘ | sed ‘s/.\///g‘ > f.log

rm ./hadoop*jar

cat ./f.log |while read Line

do

find /root/hadoop/share/hadoop -name"$Line" | xargs -i cp {} ./

done

rm ./f.log

进入/opt/hbase/hbase/lib下执行copyJar.sh即可把lib中使用的hadoop2.2的jar包,替换成2.4.0的

#cd /opt/hbase/hbase/lib

#./copyJar.sh

 2.2.8同步数据

Hadoop1节点中执行:

复制hadoop1节点环境变量到hadoop2节点

#scp /etc/profile hadoop2:/etc/ 
复制hadoop1节点环境变量到hadoop3节点

# scp /etc/profile hadoop3:/etc/  

 

将HBase同步到其他节点:

 

#scp –r /opt/hbase/hbase hadoop2:/ opt/hbase/

#scp –r /opt/hbase/hbase hadoop3:/ opt/hbase/

 

Hadoop2节点执行:

#source /etc/profile

 

Hadoop3节点:

#source /etc/profile

2.2.9启动集群

启动HBase集群命令:start-hbase.sh 

技术分享

关闭HBase集群命令:stop-hbase.sh 

分别在三个节点上执行jps命令,在hadoop1上启动的有:HMaster, HRegionServer;在hadoop2上启动的有HRegionServer;在hadoop3上启动的有HRegionServer。

 至此HBase完全分布式安装完毕!

3测试HBase

3.1启动集群

start-hbase.sh

技术分享

3.2进入hbase shell

bin/hbase shell

技术分享

3.3创建HBase表

 create ‘test‘, ‘cf‘   //表名为test,只有一个列族cf

技术分享

3.4插入数据

put ‘test‘,‘row1‘, ‘cf:a‘, ‘value1‘

put ‘test‘,‘row2‘, ‘cf:b‘, ‘value2‘

put ‘test‘,‘row3‘, ‘cf:c‘, ‘value3‘

技术分享

3.5扫描表

 scan ‘test‘ 

技术分享

3.6获取数据

 get ‘test‘, ‘row1‘ 

技术分享

3.7Drop表

disable ‘test‘ 

技术分享

drop ‘test‘

技术分享

3.8退出

exit 




Hadoop2.4.0-Hbase-098.9-完全分布式安装部署