Versions
Druid 0.12.0
Java 1.8.0_161
과정
- Java 설치
sudo yum install -y java-1.8.0-openjdk-devel.x86_64
-
druid User 추가 & druid 다운로드 & unzip
-
mv druid-0.12.0 /opt/druid/druid-0.12.0
-
설정 파일들 수정(jvm.config, runtime.properties)
-
metadata storage 설정(MySQL)
sh
# /opt/druid/druid-0.12.0/conf/druid/_common/common.properties
druid.extensions.loadList=["druid-kafka-eight","mysql-metadata-storage", "druid-s3-extensions"]
druid.metadata.storage.type=mysql
druid.metadata.storage.connector.connectURI=jdbc:mysql://{host}:{port}/{database}
druid.metadata.storage.connector.user=user
druid.metadata.storage.connector.password=password
- 실행
sh
$ ./bin/historical.sh start
$ ./bin/overlord.sh start
$ ./bin/middleManager.sh start
$ ./bin/broker.sh start
$ ./bin/coordinator.sh start
다운 타임없이 재실행을 하고 싶은 경우 다음과 같이 추천함
- Historical
- Overlord (if any)
- Middle Manager (if any)
- Standalone Real-time (if any)
- Broker
- Coordinator (or merged Coordinator+Overlord)
EMR과 같이 사용하고 싶다면
다른 하둡 버젼을 사용하는 것이기 때문에 그 하둡 설정관련 파일들이 필요합니다. Working with different versions of Hadoop 참고
-
EMR 하둡 config파일 가져오기 EMR의
/etc/hadoop/conf
안에 있는core-site.xml
,hdfs-site.xml
,mapred-site.xml
,yarn-site.xml
파일을 가져와서 드루이드의conf/druid/_common/
안에 넣어줍니다. -
S3 extension 추가 및 Deep Storage 설정
cont/druid/_common/common.runtime.properties
```sh druid.extensions.loadList = ["druid-s3-extensions"]
druid.storage.type=s3 druid.storage.bucket=druid-bucket druid.storage.baseKey=druid/segments druid.s3.accessKey=XXXXXXXXXXXXXXX druid.s3.secretKey=XXXXXXXXXXXXXXX ```
- 라이브러리 추가
```sh $ cp -r /usr/lib/hadoop/client/ /opt/druid/druid-0.12.0/hadoop-dependencies/hadoop-client/emr/ $ cp -r /usr/share/aws/emr/emrfs/ /opt/druid/emrfs $ cp -r /usr/share/aws/aws-sdk-java/ /opt/druid/aws-sdk-java
```
- bin/node.sh 수정 middleManager를 실행할 때 library를 추가함
sh
JAVA_HOME=/usr/lib/jvm/java
if [ "$nodeType" == "middleManager" ]; then
LIB_DIR=$LIB_DIR/*:/opt/druid/emrfs/conf:/opt/druid/emrfs/lib/*:/opt/druid/emrfs/auxlib/*:/opt/druid/aws-java-sdk
fi
-
middleManager 재시작
-
index 파일에 s3 accessKey, secretKey 추가 &&
hadoopDependencyCoordinates
emr로 설정
json
{
...
"spec": {
"tuningConfig": {
"jobProperties": {
"fs.s3.awsAccessKeyId" : "XXXXXXXXXXXXXXX",
"fs.s3.awsSecretAccessKey" : "XXXXXXXXXXXXXXX"
}
}
},
"hadoopDependencyCoordinates": ["org.apache.hadoop:hadoop-client:emr-client"]
}
Refer
- http://druid.io/docs/latest/operations/other-hadoop.html
- http://aipkds.tistory.com/136
Comments !