인프런 커뮤니티 질문&답변

곽동섭님의 프로필 이미지
곽동섭

작성한 질문수

15일간의 빅데이터 파일럿 프로젝트

6.실시간 적재 파일럿 실행 4단계 - 실시간 적재 기능 테스트

hbase적재 문제

작성

·

426

0

hbase에서 count 'DriverCarInfo'이 0row(s) 로 나타납니다. 

다른 문의 글에서 답변해주신 내용대로

시뮬레이터 > Flume > Kafka > Storm > HBase | Redis

를 확인하였으며,

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

주키퍼 클라이언트로 접속해서 토픽 정보가 잘 생성 되어 있는지 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. 실시간 테스트

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

위의 내용대로 다시 실시하엿습니다

Redis 확인시에도 10건의 과속차량 정보가 조회되는것 확인하였으나,

Storm UI에서

Acked가 증가되지 않는것 같습니다.(Emitted 와 Transferred 는 증가한거 맞을까요?)

이럴 경우 어떻게 해야 할까요?

답변부탁드립니다.

답변 3

0

곽동섭님의 프로필 이미지
곽동섭
질문자

빠르게 답변 주셔서 감사합니다.ㅠㅠ

문제 찾기가 쉽지 않네요..ㅠ


감사합니다

Big.D님의 프로필 이미지
Big.D
지식공유자

이제 스톰에는 문제 없어 보이는데요..

지금 표기 되어 있는 에러는 아까전 테이블을 삭제할때 순간 발생 했던 에러 인것 같습니다.

로그 시뮬레이터를 작동 시켜서 테스트 해봐 주세요!!!

그전에 카프카 컨슈머를 작동 시켜서 로그가 카프카 SmartCar-Topic 까지 잘들어 오는지도 확인해 봐 주세요!!

- 빅디 드림

0

곽동섭님의 프로필 이미지
곽동섭
질문자

계속 같은 현상 발생해서

화면 캡처 하여 올립니다.ㅠㅠ

확인 부탁드려요ㅠㅠ

CM 메인

CM-Kafka 상태

CM-Hbase 상태

CM-Hbase 상태 -Master

CM-Hbase 상태 -Region

Storm UI

Storm UI - Topology stat-Bolt(all time)

Storm UI - Topology stat-Bolt(all time)2

Big.D님의 프로필 이미지
Big.D
지식공유자

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

보내주신 캡쳐에서 보면 HBase 볼트에서 Hbase 테이블의 컬럼패밀리 에러가 발생한 것으로 보이는데요...

스톰의 HBase Bolt 소스안에는 HBase의 테이블 'DriverCarInfo'과 컬럼 패밀리 'cf1'의 필드들(car_number, area_number 등)을 참조하게 되어 있습니다.

만약 'DriverCarInfo' 이름의 테이블이 없거나, DriverCarInfo 안에 컬럼 패밀리 이름 'cf1'도 불일치 하면 스톰의 HBase볼트가 HBase에 데이터를 저장 하지 못합니다.

아래 절차대로 HBase 테이블을 확인 및 다시 생성해봐 주세요~

1. HBase 쉘 실행

$ hbase shell 실행

2. DriverCarInfo 테이블 이름 및 해당 컬럼 패밀리(cf1) 확인

>  scan 'DriverCarInfo' , {LIMIT => 10}

3. 테이블 삭제 

> disable 'DriverCarInfo'

> drop 'DriverCarInfo'

4. 테이블 생성 - Server01 접속해 아래 명령 실행

hbase org.apache.hadoop.hbase.util.RegionSplitter DriverCarInfo HexStringSplit -c 4 -f cf1

- 빅디 드림

곽동섭님의 프로필 이미지
곽동섭
질문자

scan 'DriverCarInfo' , {LIMIT => 10} 했을때 

ROW                                                COLUMN+CELL

0 row(s)

라고 출력이 됩니다.

hbase org.apache.hadoop.hbase.util.RegionSplitter DriverCarInfo HexStringSplit -c 4 -f cf1

다시 다시 확인해도 동일하게 출력되는데 다른부분 확인해야하나요.ㅠㅠ

(아래는 위의 명령어 실행시 나오는 문구입니다)

