如何将blob和clob导入hbase
我想使用sqoop将包含blob字段的表从oracle导入hbase。 我使用了以下命令:如何将blob和clob导入hbase,hbase,hive,sqoop,Hbase,Hive,Sqoop,我想使用sqoop将包含blob字段的表从oracle导入hbase。 我使用了以下命令: sqoop import --connect jdbc:oracle:thin:@10.2.152.241:1521:QASOURCE --username devsrc --table fnd_lobs --password devsrc --hbase-table fndlobs --column-family cf --hbase-row-key file_id --columns file
sqoop import --connect jdbc:oracle:thin:@10.2.152.241:1521:QASOURCE
--username devsrc --table fnd_lobs --password devsrc --hbase-table fndlobs
--column-family cf --hbase-row-key file_id --columns file_id,file_name,file_data,upload_date,expiration_date,program_name
--hbase-create-table --as-sequencefile --verbose -m1
这里的file\u data
是一个blob列
查询正在执行,但hbase的输出不显示文件\u数据
字段
hbase的输出:
238883 column=cf:program_name, timestamp=1386805999370, value=PER_ADDR_gb_UK.pdf
238883 column=cf:upload_date, timestamp=1386805999370, value=2004-07-01 04:33:40.0
238884 column=cf:file_name, timestamp=1386805999370, value=/appltop/115/per/11.5.0/patch/115/publisher/tem
plates/PER_WS1_gb_UK.pdf
238884 column=cf:program_name, timestamp=1386805999370, value=PER_WS1_gb_UK.pdf
238884 column=cf:upload_date, timestamp=1386805999370, value=2004-07-01 04:33:41.0
238885 column=cf:file_name, timestamp=1386805999370, value=/appltop/115/per/11.5.0/patch/115/publisher/tem
plates/PER_WS3_gb_UK.pdf
238885 column=cf:program_name, timestamp=1386805999370, value=PER_WS3_gb_UK.pdf
238885 column=cf:upload_date, timestamp=1386805999370, value=2004-07-01 04:33:49.0
238886 column=cf:file_name, timestamp=1386805999370, value=/appltop/115/per/11.5.0/patch/115/publisher/tem
plates/PER_WS4_gb_UK.pdf
输出未显示
文件\u数据
字段。如何纠正此问题?这取决于您使用的sqoop版本。目前,在版本1.4.4中,您无法将blob导入hbase
Sqoop的直接模式不支持导入BLOB、CLOB或LONGVARBINARY列
但是如果你从主干下面编译它
Apache Sqoop中继:
有一个新功能。由于loadLargeObjects(lobLoader),它将起作用代码>在HBaseBulkImportMapper.java
--hbase-bulkload Enables bulk loading
为了减少hbase上的负载,Sqoop可以进行批量加载,而不是直接写入。要使用批量加载,请使用--hbase bulkload启用它
同样,1.4.4没有这个参数。这取决于您使用的是哪个版本的sqoop。目前,在版本1.4.4中,您无法将blob导入hbase
Sqoop的直接模式不支持导入BLOB、CLOB或LONGVARBINARY列
但是如果你从主干下面编译它
Apache Sqoop中继:
有一个新功能。由于loadLargeObjects(lobLoader),它将起作用代码>在HBaseBulkImportMapper.java
--hbase-bulkload Enables bulk loading
为了减少hbase上的负载,Sqoop可以进行批量加载,而不是直接写入。要使用批量加载,请使用--hbase bulkload启用它
同样,1.4.4没有这个参数。在Sqoop中,我们有一个类似--hbase bulkload选项的选项,它允许进行bulkload
下面是用于sqoop批量加载的命令
sqoop import-Dsqoop.hbase.add.row.key=true--connect jdbc:oracle:thin:@ipaddress:portnumber:DBName--username--table fnd_lobs_dupl--password pwd--hbase table blobs--column family cf--columns file_id,file_name,file_data,上传日期--hbase行键文件--hbase创建表--inline lob limit 0--hbase bulkload--as sequencefile-m1在Sqoop中,我们有一个类似--hbase bulkload选项的选项,它支持批量加载
下面是用于sqoop批量加载的命令
sqoop import-Dsqoop.hbase.add.row.key=true--connect jdbc:oracle:thin:@ipaddress:portnumber:DBName--username--table fnd_lobs_dupl--password pwd--hbase table blobs--column family cf--columns file_id,file_name,file_data,上传日期--hbase行键文件--hbase创建表--inline lob limit 0--hbase bulkload--as sequencefile-m1谢谢您的回复,现在可以工作了。我现在可以在hbase中导入blob字段。我们可以在配置单元中存储相同的文件吗?谢谢您的回复,现在可以工作了。我现在可以在hbase中导入blob字段。我们可以在配置单元中存储相同的文件吗?