Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.
MariaDB의 study db에 접속하여 product 테이블의 내용을 가져다가 hive의 test db밑에 product라는 hive테이블로 자동생성하는 sqoop 명령문이다.
이때 MariaDB에서 가져온 내용에 저장되는 HDFS 위치는 hive에서 생성한 test db밑에 저장된다.
hive table을 자동으로 생성하는 경우는 --lines-terminated-by를 사용할 수 없는데... sqoop에서는 지정가능하지만 hive에서 '\n'만 지원하기 때문에 오류가 발생한다.
그리고 console등을 이용하여 자동생성하는 경우 hue에서 필요로 하는 정보가 등록되지 않아서 인지 데이타는 볼수 있으나 column명 및 속성은 조회되지 않는다.
물론 describe를 이용하여 볼수는 있다.
sqoop에서 바로 hive table을 생성하면 컬럼에 newline(\n)이 들어 있어도 문제없이 데이타를 가져올 수 있다.
sqoop import \
--connect=jdbc:mysql://gsda3:포트/study \
--username=사용자id\
--password=패스워드\
--table=product \
--hive-table test.product \
--create-hive-table \
--hive-import \
--hive-home test.db