设置HBase,hadoop,hive通过hive访问Hbase的正确方法是什么?

时间:2015-11-05 12:08:41

标签: shell hadoop hive hbase

我在配置和安装hbase / hadoop / hive时遇到问题。到目前为止我在使用ubuntu 14.04.3 LTS的VM上做了什么:

  • 使用版本 jdk1.8.0_60 安装了这样的jdk:

https://askubuntu.com/questions/56104/how%E2%80%8B-can-i-install-sun-o%E2%80%8Bracles-proprietary-j%E2%80%8Bava-jdk-6-7-8-or-jre%E2%80%8B

  • 获得 hadoop-2.6.1 并解压缩.tar文件。之后我做了一些配置:

核心site.xml:

 <configuration>
    <property>
      <name>fs.default.name</name>
      <value>hdfs://localhost:9000</value>
    </property>
    </configuration>

hadoop-env.sh

 export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_60

HDFS-site.xml中

  <configuration>
    <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///home/hfu/hadoop/hdfs/namenode</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///home/hfu/hadoop/hdfs/datanode</value>
    </property>
    </configuration>
  • 得到 hbase-0.98.0-hadoop2 并解压缩并按以下方式配置:

hbase-env.sh

导出JAVA_HOME = / usr / lib / jvm / jdk1.8.0_60 /

HBase的-site.xml中

  <configuration>
    <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
    </property>
    <property>
    <name>hbase.rootdir</name>
    <value>file:///home/hfu/hbase-0.98.0-hadoop2/data</value>
    </property>
    <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/home/hfu/hbase-0.98.0-hadoop2/zookeeper</value>
    </property>
    <property>
    <name>zookeeper.znode.parent</name>
    <value>/hbase-unsecure</value>
    </property>
    <property>
    <name>hbase.zookeeper.quorum</name>
    <value>ubuntu</value>
    </property>
    <property>
    <name>hbase.master</name>
    <value>ubuntu:16000</value>
    </property>
    <property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
    </property>
    </configuration>
  • 得到 apache-hive-1.2.1-bin 并解压缩它:

hive-enf.sh

export HADOOP_HOME=/home/hfu/hadoop-2.6.1

启动hadoop:

sbin/start-all.sh

enter image description here

启动hbase:

bin/start-hbase.sh

enter image description here

在HBASE shell中可以创建一个表。我也可以在其中加入一些条目。 在开始配置单元之前我也在控制台中写这个

export HADOOP_USER_CLASSPATH_FIRST=true

防止异常

在Hive中,可以创建一个表并从中读取内容。但是,如果我想将两者连接在一起,如某些教程中所述

http://chase-seibert.github.io/blog/2013/05/10/hive-hbase-quickstart.html

http://www.n10k.com/blog/hbase-via-hive-pt1/

我得到了一个例外。我之前在另一篇文章中也描述了我的问题,但这个问题要详细得多: How transfer a Table from HBase to Hive? enter image description here

1 个答案:

答案 0 :(得分:0)

我使用了错误版本的HBase和Hadoop。这是一个概述,hadoop和HBase的版本是兼容的。 http://hbase.apache.org/book.html#hadoop