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

标签 performance hadoop hdfs

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

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

有没有比编写 hdfs 更好的方法?因为我认为它没有利用并行机制。

谢谢:)

最佳答案

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

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

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

Sqoop 还可以解释源数据库(Oracle、MySQL 或其他数据库)并使用数据库特定工具(如 mysqldump 和导入)而不是 JDBC channel 以获得更好的性能。

关于performance - 从数据库中导出数据并写入HDFS(hadoop fs),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6303203/

相关文章:

hadoop - cassandra 需要 javax.jdo.option.ConnectionURL

hadoop - Apache Hadoop(大数据)

Hadoop 迷你集群模拟 (MiniDFSCluster)

php - 用于评级系统的高效 MySQL 表结构

performance - 使用 'rows' 更快地替代 INTERSECT - MATLAB

python - 在两个数组中查找共同值的索引

hadoop - 如何在 Hadoop 1.2.1 中控制用户作业/任务的日志消息级别

hadoop - 在OpenStack Sahara中生成Hadoop集群时的“No valid host was found”

python - 预生成用于 python 的 GUID?

hadoop - 在HDFS上看不到TABLE