如何从 twitter 读取 flume 生成的数据文件
How to read data files generated by flume from twitter
我在 HDFS 上使用 flume 生成了几个 twitter 数据日志文件,日志文件的实际格式是什么?我期待 json 格式的数据。但它看起来像
this。有人可以帮助我如何阅读这些数据吗?或者我这样做的方式有什么问题
在 hive 中使用 serde 创建一个 table,然后将 twitter 日志数据加载到 hive table。然后分析一下。
从此 link
http://files.cloudera.com/samples/hive-serdes-1.0-SNAPSHOT.jar
下载文件 (hive-serdes-1.0-SNAPSHOT.jar)
然后将此文件放入您的 $HIVE_HOME/lib
将 jar 添加到配置单元 shell
hive> ADD JAR file:///home/hadoop/work/hive-0.10.0/lib/hive-serdes-1.0-SNAPSHOT.jar
在配置单元
中创建一个table
hive> CREATE TABLE tweets (
id BIGINT,
created_at STRING,
source STRING,
favorited BOOLEAN,
retweeted_status STRUCT<
text:STRING,
user:STRUCT<screen_name:STRING,name:STRING>,
retweet_count:INT>,
entities STRUCT<
urls:ARRAY<STRUCT<expanded_url:STRING>>,
user_mentions:ARRAY<STRUCT<screen_name:STRING,name:STRING>>,
hashtags:ARRAY<STRUCT<text:STRING>>>,
text STRING,
user STRUCT<
screen_name:STRING,
name:STRING,
friends_count:INT,
followers_count:INT,
statuses_count:INT,
verified:BOOLEAN,
utc_offset:INT,
time_zone:STRING>,
in_reply_to_screen_name STRING
)
ROW FORMAT SERDE 'com.cloudera.hive.serde.JSONSerDe';
从 hdfs
将数据加载到 table
hive> load data inpath '/home/hadoop/work/flumedata' into table tweets;
现在从这个 table
分析你的推特数据
hive> select id,text,user from tweets;
你完成了,但它是反序列化的数据,现在从配置单元序列化 table..
我在 HDFS 上使用 flume 生成了几个 twitter 数据日志文件,日志文件的实际格式是什么?我期待 json 格式的数据。但它看起来像 this。有人可以帮助我如何阅读这些数据吗?或者我这样做的方式有什么问题
在 hive 中使用 serde 创建一个 table,然后将 twitter 日志数据加载到 hive table。然后分析一下。
从此 link
http://files.cloudera.com/samples/hive-serdes-1.0-SNAPSHOT.jar
然后将此文件放入您的 $HIVE_HOME/lib
将 jar 添加到配置单元 shell
hive> ADD JAR file:///home/hadoop/work/hive-0.10.0/lib/hive-serdes-1.0-SNAPSHOT.jar
在配置单元
中创建一个tablehive> CREATE TABLE tweets (
id BIGINT,
created_at STRING,
source STRING,
favorited BOOLEAN,
retweeted_status STRUCT<
text:STRING,
user:STRUCT<screen_name:STRING,name:STRING>,
retweet_count:INT>,
entities STRUCT<
urls:ARRAY<STRUCT<expanded_url:STRING>>,
user_mentions:ARRAY<STRUCT<screen_name:STRING,name:STRING>>,
hashtags:ARRAY<STRUCT<text:STRING>>>,
text STRING,
user STRUCT<
screen_name:STRING,
name:STRING,
friends_count:INT,
followers_count:INT,
statuses_count:INT,
verified:BOOLEAN,
utc_offset:INT,
time_zone:STRING>,
in_reply_to_screen_name STRING
)
ROW FORMAT SERDE 'com.cloudera.hive.serde.JSONSerDe';
从 hdfs
将数据加载到 tablehive> load data inpath '/home/hadoop/work/flumedata' into table tweets;
现在从这个 table
分析你的推特数据hive> select id,text,user from tweets;
你完成了,但它是反序列化的数据,现在从配置单元序列化 table..