sqoop 가 져 오기 내 보 내기 데이터 명령 파라미터 상세 설명

3490 단어 빅 데이터
sqoop 가 져 오기 내 보 내기 데이터 명령 파라미터 상세 설명
1. 관계 데이터베이스 에서 hdfs 로 가 져 오기
sqoop import \

--connect        ,    mysql      ;

--username       

--password      

--target-dir       HDFS  

--table                

--as-textfile#        

--as-avrodatafile#   avro  

--as-sequencefile#        

--as-parquetfile#   parquet  

--columns hive      

--delete-target-dir           

-m     mapper  

-e|--query     sql  

--WHERE            

-z|--compress    

--compression-codec:      ,  gzip

--null-string:           ,    ,  HDFS   

--null-non-string:            ,    ,  HDFS   

메모: 지정 한 hdfs 디 렉 터 리 는 존재 할 수 없습니다. scoop 은 이 디 렉 터 리 를 MapReduce 의 출력 디 렉 터 리 로 사용 하기 때 문 입 니 다.
eg:        
sqoop import \
--connect jdbc:mysql://mysqlhost:3306/userdb \
--username root \
--password root \
--table usertable \
--where "name='tom' and age=15" \
--target-dir /user/test \
--m 1;

2. 관계 라 이브 러 리 에서 hive 표 로 가 져 오기
sqoopimport \
–connectjdbc:mysql://hadoop-all-01:3306/hadoop \
–usernamehive \
–passwordhive \
–hive-import\
–create-hive-table\
–tableemployee \
–hive-overwrite\
–fields-terminated-by”,” \
–lines-terminated-by”” \
–hive-tablehadoop.employee
– hive - import: hive 로 가 져 오 는 것 을 의미 합 니 다.
– table: 관계 형 데이터베이스 에서 어떤 표 에서 hive 로 가 져 오고 가 져 온 hdfs 경로 에 이 이름 을 포함 할 수 없습니다. 그렇지 않 으 면 알림 표 가 존재 합 니 다.그 이 유 는 hdfs 에 먼저 가 져 왔 기 때 문 입 니 다. hive 의 loaddata 를 통 해 hive 에 가 져 왔 습 니 다.
– hive - overwrite: 표 가 존재 하면 데 이 터 를 덮어 씁 니 다. 일반적인 상황 에서 존재 하지 않 습 니 다. 이 표 가 있 으 면 가 져 올 때 오류 가 발생 합 니 다.
– hive - table: hive 어떤 데이터베이스 에 있 는 시 계 를 가 져 옵 니까? 데이터 베 이 스 를 지정 하지 않 거나 전혀 지정 하지 않 으 면 default 데이터베이스 에 가 져 옵 니 다. 기본 표 이름 은 RMDBS 표 이름과 같 습 니 다.
3. HDFS 에서 관계 형 데이터베이스 로 데이터 내 보 내기
  :

sqoop export \

--connectjdbc  \

--username  \

--password  \

--driver  \

--columnscol1,col2,......        

--direct:  direct  ,    

--export-dir:  HDFS       

-m:   mapper  

--table:         



      :

--input-enclosed-by:            

--input-escaped-by:           

--input-fields-terminated-by:HDFS       

--input-lines-terminated-by:HDFS     



       :

--enclosed-by:        

--escaped-by:       

--fields-terminated-by:          

--lines-terminated-by:           

--mysql-delimiters:  mysql      ,fields:,  lines: 
escaped-by: \ hive NULL, NULL \N --input-null-string hive NULL, NULL \N --input-null-non-string **eg:** sqoopexport \ --connectjdbc:mysql://hadoop-all-01:3306/hadoop \ --usernamehive \ --passwordhive \ --drivercom.mysql.jdbc.Driver \ --export-dir/user/hive/warehouse/hadoop.db/m_d \ --columns"id,country,city,phone" \ --tabledirector \ --num-mappers2 \ --direct\ --input-fields-terminated-by',' \ --input-null-string'\\N' \ --input-null-non-string'\\N'

4. Hive 데 이 터 를 RMDBS 표 로 가 져 오기
이것 은 사실 HDFS 데이터 가 RMDBS 표 에 가 져 온 것 과 마찬가지 로 데이터 가 HDFS 에 저장 되 어 있 기 때문이다.

좋은 웹페이지 즐겨찾기