작성
·
433
답변 3
0
위에 가이드대로 진행해보면
---------------------------------------------------
$ zookeeper-client
[zk: ...] ls /brokers/topics/SmartCar-Topic/partitions/
위 SmartCar-Topic Z노드가 확인이 되었으면 큰 문제는 없습니다. 그냥 아래 순서대로 스톰 토폴로지를 재배포 후 테스트 해보시기 바랍니다.
=> 아래와 같이 메시지 나옵니다.
[zk: localhost:2181(CONNECTED) 0] ls /brokers/topics/SmartCar-Topic/partitions/
Command failed: java.lang.IllegalArgumentException: Path must not end with / character
---------------------------------------------------------
8. 스톰 토폴로지 배포
=> 아래와 같이 메시지 나옵니다.
[root@server02 working]# storm jar bigdata.smartcar.storm-1.0.jar com.wikibook.bigdata.smartcar.storm.SmartCarTopology DriverCarInfo
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/pilot-pjt/apache-storm-1.2.3/lib/log4j-slf4j-impl-2.8.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/pilot-pjt/working/bigdata.smartcar.storm-1.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Running: java -client -Ddaemon.name= -Dstorm.options= -Dstorm.home=/home/pilot-pjt/apache-storm-1.2.3 -Dstorm.log.dir=/home/pilot-pjt/apache-storm-1.2.3/logs -Djava.library.path=/usr/local/lib:/opt/local/lib:/usr/lib -Dstorm.conf.file= -cp /home/pilot-pjt/apache-storm-1.2.3/*:/home/pilot-pjt/apache-storm-1.2.3/lib/*:/home/pilot-pjt/apache-storm-1.2.3/extlib/*:bigdata.smartcar.storm-1.0.jar:/home/pilot-pjt/storm/conf:/home/pilot-pjt/apache-storm-1.2.3/bin -Dstorm.jar=bigdata.smartcar.storm-1.0.jar -Dstorm.dependency.jars= -Dstorm.dependency.artifacts={} com.wikibook.bigdata.smartcar.storm.SmartCarTopology DriverCarInfo
Error: Could not find or load main class com.wikibook.bigdata.smartcar.storm.SmartCarTopology
0
안녕하세요! hkjung님!
파일럿 프로젝트 진행하며, 실시간 데이터 적재 단계에서 여러 문제들을 만나게 되는 데요..TT
실시간 데이터 처리에는 많은 서버들과 리소스들이 사용되는, 복잡한 아키텍처로 구성 되어 있어서 더욱 그렇습니다.
점검을 해도 특별히 문제의 원인을 찾은수 없다면...아래 절차후 테스트해 보시기 바랍니다.
-----------------------------
주키퍼 클라이언트로 접속해서 토픽 정보가 잘 생성 되어 있는지 Server02에 접속해 아래 명령대로 확인해 보시고요..
$ zookeeper-client
[zk: ...] ls /brokers/topics/SmartCar-Topic/partitions
위 SmartCar-Topic Z노드가 확인이 되었으면 큰 문제는 없습니다. 그냥 아래 순서대로 스톰 토폴로지를 재배포 후 테스트 해보시기 바랍니다.
1. 스톰 토폴로지 삭제 : $ storm kill "DriverCarInfo
2. CM에서 카프카 중지
3. Service 명령으로 Storm 중지
4. CM에서 주키퍼 중지
5. CM에서 주키퍼 시작
6. Service 명령으로 Storm 시작
7. CM에서 카프카 시작
8. 스톰 토폴로지 배포
9. 실시간 테스트
- 빅디 드림
0
안녕하세요! 빅디 입니다.
실시간 적재는 아키텍처가 다소 복잡해서 실수들을 많이 하게 됩니다. ^^;;
해당 단계를 처음부터 꼼꼼히 체크해 봐야 하는데요..
서정현님이 테스트중인 실시간 적재의 데이터 파이프라인은 아래와 같습니다.
시뮬레이터 > Flume > Kafka > Storm > HBase | Redis
현재 HBase의 테이블에 데이터가 쌓이지 않고 있으니 앞의 4단계를 꼼꼼히 체크해 봐야 합니다.
0. 먼저 스마트카 실시간 로그시뮬레이터를 실행
1. 아래 명령으로 시뮬레이터가 실시간 데이터를 생성중인지 확인
$ tail -f /home/pilot-pjt/working/driver-realtime-log/SmartCarDriverInfo.log
2. 아래 명령으로 Kafka로 데이터가 잘 들어 오는지 확인
$ kafka-console-consumer --bootstrap-server server02.hadoop.com:9092 --topic SmartCar-Topic --partition 0
3. Storm UI에 접속해 Topology Stats 의 Emitted/Transferred/Ack 카운트가 증가 하는지 확인
Storm-UI : http://server02.hadoop.com:8088
4. Redis-CLI를 실행해 Redis로는 데이터가 잘 들어 오는지 확인
$ redis-cli
$ 127.0.0.1:6379> smembers 20160103
위 4개의 점검결과로 어느 단계에서 데이터 파이프라인이 멈췄는지 확인해 보셔야 합니다.
그리고 문제가 되는 지점의 서버 로그를 열어서 원인 파악을 해보셔야 합니다. 각 로그의 위치는 아래와 같습니다.
Flume: /var/log/flume-ng/
Kafka: /var/log/kafka/
Storm: /var/log/storm/
Redis: /var/log/redis_6379.log
Hbase: /var/log/hbase
실제 필드에선 SW 자체의 버그로 인한 문제도 있지만..오타같은 작은 휴먼 에러로 시스템 전체가 작동하지 않는 경우가 아주 많습니다. 이럴땐 앞의 지나온 과정들을 하나씩 체크 하는수밖에 없습니다..TT
- 빅디 드림
안녕하세요! 빅디입니다.
주키퍼와 스톰 명령 실행중에 오타가 있네요..
우선 주키퍼 명령에선..
[zk: localhost:2181(CONNECTED) 0] ls /brokers/topics/SmartCar-Topic/partitions/
마지막 '/'를 빼고 실행해 주시고요..요건 제가 잘못 가이드 드렸습니다. 죄송합니다..^^;;;
두번째로 스톰 명령에선..
[root@server02 working]# storm jar bigdata.smartcar.storm-1.0.jar com.wikibook.bigdata.smartcar.storm.SmartCarTopology DriverCarInfo
SmartCarTopology ==> SmartCarDriverTopology 로 수정해 주셔야 합니다.
- 빅디 드림