在查询表时,SerDe会将文件中字节的一行数据反序列化为Hive内部使用的对象,以对该行数据进行操作.当执行INSERT或CTAS(参见"导入数据"在页面441)时,表的SerDe会将Hive的一行数据的内部表示序列化为写入输出文件的字节.
我正在尝试从下面的链接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) 我是这个Apache Avro(序列化框架)的新手.我知道序列化是什么,但为什么有单独的框架,如avro,thrift,协议缓冲区和
为什么我们不能使用java序列化api而不是这些单独的框架,java serializatio api中是否有任何缺陷.
在avro或任何其他序列化框架中,以下短语"不需要在架构更改时运行代码生成程序"是什么意思.
请帮我理解这些!!
我已经用 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)