21/09/05 17:08:49 INFO zookeeper.ZooKeeper: Client environment:java.io.tmpdir=/tmp

21/09/05 17:08:49 INFO zookeeper.ZooKeeper: Client environment:java.compiler=<NA>

21/09/05 17:08:49 INFO zookeeper.ZooKeeper: Client environment:os.name=Linux

21/09/05 17:08:49 INFO zookeeper.ZooKeeper: Client environment:os.arch=amd64

21/09/05 17:08:49 INFO zookeeper.ZooKeeper: Client environment:os.version=2.6.32-754.el6.x86_64

21/09/05 17:08:49 INFO zookeeper.ZooKeeper: Client environment:user.name=root

21/09/05 17:08:49 INFO zookeeper.ZooKeeper: Client environment:user.home=/root

21/09/05 17:08:49 INFO zookeeper.ZooKeeper: Client environment:user.dir=/root

21/09/05 17:08:49 INFO zookeeper.ZooKeeper: Initiating client connection, connectString=server02.hadoop.com:2181 sessionTimeout=60000 watcher=org.apache.hadoop.hbase.zookeeper.ReadOnlyZKClient$$Lambda$24/1437595664@282e12b4

21/09/05 17:08:49 INFO zookeeper.ClientCnxn: Opening socket connection to server server02.hadoop.com/192.168.56.102:2181. Will not attempt to authenticate using SASL (unknown error)

21/09/05 17:08:49 INFO zookeeper.ClientCnxn: Socket connection established, initiating session, client: /192.168.56.102:42480, server: server02.hadoop.com/192.168.56.102:2181

21/09/05 17:08:49 INFO zookeeper.ClientCnxn: Session establishment complete on server server02.hadoop.com/192.168.56.102:2181, sessionid = 0x17bb47cd6fd0728, negotiated timeout = 60000

21/09/05 17:08:54 INFO client.HBaseAdmin: Operation: CREATE, Table Name: default:DriverCarInfo, procId: 25 completed

21/09/05 17:08:54 INFO client.ConnectionImplementation: Closing master protocol: MasterService

21/09/05 17:08:54 INFO zookeeper.ZooKeeper: Session: 0x17bb47cd6fd0728 closed

21/09/05 17:08:54 INFO zookeeper.ClientCnxn: EventThread shut down

저사양 환경이라 Server02 에서 다 진행했습니다

Big.D님의 프로필 이미지
Big.D
지식공유자

네~ 참 어렵죠..^^;;

그래도 어디선가 실수 또는 오류가 있을 텐데요...찾을수 있습니다. ㅎㅎ

여전히 스톰 UI의 HBase 볼트에서 컬럼패밀리 오류가 표기 되어 있는지요?!

그리고 아래 Hbase 관리자에 접속해 테이블 메타정보도 캡쳐해 주세요!!

http://server02.hadoop.com:16010/tablesDetailed.jsp

현재 Storm-UI 토폴로지의 볼트 모니터링 화면 캡쳐도 부탁 드려요!! 

- 빅디 드림 

0

Big.D님의 프로필 이미지
Big.D
지식공유자

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

네! 곽동섭님 말씀대로 Emitted 와 Transferred 증가하는게 맞고요, Acked도 증가 되어야 합니다.

Emitted와 Transferred는 스톰토폴로지 내부에서 처리된 카운트고, Acked값은 Hbase/Redis 볼트에서 정상 처리된 카운트 입니다.

현재 현상에선 스톰과 연결된 Kafka 와 HBase의 상태를 점검해 봐야할 것 같습니다.

CM 홈에서 Kafka와 HBase의 서버상태를 보시고, 특히 HBase의 상세에 들어가서 Master 또는 Region 서버가 셧다운 되었는지 확인해 보시기 바랍니다. 

추가로 Storm UI에서 Topology stats 하단에 보면 Bolts(All time)이라는 상태정보가 있습니다. 각 Bolt별로 처리되는 실시간 데이터의 상태값을 보여주는데요...문제가 계속되면 요정보도 캡쳐해서 올려 주시기 바랍니다.

- 빅디 드림

곽동섭님의 프로필 이미지
곽동섭

작성한 질문수

질문하기