IT Japan
Embulk에서 데이터로드 (3) - MariaDB에서 Hadoop HDFS 본문
Embulk 의한 데이터로드 이번에는 MariaDB에서 Hadoop HDFS 패턴이 알아서 해. 환경은 CentOS6.6 CDH5.4의 Hadoop 의사 분산 환경에서 MariaDB도 함께. Embulk 설치까지 과거 기사와 똑같이.
플러그인의 설치부터 시작합니다. MariaDB의 input으로 mysql 용 플러그인을 사용한다.
$ embulk gem install embulk-input-mysql
$ embulk gem install embulk-output-hdfs
MariaDB 측 대응. 이 근처도 이전까지의 게시물과 같다.
CREATE TABLE embulktest.access( country_code varchar (10), access_id int , access_time varchar (30) ); CREATE USER embulkuser@ 'localhost' IDENTIFIED BY 'embulkuserpasswd' ; GRANT ALL ON embulktest.* TO embulkuser@ 'localhost' ; |
그리고, access 테이블에 데이터 투입 해 둔다.
설정 파일.
~/sample/config_out_hdfs.yml
in: type: mysql host: localhost user: embulkuser password: "embulkuserpasswd" database: embulktest table: access select: "*" out: type: hdfs config_files: - /etc/hadoop/conf/core-site.xml - /etc/hadoop/conf/hdfs-site.xml - /etc/hadoop/conf/mapred-site.xml - /etc/hadoop/conf/yarn-site.xml config: fs.defaultFS: 'hdfs://localhost:8020' dfs.replication: 1 mapreduce.client.submit.file.replication: 1 fs.hdfs.impl: 'org.apache.hadoop.hdfs.DistributedFileSystem' fs.file.impl: 'org.apache.hadoop.fs.LocalFileSystem' formatter: type: csv encoding: UTF-8 |
HDFS 경로의 권한을 변경하여 둔다.
$ sudo -u hdfs hadoop fs -chmod -R 0777 / tmp
덧붙여서 output_path의 기본은 /tmp/embulk.output.hdfs_output.%Y%m%d_%s된다.
실행.
$ embulk run ~ / sample / config_out_hdfs.yml
HDFS / tmp를 들여다 보면 무엇인가 할 수 있기 때문에, 일단 내용물을 확인하십시오.
$ hadoop fs -cat /tmp/embulk.output.hdfs_output.201508xx_14xxxxxxxx/000.00 | head -10
MD,85049,2015-07-13 11:48:29 DO,83358,2015-08-04 12:03:13 TM,35540,2015-08-09 16:50:54 NR,61590,2015-07-15 13:58:06 BZ,48951,2015-08-04 07:16:34 NO,27406,2015-07-31 01:05:03 AZ,49429,2015-07-28 15:07:47 BJ,82949,2015-07-22 09:20:12 EE,77457,2015-07-23 22:50:26 TR,27025,2015-08-03 13:34:33 |
종료.
안돼. 기사에 할만한 것은 아무것도하고 있지않아
덧붙여서. 지난 기사에서 MariaDB의 데이터를 Sqoop2 통해 HDFS에로드 패턴을 시도했지만, 현재 지뢰 가득한 「산령 온갖 도깨비」상태이며, 실용 수준은 아니다. 미래의 상황은 정말 말할 수 없지만, Embulk에있다니까 그것으로 좋지 않을까? ? ?