Cloudera CDH/CDP 및 Hadoop EcoSystem, Semantic IoT등의 개발/운영 기술을 정리합니다. gooper@gooper.com로 문의 주세요.
0. VisualVM 설치/설정
https://www.gooper.com/ss/index.php?mid=bigdata&category=2813&document_srl=3236 를 참조한다.
1. JmxSink를 활성화 시켜준다. (conf/metrics.properties.template를 metrics.properties로 복사해서 수정해준다)
가. *.sink.jmx.class=org.apache.spark.metrics.sink.JmxSink의 주석제거
## Examples
# Enable JmxSink for all instances by class name
*.sink.jmx.class=org.apache.spark.metrics.sink.JmxSink
나. master.source.jvm.class, worker.source.jvm.class, driver.source.jvm.class, executor.source.jvm.class의 주석제거
# Enable JvmSource for instance master, worker, driver and executor
master.source.jvm.class=org.apache.spark.metrics.source.JvmSource
worker.source.jvm.class=org.apache.spark.metrics.source.JvmSource
driver.source.jvm.class=org.apache.spark.metrics.source.JvmSource
executor.source.jvm.class=org.apache.spark.metrics.source.JvmSource
다. sbin/stop-all.sh하고 다시 start-all.sh하여 수정사항을 반영한다.
2. spark-submit실행시 아래의 옵션을 설정하고 실행시켜야 VisualVM에서 모니터링이 가능하다.
nohup $HOME/spark/bin/spark-submit
--master spark://sda1:7077,sda2:7077
--conf "spark.driver.extraJavaOptions=-Dcom.sun.management.jmxremote
-Djsse.enableSNIExtension=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=9981"
--class com.gooper.icbms.sda.kafka.onem2m.AvroOneM2MDataSubscribe
--jars sda-client-2.0.jar sda-client-2.0.jar
2>&1 < /dev/null &