• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 엔지니어링

  • 해결 여부

    미해결

storm kafka spout , hbase error

22.11.21 14:51 작성 조회수 280

0

storm 에서 kafka, hbase에서 에러가 발생 하였습니다. 해당 error를 해결하고자 다른 수강자분께서 남겨주신 글들을 참고하였고 google의 도움을 받았으나 해결이 되지 않았습니다. [zkcli node 정상 . kafka 실시간 데이터 수집은 정상 구동 중]

storm jar 파일을 열어 본 결과 아래와 같은 더이상 지원하지 않는다고 합니다.

storm jar 파일의 최신화가 필요 할 것 같은데 혹시 개선하실 계획이 있으실까요

 

답변 1

답변을 작성해보세요.

0

안녕하세요! 민규님!

파일럿 환경의 실시간 처리 단계에서 많이들 어려워 하십니다. ^^;;

말씀 하신데로 org.apache.storm.kafka.KafkaSpout 는 Storm 1.2.4 까지만 지원을 하고

2.x 부터는 org.apache.storm.kafka.spout.KafkaSpout 패키지로 이동 및 수정 되었습니다~

현재 실습 환경에서 사용하는 Storm 1.2.3의 KafkaSpout는 파일럿의 기능을 진행 하는데는 문제는 없습니다.

다만 스톰 토폴로지가 갖는 의존성(Zookeeper, Kafka, HBase 등)이 복잡하고, 이들이 싱글 노드로 구성 되어 있어서 테스트중 예상치 못한 오류가 자주 발생하는 편입니다. TT

혹시 아래 절차로 테스트 해보셧는지요?!

1. 스톰 토폴로지 삭제 : $ storm kill "DriverCarInfo

2. CM에서 카프카 중지

3. Service 명령으로 Storm 중지

4. CM에서 주키퍼 중지

5. CM에서 주키퍼 시작

6. Service 명령으로 Storm 시작

7. CM에서 카프카 시작

8. 스톰 토폴로지 배포

9. 실시간 테스트

위 절차로도 해결이 안되면요...Storm 로그좀 부탁 드립니다~

- 빅디 드림

 

 

민규님의 프로필

민규

질문자

2022.11.21

답변 주셔서 감사합니다. 제가 jar 파일을 몇번 건드려서 올려가지고 분석이 힘드시지 않을까 합니다만 부끄럽지만 log를 올려 봅니다

 

storm-nimbus.out

