Ubuntu: GlusterFS+HBase安装教程

来源:互联网 发布:js的sleep函数 编辑:程序博客网 时间:2024/04/29 04:22

    HBase通常安装在Hadoop HDFS上,但也可以安装在其他实现了Hadoop文件接口的分布式文件系统上,如KFS。glusterfs是一个集群文件系统可扩展到几peta-bytes。它集合了各种存储在infiniband rdma或互连成一个大型并行网络文件系统。存储可以由任何商品等硬件x86_64服务器和sata-ii和infiniband HBA。GlusterFS比Hadoop HDFS可以提供更高的性能,HBase也因此可以获得更高的性能。将HBase安装在GlusterFS上,是可行的。该方案经实际验证通过,以此文以记之。


        GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS借助TCP/IP或InfiniBand RDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据。GlusterFS基于可堆叠的用户空间设计,可为各种不同的数据负载提供优异的性能。


一、前提条件

        安装环境为Virtual BOX虚拟机,操作系统为Ubuntu Server 64 14.04。安装用户为bigdata.

1、服务器列表

       192.168.8.108 bigdata1

       192.168.8.110 bigdata2

2、修改Hosts

      sudo vi /etc/hosts

      192.168.8.108 bigdata1      

      192.168.8.110 bigdata2

3、SSH配置

      sudo su - root

      passwd

      输入 admin


      允许root使用SSH口令登录:

      sudo vi /etc/ssh/sshd_config

# Authentication:

LoginGraceTime 120

#PermitRootLogin without-password    #找到这里,把它注释

PermitRootLogin yes                  #改为yes  然后重启ssh
StrictModes yes



      #service ssh restart
      #Tips:这里注意/etc/init.d/ssh restart 用这个方式重启是不成功的。

    

     SSH配置:

     bigdata1:
     #ssh-keygen -t rsa -P ""
     #cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
     #chmod 600 ~/.ssh/authorized_keys

     #scp ~/.ssh/authorized_keys root@bigdata2:~/.ssh/

4、Java安装配置

      下载最新版 jdk64-bit版 (jdk-7u45-linux-x64.tar.gz)

      下载 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

      tar -zxvf jdk-7u51-linux-x64.tar.gz

      sudo mv jdk1.7.0_51 /usr/share

      设置环境变量

      sudo vi /etc/profile

      在文件的最后面增加:

      export JAVA_HOME=/usr/share/jdk1.7.0_51

      export JRE_HOME=/usr/share/jdk1.7.0_51/jre

      export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

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

      保存,source /etc/profile

5、防火墙卸载

      sudoapt-get remove iptables

二、GlusterFS安装

1、安装GlusterFS

      sudo apt-get install glusterfs-server

      sudo  glusterfsd –version

2、创建目录

      sudo mkdir -p /data/gluster

3、创建卷

      sudo gluster volume create gluster_vol replica 2 transport tcp bigdata1:/data/gluster bigdata2:/data/gluster

      注:

      删除卷:sudo gluster volume delete gluster_vol

      强制创建:加 force

4、停止/启动卷

      sudo gluster volume stop gluster_vol

      sudogluster volume start gluster_vol

5、查看卷信息

      gluster volume info 

6、挂载卷

      sudo mount.glusterfs bigdata1:/gluster_vol /mnt/hbase

      mount.glusterfs bigdata1:/gluster_vol /mnt/hbase

6、测试卷

      df -h 

      bigdata1:

      echo test > test1.txt

      bigdata2:

      cat test1.txt      

     

      至此,GlusterFS在Ubuntu Server上安装成功。下面开始安装配置HBase。

三、HBase安装

       通过测试时证明:在分布式模式下GlusterFs可以代替hadoop的HDFS,作为Hbase的底层数据存储。
       配置过程如下:
               首先,介绍下搭建的集群模型:
       共2台服务器,hostname分别为:bigdata1 bigdata2(各个服务器之间可以ssh 无密码登陆)
       Hmaseter为:bigdata1
       Hregionserver为:bigdata1
       zookeeper为:bigdata1(Hbase内置zookeeper)
               在bigdata1、bigdata2 服务器的/mnt目录下创建hbase文件夹作为GlusterFs的mount点(即GlusterFs 的客户端),就是每台服务器都有一个/mnt/hbae/目录作为

     GLusterFs的client,然后让Hbase把数据写到这个目录下面。
              然后修改Hbase的配置文件:hbase-env.sh    hbase- site.xml    regionservers,这3个配置文件都在/usr/local/hbase/conf/目录下

1、下载/安装

      wget http://apache.fayea.com/apache-mirror/hbase/stable/hbase-0.98.7-hadoop2-bin.tar.gz

      tar xvzfhbase-0.98.7-hadoop2-bin.tar.gz 

      sudo mvhbase-0.98.7-hadoop2 /usr/local 

      sudoln -shbase-0.98.7-hadoop2 hbase

2、配置

      配置文件:hbase-env.sh(bigdata1、bigdata2配置文件相同)

      export JAVA_HOME=/usr/share/jdk1.7.0_51    //JDK路径

      export HBASE_MANAGES_ZK=true  //zookeeper是用内置的还是自己搭建zookeeper(true为使用内置的)


      配置文件: hbase-site.xml   
     <configuration>
     <property>
    <name>hbase.rootdir</name>
     <value>file:///mnt/hbase/</value> //和GlusterFs客户端的路径相对应
     </property>
     <property>
     <name>hbase.cluster.distributed</name>//true为分布式模式,false为单机模式
     <value>true</value>
     </property>
     <property>
      <name>hbase.master</name>
      <value>bigdata1:60000</value>
      </property>
      <property>
      <name>hbase.zookeeper.quorum</name>//zookeeper为221
     <value>bigdata1</value>
     </property>
   </configuration>

     

      配置文件 regionservers                                            //HregionServer服务器
      bigdata1     

3、运行

      #cd /usr/local/hbase/bin

      #./start-hbase.sh  //开启hbase集群
      #./hbase shell//开启Hbase指令
      #hbase(main):001:0> status
     2 servers, 0 dead, 0.7500 average load
      配置成功!


四、测试

       #cd /usr/local/hbase/bin

       hbase shell

       create "test" "cf"

       在bigdata2上读取所有表中的数据,如果能读到所有表中的数据,就说明底层的GlusterFs是否共享数据,GlusterFs可以代替HDFS。

五、结论

      至此,本方案测试成功!GlusterFS可以代替HDFS,以获得更高的性能。当然还需要在生产环境中进一步验证。



0 0
原创粉丝点击