从数据库导出数据并写入HDFS(hadoop fs)

时间:2011-06-10 07:23:19

标签: performance hadoop hdfs

现在我尝试从db表导出数据,并将其写入hdfs。

问题是:名称节点会成为瓶颈吗?如何将机制命名为节点缓存切片(64MB),然后将其提供给数据节点?

有没有更好的方法而不是写hdfs?因为我认为它不会利用传统主义。

感谢:)

1 个答案:

答案 0 :(得分:2)

您是否考虑过使用Sqoop。 Sqoop可用于从支持JDBC的任何数据库中提取数据,并将其放入HDFS中。

http://www.cloudera.com/blog/2009/06/introducing-sqoop/

Sqoop import命令获取要运行的地图作业的数量(默认为1)。此外,在并行化工作(映射任务> 1)时,可以指定拆分列,或者Sqoop将根据表的序列键进行猜测。每个映射文件都将为目录中的结果创建单独的文件。 NN不会成为瓶颈,除非创建的大量文件很大(NN会保留有关文件在内存中的元数据)。

Sqoop还可以解释源数据库(Oracle,MySQL或其他),并使用特定于数据库的工具(如mysqldump和import)代替JDBC通道,以获得更好的性能。