首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用带蜂箱的象鸟读取原始数据

用带蜂箱的象鸟读取原始数据
EN

Stack Overflow用户
提问于 2015-01-06 04:07:49
回答 1查看 3.5K关注 0票数 2

我也有类似的问题,比如这一个

以下是我所用的:

  1. CDH4.4 (蜂箱0.10)
  2. protobuf-java-.2.4.1.jar
  3. elephant-bird-hive-4.6-SNAPSHOT.jar
  4. elephant-bird-core-4.6-SNAPSHOT.jar
  5. elephant-bird-hadoop-compat-4.6-SNAPSHOT.jar
  6. jar文件,其中包括protoc编译的.class文件。

并且我流协议缓冲区java教程创建我的数据“测试簿”。

而我

使用hdfs dfs -mkdir /protobuf_data创建HDFS文件夹。

使用hdfs dfs -put testbook /protobuf_data将“测试簿”放入HDFS。

然后按照象鸟网页创建表,语法如下所示:

代码语言:javascript
复制
create table addressbook
  row format serde "com.twitter.elephantbird.hive.serde.ProtobufDeserializer"
  with serdeproperties (
    "serialization.class"="com.example.tutorial.AddressBookProtos$AddressBook")
  stored as
    inputformat "com.twitter.elephantbird.mapred.input.DeprecatedRawMultiInputFormat"
    OUTPUTFORMAT "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat"
  LOCATION '/protobuf_data/';

都起作用了。

但是当我提交查询select * from addressbook;时,没有结果出来。

我找不到任何有错误需要调试的日志。

有人能帮我吗?

非常感谢

EN

回答 1

Stack Overflow用户

发布于 2015-01-10 04:22:51

问题已经解决了。

首先,我将protobuf二进制数据直接放入HDFS中,没有结果显示。

因为它不是那样工作的。

在询问了一些资深的同事之后,他们说原型二进制数据应该被写入某种容器,一些文件格式,比如hadoop SequenceFile等等。

象鸟页面也写了这些信息,但首先我无法完全理解它。

在将protobuf二进制数据写入sequenceFile之后,我可以用hive读取protobuf数据。

因为我使用sequenceFile格式,所以我使用了create语法:

代码语言:javascript
复制
inputformat 'org.apache.hadoop.mapred.SequenceFileInputFormat'
outputformat 'org.apache.hadoop.mapred.SequenceFileOutputFormat'

希望它能帮助那些刚接触过hadoop,蜂箱,大象的人。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27791961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档