如何将blob和clob导入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将包含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_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字段。我们可以在配置单元中存储相同的文件吗?