第2章 数据迁移
本章内容:
- 使用客户端程序导入MySQL数据
- 使用批量加载工具导入TSV文件的数据
- 编写自己的MapReduce任务来导入数据
- 在数据移入HBase前预创建区域
2.1 简介
将数据移到HBase的方法有以下几种。
- 使用HBase的Put API
- 使用HBase的批量加载工具
- 使用自定义的MapReduce任务
使用HBase的Put API是最直接的方法。这种方法的使用并不难学。但在大多数情况下,它并非总是最有效的方法。特别是在有一大批数据需要移入HBase并且对移入时间又有限定的情况下,这种方法的效率并不高。我们需要处理的数据通常都有很大的数据量,这可能也是我们使用HBase而不使用其他数据库的原因。你必须在HBase的项目的开始阶段就仔细考虑该如何将所有数据转入HBase,否则你就会遇到一些严重的性能问题。
HBase提供了批量加载的功能来支持高效地将大量数据加载到HBase中。批量加载功能使用了一个MapReduce任务将数据加载到一个特定的HBase表中,它会生成一些HBase内部的HFile数据格式的文件,然后再将这些数据文件直接加载到正在运行的集群中。使用批量加载功能最简单的方法是使用importtsv
工具。importtsv是一个可将数据从TSV文件加载到HBase中的内置工具。它会运行一些MapReduce任务来读取TSV文件中的数据,然后将其输出直接写入HBase表或HBase内部数据格式的文件中。
虽然importtsv
工具在将文本数据导入HBase的时候非常有用,但是有些情况下,比如导入一些其他格式的数据时,你可能必须以编程的方式来生成数据。MapReduce是处理海量数据的最有效方法。它可能也是将海量数据加载到HBase中的唯一可行的方法。当然,我们也可以使用MapReduce将数据导入到HBase中。然而,当数据量非常大时,MapReduce任务的负载也可能非常重。如果不正确对待,重负载MapReduce任务运行时的吞吐量也可能很差。 ...
Get HBase管理指南 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.