我想用mapreduce编程在hdfs中保存和访问一个类似表的数据结构。此ds的一部分如下图所示。这个ds有上万列和数百行,所有节点都应该可以访问它。我的问题是:如何在hdfs中保存这个ds并用mapreduce编程访问它。我应该使用数组吗(还是Hive桌?或者hbase?)谢谢您。
rwqw0loc1#
hdfs是一种分布式文件系统,它将大文件存储在分布式服务器中。您可以使用命令将文件从本地系统复制到hdfshadoop fs-copyfromlocal/source/local/path destination/hdfs/path一旦复制完成,就可以在destination/hdfs/path上形成一个外部配置单元表。可以使用配置单元外壳查询此表。
ru9i0ody2#
在这种情况下,请考虑配置单元。如果您想进行表类型的处理,如sas数据集或r dataframe/datatable或python;在sql中,几乎总是有一个等价的东西是可能的。hive通过mapreduce和tez引擎提供强大的sql抽象。如果你想毕业后某个时候点燃,那么你可以阅读Dataframe中的配置单元表。正如@sumit所指出的,您只需要将数据从本地传输到hdfs(使用hdfs) copyFromLocal 或者 put 命令)并在其上定义外部配置单元表。如果您想在这个数据上写一些自定义的map reduce,那么访问后台配置单元表数据(更可能是在 /user/hive/warehouse ). 从stdin读取数据后,在mapper中解析它(可以使用 describe extended <hive_table> )并以键值对格式发出。
copyFromLocal
put
/user/hive/warehouse
describe extended <hive_table>
2条答案
按热度按时间rwqw0loc1#
hdfs是一种分布式文件系统,它将大文件存储在分布式服务器中。
您可以使用命令将文件从本地系统复制到hdfs
hadoop fs-copyfromlocal/source/local/path destination/hdfs/path
一旦复制完成,就可以在destination/hdfs/path上形成一个外部配置单元表。
可以使用配置单元外壳查询此表。
ru9i0ody2#
在这种情况下,请考虑配置单元。如果您想进行表类型的处理,如sas数据集或r dataframe/datatable或python;在sql中,几乎总是有一个等价的东西是可能的。hive通过mapreduce和tez引擎提供强大的sql抽象。如果你想毕业后某个时候点燃,那么你可以阅读Dataframe中的配置单元表。正如@sumit所指出的,您只需要将数据从本地传输到hdfs(使用hdfs)
copyFromLocal
或者put
命令)并在其上定义外部配置单元表。如果您想在这个数据上写一些自定义的map reduce,那么访问后台配置单元表数据(更可能是在
/user/hive/warehouse
). 从stdin读取数据后,在mapper中解析它(可以使用describe extended <hive_table>
)并以键值对格式发出。