在hadoop中保存并访问类似表的数据结构

时间:2016-10-04 07:00:40

标签: hadoop data-structures mapreduce hdfs bigdata

我希望使用MapReduce编程保存和访问HDFS中的数据结构表。该DS的一部分如下图所示。这个DS有数万列和数百行,所有节点都应该可以访问它。

enter image description here

我的问题是:如何在HDFS中保存此DS并使用MapReduce编程访问它。我应该使用数组吗? (或Hive表?还是Hbase?)

谢谢。

2 个答案:

答案 0 :(得分:1)

HDFS是分布式文件系统,它将您的大文件存储在分布式服务器中。

您可以使用命令

将文件从本地系统复制到HDFS

hadoop fs -copyFromLocal / source / local / path destincation / hdfs / path

复制完成后,可以在destincation / hdfs / path上形成外部配置单元表。

可以使用hive shell查询此表。

答案 1 :(得分:1)

请考虑Hive用于此方案。如果你想进行表格类型的处理,如SAS数据集或R dataframe / dataTable或python pandas;几乎总是在SQL中可能是等价的东西。 Hive通过MapReduce和Tez引擎提供强大的SQL抽象。如果你想在某个时候毕业到Spark,那么你可以在数据框中阅读Hive表。由于@sumit指出您只需要将数据从本地传输到HDFS(使用HDFS copyFromLocalput命令)并在其上定义外部Hive表。

如果您想在此数据上编写一些自定义map-reduce,则访问后台配置单元表数据(更可能在/user/hive/warehouse)。从stdin读取数据后,在mapper中解析它(可以使用describe extended <hive_table>查找分隔符)并以键值对格式发出。