hive, hadoop, hbase, sqoop 등을 사용하는 경우
CDH-5.1.2 --> CDH-5.5.1 로의 업그레이드를 할 때, 사용할 수 있는 팁
hadoop-2.6.0+cdh5.5.1+924-1.cdh5.5.1.p0.15.el6.x86_64
hive-1.1.0+cdh5.5.1+327-1.cdh5.5.1.p0.15.el6.noarch
1. 단순 패치 (CDH-5.5.1 설치)
yum 으로 설치한 CDH-5.1.2 위에 단순히 CDH-5.5.1 설치를 진행했다. hadoop, hive 에러 발생했다.
2. yum 기존 패키지 (CDH-5.1.2) 삭제후 CDH-5.5.1 설치
hadoop, hive는 잘 되는데, sqoop 실행시 에러 발생
확인해보니 CDH5-1.2의 하위 avro lib (serialization lib이다.)때문에 dependency lib가 꼬인 문제였다.
3. yum 기존 패키지,CDH-5.5.1 설치 삭제, avro 관련 jar 관련 모든 파일을 삭제하고, 신규 CDH-5.5.1 재설치
어떤 lib인지 몰라도. hbase도 설치해야 hive/hadoop/sqoop이 잘 동작했다.
sqoop은 mysql DB 연결하려면, mysql jdbc driver(mysql-connector-java-5.1.38.jar)를 다운받아 /usr/lib/sqoop/lib에 복사한다.
connection time out 나고 그러면 network acl 에 문제있는지 확인한다. hive 를 실행하는 서버가 아닌 data node쪽에서 telnet으로 db를 붙는지 확인한다.
그러나 과거에 잘 동작하던 hive에서 java.lang.OutOfMemoryError: Java heap space 가 발생했다.
(소스를 분석하면서 진행하는 것이 좋음)
/usr/lib/hive/conf/hive-env.sh 에서 메모리를 수정한다. (hive-env.sh.template를 참조한다.)
<원본>
# if [ "$SERVICE" = "cli" ]; then
# if [ -z "$DEBUG" ]; then
# export HADOOP_OPTS="$HADOOP_OPTS -XX:NewRatio=12 -Xmx1g -Xms1g -XX:MaxHeapFreeRatio=40 -XX:MinHeapFreeRatio=15 -XX:+UseParNewGC -XX:-UseGCOverheadLimit"
# else
# export HADOOP_OPTS="$HADOOP_OPTS -XX:NewRatio=12 -Xms10m -XX:MaxHeapFreeRatio=40 -XX:MinHeapFreeRatio=15 -XX:-UseGCOverheadLimit"
# fi
# fi
# The heap size of the jvm stared by hive shell script can be controlled via:
#
# export HADOOP_HEAPSIZE=1024
<수정>
# if [ "$SERVICE" = "cli" ]; then
# if [ -z "$DEBUG" ]; then
export HADOOP_OPTS="$HADOOP_OPTS -XX:NewRatio=12 -Xmx1g -Xms1g -XX:MaxHeapFreeRatio=40 -XX:MinHeapFreeRatio=15 -XX:+UseParNewGC -XX:-UseGCOverheadLimit"
# else
# export HADOOP_OPTS="$HADOOP_OPTS -XX:NewRatio=12 -Xms10m -XX:MaxHeapFreeRatio=40 -XX:MinHeapFreeRatio=15 -XX:-UseGCOverheadLimit"
# fi
# fi
# The heap size of the jvm stared by hive shell script can be controlled via:
#
export HADOOP_HEAPSIZE=1024
참고로, CDH5 lib를 yum으로 설치하면, 디렉토리는 다음과 같다.
/usr/lib/hive/
/usr/lib/hadoop
/usr/lib/hbase/
/usr/lib/avro/
/usr/bin/sqoop/
/usr/lib/hadoop-mapreduce/
4. hadoop streaming
hadoop streaming을 쓰려면, 아래 lib을 참조한다.
/usr/lib/hadoop-mapreduce/hadoop-streaming-2.6.0-cdh5.5.1.jar
$ hadoop jar /usr/lib/hadoop-mapreduce/hadoop-streaming-2.6.0-cdh5.5.1.jar -D mapred.job.priority=LOW -D mapred.job.name="test" -D mapred.output.compress=false -output=하둡디렉토리위치 -mapper=map.py -file=map.py -numReduceTasks 0
'unix and linux' 카테고리의 다른 글
ubuntu에서 rpm 설치하기 (0) | 2016.02.03 |
---|---|
ubuntu에서 /usr/sbin/alternatives: No such file or directory 발생 해결 (0) | 2016.02.01 |
logrotate 3.9.1설치와 popt 모듈 (0) | 2016.01.14 |
curl의 걸리는 시간 (time elapsed) 확인하기 (0) | 2015.08.23 |
Rsync시 디렉토리 생성하기 (0) | 2015.08.01 |