🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    데이터 엔지니어링

  • 해결 여부

    미해결

Hbase에 데이터 적재가 되지 않습니다...

21.08.07 23:08 작성 조회수 369

0

hbase shell로 들어가서 count 'DriverCarInfo' 를 입력하면 

0 row(s)

Took ~ seconds 라고 나옵니다...

강의대로 실습하고 Storm이랑 Hbase 관리 창에 들어가 봐도 DriverCarInfo Topology랑 Table은 생성이 되어있는데 뭐가 문제인걸까요...? 테이블을 지우고 새로 생성한다음 실시간 로그파일을 생성시켜봐도 테이블에 데이터가 쌓이지 않습니다 ㅜㅠ

답변 3

·

답변을 작성해보세요.

0

hkjung님의 프로필

hkjung

2021.08.13

위에 가이드대로 진행해보면

---------------------------------------------------

$ 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

안녕하세요! 빅디입니다.

주키퍼와 스톰 명령 실행중에 오타가 있네요..

우선 주키퍼 명령에선..

[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 로 수정해 주셔야 합니다.

- 빅디 드림 

0

hkjung님의 프로필

hkjung

2021.08.12

저도 동일 증상인데 위에 가이드

3번의 Storm UI 에서 보면 카운트가 증가하지 않는것 같고

4번의 데이터도 안들어오는것 같습니다.

안녕하세요! 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

- 빅디 드림 

채널톡 아이콘