天天看点

使用sqoop将数据从mysql同步到hbase

使用sqoop将数据从mysql同步到hbase

知识点-HBase初体验

知识点-愉快地通过Thrift访问HBase

知识点-HBaseClient(Java)

目前机器使用的sqoop版本
sqoop1.4.6文档 https://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html Sqoop是用来在Hadoop和关系数据库或者大型机之间做数据迁移的一个工具。 可以使用Sqoop从关系型数据库管理系统如MySQL、Oracle中将数据导入到Hadoop分布式文件系统(HDFS)中,也可以从HDFS导出数据到RDBMS中。 RDBMS需要提供数据所在的schema(数据库连接和用户名密码等信息),Sqoop使用MapReduce导入和导出数据,MR提供了容错机制和并行运算。 Sqoop是Apache基金会开源的软件产品,官网http://sqoop.apache.org Github地址 https://github.com/apache/sqoop

使用实例

7.2.13. Importing Data Into HBase --hbase-table 指定HBase表。 每一行输入的数据都会转换为HBase的Put操作作为输出到HBase表的行。 默认情况下,Sqoop会使用--split-by的列[上面的create_date]作为rowkey。 也可以通过--hbase-row-key指定作为rowkey的列。 每一个输出行都会放在同一个列族中,必须通过--column-family指定列族。 不能使用--direct【会冲突】。 --hbase-row-key也可以指定复合行健,中间使用逗号隔开。 默认如果HBase表和列族不存在,Sqoop会直接报错退出,所以需要在Sqoop执行之前创建好HBase表和列族。 如果指定--hbase-create-table和列族,HBase表不存在则会自动创建。 Sqoop会序列化所有的值,以字符串形式转化为utf-8的字节数组存到HBase中。 Sqoop会跳过除了行健之外所有为MULL的列。 指定--hbase-bulkload可以采用大批量加载来替代直接写入HBase。