2013-12-12 3 views
0
내가 Sqoop을을 사용하여 HBase를방울을 오라클에서 필드를 포함하는 테이블을 가져올

를 HBase를 위해 BLOB 및 CLOB를 가져옵니다. 는 I 명령 밑도는 :은 내가

여기 file_data
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 

블롭 열이다.

쿼리가 실행되고 있지만 hbase의 출력에 file_data 필드가 표시되지 않습니다. 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  

출력은 file_data 필드를 표시하지 않는다. 이 문제를 해결하는 방법?

답변

0

in Sqoop --hbase-bulkload 옵션과 같은 옵션이 있습니다. 벌크로드를 수행 할 수 있습니다.

아래

는 Sqoop을 대량로드에 대한 명령

Sqoop을 가져 오기입니다 -Dsqoop.hbase.add.row.key = 사실 --connect JDBC : 신탁 : 얇은 : @ipaddress : PORTNUMBER : DBNAME --username 사용자 이름 - -table fnd_lobs_dupl --password pwd --hbase 테이블 blobs - 컬럼 패밀리 cf - 컬럼 file_id, file_name, file_data, upload_date --hbase-row-key file_id --hbase-create-table --inline-lob- 제한 0 - hbase - bulkload --as - sequencefile - m1

+0

답장을 보내 주셔서 감사합니다. 이제 hbase에서 blob 필드를 가져올 수 있습니다. – suni

+0

환영합니다 – swetha

+0

같은 파일을 HIVE에 저장할 수 있습니까? – user3858193

0

사용중인 sqoop의 버전에 따라 다릅니다. 현재 버전 1.4.4에서는 blob을 hbase로 가져올 수 없습니다.

Sqoop의 직접 모드는 BLOB, CLOB 또는 LONGVARBINARY 열의 가져 오기를 지원하지 않습니다. 당신이 https://github.com/apache/sqoop/blob/trunk/COMPILING.txt

아파치 Sqoop을 트렁크에 따라 트렁크에서 컴파일하는 경우

는하지만 : https://github.com/apache/sqoop/tree/trunk

새로운 기능이 있습니다. 쓰기를 직접 반대로 그것은 HBase와의 부하를 줄이기 위해 HBaseBulkImportMapper.java

--hbase-bulkload  Enables bulk loading 

로 인해 loadLargeObjects(lobLoader);의 작동, Sqoop을 대량로드 할 수 있습니다. 벌크로드를 사용하려면 --hbase-bulkload를 사용하여 벌크로드를 활성화하십시오.

다시 1.4.4에는이 인수가 없습니다.