我使用的是mr工作的基本代码。此作业的输入和输出都是可空写的。我必须使用这个框架,但我还必须将此作业中的数据写入hdfs。此外,我写的数据必须可以通过配置单元进行查询。有办法吗?我知道如何通过java中的hadoop文件系统api导航和操作文件。我遇到的主要问题是如何通过配置单元查询这些文件。
np8igboo1#
最简单的方法是创建一个指向hdfs中某个位置的外部配置单元表。然后让mr作业以与配置单元方案一致的格式将文件写入同一位置(反之亦然,创建配置单元方案以匹配mr作业输出的预期格式)。
create external table if not exists dbname.tblname (field1 STRING ,field2 STRING ,field3 STRING) row format delimited lines terminated by ‘\n’ fields terminated by ‘,’ stored as textfile location ‘hdfs_path’;
然后,如果mr作业将带有field1、field2和field3的csv文件写入hdfs\u路径,则可以通过此外部表查询它们。
1条答案
按热度按时间np8igboo1#
最简单的方法是创建一个指向hdfs中某个位置的外部配置单元表。然后让mr作业以与配置单元方案一致的格式将文件写入同一位置(反之亦然,创建配置单元方案以匹配mr作业输出的预期格式)。
然后,如果mr作业将带有field1、field2和field3的csv文件写入hdfs\u路径,则可以通过此外部表查询它们。