Running: java -server -Ddaemon.name=nimbus -Dstorm.options= -Dstorm.home=/opt/storm -Dstorm.log.dir=/opt/storm/logs -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib:/usr/lib64 -Dstorm.conf.file= -cp /opt/storm/*:/opt/storm/lib/*:/opt/storm/extlib/*:/opt/storm/extlib-daemon/*:/opt/storm/conf -Xmx1024m -Djava.deserialization.disabled=true -Dlogfile.name=nimbus.log -Dlog4j.configurationFile=/opt/storm/log4j2/cluster.xml org.apache.storm.daemon.nimbus.Nimbus

Running: java -server -Ddaemon.name=nimbus -Dstorm.options= -Dstorm.home=/opt/storm -Dstorm.log.dir=/opt/storm/logs -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib:/usr/lib64 -Dstorm.conf.file= -cp /opt/storm/*:/opt/storm/lib/*:/opt/storm/extlib/*:/opt/storm/extlib-daemon/*:/opt/storm/conf -Xmx1024m -Djava.deserialization.disabled=true -Dlogfile.name=nimbus.log -Dlog4j.configurationFile=/opt/storm/log4j2/cluster.xml org.apache.storm.daemon.nimbus.Nimbus

Running: java -server -Ddaemon.name=nimbus -Dstorm.options= -Dstorm.home=/opt/storm -Dstorm.log.dir=/opt/storm/logs -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib:/usr/lib64 -Dstorm.conf.file= -cp /opt/storm/*:/opt/storm/lib/*:/opt/storm/extlib/*:/opt/storm/extlib-daemon/*:/opt/storm/conf -Xmx1024m -Djava.deserialization.disabled=true -Dlogfile.name=nimbus.log -Dlog4j.configurationFile=/opt/storm/log4j2/cluster.xml org.apache.storm.daemon.nimbus.Nimbus

 

 

storm-supervisor.out

Running: java -server -Ddaemon.name=supervisor -Dstorm.options= -Dstorm.home=/opt/storm -Dstorm.log.dir=/opt/storm/logs -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib:/usr/lib64 -Dstorm.conf.file= -cp /opt/storm/*:/opt/storm/lib/*:/opt/storm/extlib/*:/opt/storm/extlib-daemon/*:/opt/storm/conf -Xmx256m -Djava.deserialization.disabled=true -Dlogfile.name=supervisor.log -Dlog4j.configurationFile=/opt/storm/log4j2/cluster.xml org.apache.storm.daemon.supervisor.Supervisor

Running: java -server -Ddaemon.name=supervisor -Dstorm.options= -Dstorm.home=/opt/storm -Dstorm.log.dir=/opt/storm/logs -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib:/usr/lib64 -Dstorm.conf.file= -cp /opt/storm/*:/opt/storm/lib/*:/opt/storm/extlib/*:/opt/storm/extlib-daemon/*:/opt/storm/conf -Xmx256m -Djava.deserialization.disabled=true -Dlogfile.name=supervisor.log -Dlog4j.configurationFile=/opt/storm/log4j2/cluster.xml org.apache.storm.daemon.supervisor.Supervisor

Running: java -server -Ddaemon.name=supervisor -Dstorm.options= -Dstorm.home=/opt/storm -Dstorm.log.dir=/opt/storm/logs -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib:/usr/lib64 -Dstorm.conf.file= -cp /opt/storm/*:/opt/storm/lib/*:/opt/storm/extlib/*:/opt/storm/extlib-daemon/*:/opt/storm/conf -Xmx256m -Djava.deserialization.disabled=true -Dlogfile.name=supervisor.log -Dlog4j.configurationFile=/opt/storm/log4j2/cluster.xml org.apache.storm.daemon.supervisor.Supervisor

 

 

storm-ui.out

 

Running: java -server -Ddaemon.name=ui -Dstorm.options= -Dstorm.home=/opt/storm -Dstorm.log.dir=/opt/storm/logs -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib:/usr/lib64 -Dstorm.conf.file= -cp /opt/storm/*:/opt/storm/lib/*:/opt/storm/extlib/*:/opt/storm/extlib-daemon/*:/opt/storm/lib-webapp/*:/opt/storm/conf -Xmx768m -Djava.deserialization.disabled=true -Dlogfile.name=ui.log -Dlog4j.configurationFile=/opt/storm/log4j2/cluster.xml org.apache.storm.daemon.ui.UIServer

Running: java -server -Ddaemon.name=ui -Dstorm.options= -Dstorm.home=/opt/storm -Dstorm.log.dir=/opt/storm/logs -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib:/usr/lib64 -Dstorm.conf.file= -cp /opt/storm/*:/opt/storm/lib/*:/opt/storm/extlib/*:/opt/storm/extlib-daemon/*:/opt/storm/lib-webapp/*:/opt/storm/conf -Xmx768m -Djava.deserialization.disabled=true -Dlogfile.name=ui.log -Dlog4j.configurationFile=/opt/storm/log4j2/cluster.xml org.apache.storm.daemon.ui.UIServer

Exception in thread "main" java.lang.RuntimeException: java.io.IOException: Failed to bind to 0.0.0.0/0.0.0.0:9088

at org.apache.storm.daemon.ui.UIServer.main(UIServer.java:183)

Caused by: java.io.IOException: Failed to bind to 0.0.0.0/0.0.0.0:9088

at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:346)

at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:308)

at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)

at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:236)

at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)

at org.eclipse.jetty.server.Server.doStart(Server.java:394)

at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)

at org.apache.storm.daemon.ui.UIServer.main(UIServer.java:179)

Caused by: java.net.BindException: Address already in use

at sun.nio.ch.Net.bind0(Native Method)

at sun.nio.ch.Net.bind(Net.java:461)

at sun.nio.ch.Net.bind(Net.java:453)

at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:222)

at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:85)

at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:342)

... 7 more

 

 

 

 

민규님의 프로필

민규

질문자

2022.11.21

말씀해 주신 조치는 물론이거니와 zookeeper data clean도 완료 후 진행 하였습니다. (사실 이부분에서 오랫동안 막혀 있어서 가상머신은 몇번씩 재부팅 되었습니다. ㅠㅠ)

제가 조치한 내용으로는 zookeeper의 localhost 연결을 zoo-status 로 leader 상태인 slave 서버로 가도록 변경 하였습니다.

jar에서는 dependency와 지정된 서버들의 명칭 만 변경하였으며 변경전에도 동일한 오류가 발생하였었습니다.

 

 

네~ 민규님!

변경한 파일럿 환경에서의 발생한 에러는 본인이 정확하게 파악하기가 어렵습니다. TT

앞서 말씀 드렸듯이 제공드린 스톰의 소스는 JDK 1.8, Storm 1.2.3 그리고 CM에서 설치된 Zookeeper및 HBase 환경이라면 문제 없이 작동하게 구성 되어 있습니다.

우선 임의로 변경 하셨다는 jar 파일은 삭제해 주시고요..

원래 제공 드린 bigdata.smartcar.storm-1.0.jar를 배포하는 단계부터 다시 부탁 드립니다.

그렇게 파일럿 소스와 동일한 환경에서 발생한 Error 로그들을 부탁 드립니다~

실시간 적재 단계까지 진행 하신 것으로 봤을 땐, 큰 문제는 아닌것으로 보입니다. ^^

다소 번거롭더라도 강의 내용과 동일한 환경으로 재구성해 주세요~

-빅디 드림