GPDB에 Hadoop 클라이언트를 설치하는 방법은 2가지가 있습니다.
1. Pivotal HD의 클라이언트 설치
=> Pivotal 에서 사용했던 방식입니다.
2. Apache Hadoop 클라이언트 설치
=> 이전에 POC 했던 방식입니다.
이중 Pivotal HD 클라이언트 설치했던 방식은 아래와 같으며,
Apache Hadoop 클라이언트로 설치하기 위해서는 아래에 설치할 목록으로 설치하시면 됩니다.
## Pivotal HD 클라이언트 설치 방식
1. 간략하게 설치하는 방법
1) 레퍼지토리를 구성해서 yum install로 설치
* 레포지토리 구성
# tar xzv PHD-3.0.1.0-1-centos6.tgz
# cd PHD-3.0.1.0
# ./setup_repo.sh
* 설치할 노드에 repo 파일 생성 (설치 노드는 greenplum master, segment, 모두 설치)
# vi /etc/yum.repos.d/PHD-3.0.1.0.repo ## repository 가 설치된 IP또는 url만 바꾸시면 됩니다.
[PHD-3.0.1.0]
name=PHD-3.0.1.0
baseurl=<a target="_blank" href="http://phd.gphd.local/PHD-3.0.1.0" class="tx-link">http://phd.gphd.local/PHD-3.0.1.0</a>;
gpgcheck=0
* 클라이언트 설치 (모든 노드)
# yum install hadoop-hdfs
# yum install hadoop
# yum install zookeeper
# yum install hadoop-mapreduce
$ gpconfig -c gp_hadoop_home -v "'/usr/phd/3.0.1.0-1/'"
$ gpconfig -c gp_hadoop_target_version -v "'hdp2'"
2. RPM으로 설치하는 방법
1) PHD-3.0.1.0-1-centos6.tgz 를 압축을 풀어서 필요한 패키지 설치
* 이전에 제가 설치했던 방법인데, 그 때는 PHD 2.X으로 설치를 해서 파일명의 변경이 좀 필요로 합니다.
1) Pivotal HD 또는 Apache Hadoop 연동 (Greenplum 메뉴얼에 있는 내용)
n Greenplum에서는 Pivotal HD 뿐만 아니라 Apache Hadoop 에서도 연동 지원
1. hdfs 2.4 install
hdfs 2.4 설치 준비 : http://blog.naver.com/brisk_breeze/220049026928 hdfs 2.4 설치 : http://blog.naver.com/brisk_breeze/220049041075 hdfs 2.4 시작시 에러 처리 : http://codeholic.net/post/88970438662/hadoop-2-x
참고 사이트 : https://www.pivotalguru.com/?p=738
gphdfs install : https://support.pivotal.io/hc/en-us/articles/202635496-How-to-access-HDFS-data-via-GPDB-external-table-with-gphdfs-protocol
2. install gphdfs
1) 주의 사항 - jdk 1.7 인스톨 (jdk 1.7 사용, 1.6일 때 에러 발생) - PHD-2.1.0.0-175.tar.tgz 파일 사용 # rpm -ivh jdk-7u55-linux-x64.rpm # rpm -Uvh jdk-7u55-linux-x64.rpm 2) 설치시 nc 인스톨 # yum install nc
3) 모든 노드에 다 설치 (rpm)
# rpm -ivh ./utility/rpm/bigtop-jsvc-1.0.15_gphd_3_1_0_0-175.x86_64.rpm # rpm -ivh ./utility/rpm/bigtop-utils-0.4.0_gphd_3_1_0_0-175.noarch.rpm # rpm -ivh ./zookeeper/rpm/zookeeper-3.4.5_gphd_3_1_0_0-175.noarch.rpm # rpm -ivh hadoop/rpm/hadoop-2.2.0_gphd_3_1_0_0-175.x86_64.rpm # rpm -ivh hadoop/rpm/hadoop-yarn-2.2.0_gphd_3_1_0_0-175.x86_64.rpm # rpm -ivh hadoop/rpm/hadoop-mapreduce-2.2.0_gphd_3_1_0_0-175.x86_64.rpm # rpm -ivh hadoop/rpm/hadoop-hdfs-2.2.0_gphd_3_1_0_0-175.x86_64.rpm
4) GPDB configuration
$ gpconfig -c gp_hadoop_home -v "'/usr/phd/3.0.1.0-1/'"
$ gpconfig -c gp_hadoop_target_version -v "'hdp2'"
$ gpstop -afr or gpstop -u
5) hdfs 체크 on segment node
$ hdfs dfs -ls hdfs://mdw:9000/test
3. test gphdfs
CREATE WRITABLE EXTERNAL TABLE ext_test_put (i int, bar text) LOCATION ('gphdfs://mdw:9000/test/test') FORMAT 'text' (delimiter '|' null 'null');
INSERT INTO ext_test_put SELECT i, 'bar_' || i FROM generate_series(1, 10000) AS i;
CREATE EXTERNAL TABLE ext_test_get
(i int, bar text) LOCATION ('gphdfs://mdw:9000/test/test') FORMAT 'text' (delimiter '|' null 'null');
4. 성능
[gpadmin@gpdbsne hadoop]$ psql Timing is on. psql (8.2.15) Type "help" for help.
gpadmin=# INSERT INTO ext_test_put SELECT i, 'bar_' || i FROM generate_series(1, 10000) AS i; INSERT 0 10000
Time: 1329.985 ms gpadmin=# INSERT INTO ext_test_put SELECT i, 'bar_' || i FROM generate_series(1, 100000) AS i; INSERT 0 100000 Time: 1371.176 ms gpadmin=# INSERT INTO ext_test_put SELECT i, 'bar_' || i FROM generate_series(1, 1000000) AS i; INSERT 0 1000000 Time: 2250.581 ms gpadmin=# select count(*) From ext_test_get; count --------- 1120000 (1 row)
Time: 2534.421 ms
gpadmin=# INSERT INTO ext_test_put SELECT i, 'bar_' || i FROM generate_series(1, 1000000) AS i; INSERT 0 1000000 Time: 2375.551 ms gpadmin=# select count(*) From ext_test_get; count --------- 2120000 (1 row)
Time: 3067.598 ms
gpadmin=# INSERT INTO ext_test_put SELECT i, 'bar_' || i FROM generate_series(1, 10000000) AS i; INSERT 0 10000000 Time: 14127.984 ms gpadmin=# select count(*) From ext_test_get; count ---------- 12120000 (1 row)
Time: 14455.992 ms
gpadmin=# |
주의 사항 : gpconfig 적용시 잘못 드리면, DB 컨피그를 잘못 DB Start가 되지 않을 수 있습니다.
댓글 없음:
댓글 쓰기