小编pra*_*mav的帖子

Hive如何存储数据以及什么是SerDe?

在查询表时,SerDe会将文件中字节的一行数据反序列化为Hive内部使用的对象,以对该行数据进行操作.当执行INSERT或CTAS(参见"导入数据"在页面441)时,表的SerDe会将Hive的一行数据的内部表示序列化为写入输出文件的字节.

  1. 是serDe库吗?
  2. hive如何存储数据,即它存储在文件或表中?
  3. 请允许任何人清楚地解释大胆的句子吗?我是新来的蜂巢!

hadoop hive

9
推荐指数
2
解决办法
3万
查看次数

在Hive表中使用JSON-SerDe

我正在尝试从下面的链接http://code.google.com/p/hive-json-serde/wiki/GettingStarted访问 JSON-SerDe 。

         CREATE TABLE my_table (field1 string, field2 int, 
                                     field3 string, field4 double)
         ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.JsonSerde' ;
Run Code Online (Sandbox Code Playgroud)

我添加了Json-SerDe jar作为

          ADD JAR /path-to/hive-json-serde.jar;
Run Code Online (Sandbox Code Playgroud)

并加载数据为

LOAD DATA LOCAL INPATH  '/home/hduser/pradi/Test.json' INTO TABLE my_table;
Run Code Online (Sandbox Code Playgroud)

并且它成功加载了数据。

但是当查询数据为

从my_table中选择*

我从表中只得到一行

data1 100更多data1 123.001

Test.json包含

{"field1":"data1","field2":100,"field3":"more data1","field4":123.001} 

{"field1":"data2","field2":200,"field3":"more data2","field4":123.002} 

{"field1":"data3","field2":300,"field3":"more data3","field4":123.003} 

{"field1":"data4","field2":400,"field3":"more data4","field4":123.004}
Run Code Online (Sandbox Code Playgroud)

问题出在哪里?为什么查询表时只有一行而不是4行。并且在 / user / hive / warehouse / my_table中包含所有4行!


hive> add jar /home/hduser/pradeep/hive-json-serde-0.2.jar;
Added /home/hduser/pradeep/hive-json-serde-0.2.jar to class path
Added resource: /home/hduser/pradeep/hive-json-serde-0.2.jar

hive> CREATE EXTERNAL TABLE my_table (field1 string, …
Run Code Online (Sandbox Code Playgroud)

hadoop hive

6
推荐指数
1
解决办法
3万
查看次数

数据序列化框架

我是这个Apache Avro(序列化框架)的新手.我知道序列化是什么,但为什么有单独的框架,如avro,thrift,协议缓冲区和

  1. 为什么我们不能使用java序列化api而不是这些单独的框架,java serializatio api中是否有任何缺陷.

  2. 在avro或任何其他序列化框架中,以下短语"不需要在架构更改时运行代码生成程序"是什么意思.

请帮我理解这些!!

java serialization avro

5
推荐指数
1
解决办法
3018
查看次数

Zookeeper已启动但没有响应

我已经用 zkServer.sh 启动了zookeeper

JMX enabled by default
Using config: /home/hduser/zookeeper-3.4.5/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
Run Code Online (Sandbox Code Playgroud)

但是当我使用

echo ruok | nc 172.20.30.102 2181
Run Code Online (Sandbox Code Playgroud)

它只显示命令提示符

动物园cfg

tickTime=2000
dataDir=/home/hduser/zookeeper
clientPort=2181
Run Code Online (Sandbox Code Playgroud)

我的系统上有java

java version "1.6.0_27"
OpenJDK Runtime Environment (IcedTea6 1.12.6) (6b27-1.12.6-1ubuntu0.10.04.4)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
Run Code Online (Sandbox Code Playgroud)

谁能告诉我这里出了什么问题吗?

编辑:

zkServer.sh 状态给出

JMX enabled by default
Using config: /home/hduser/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: standalone
Run Code Online (Sandbox Code Playgroud)

动物园管理员输出

2014-02-21 23:45:59,995 [myid:] - INFO  [Thread-1:NIOServerCnxn@1001] - Closed socket connection for client /172.20.30.102:38820 (no session established for client)
2014-02-24 16:31:39,786 [myid:] - …
Run Code Online (Sandbox Code Playgroud)

hadoop apache-zookeeper

5
推荐指数
0
解决办法
3162
查看次数

标签 统计

hadoop ×3

hive ×2

apache-zookeeper ×1

avro ×1

java ×1

serialization ×1