celinayk 2024. 4. 16. 17:16
반응형

1. hbase 버전 2.5.8을 깔아준다

2. 순서는 주키퍼켜고, dfs켜고 맨마지막에 hbase를 켜야함!! 주키퍼랑 dfs순서는 딱히 상관없는듯?

전부 다 켜면

17013 NameNode
17349 SecondaryNameNode
18069 HMaster
17161 DataNode
17851 QuorumPeerMain
18655 Jps

이렇게 총 6개가 켜진걸 확인할 수 있다

다 켰으면

bib/hbase shell을 들어가면

hbase:003:0>  이렇게 뜸 

여기서 create, put, 명령어를 입력하며 ㄴ된다

근데 create안됨 

이유 ?? 모름 썅...

hbase:002:0> create 'test2', 'family'
2024-04-16 06:45:52,696 INFO  [main] client.RpcRetryingCallerImpl (RpcRetryingCallerImpl.java:callWithRetries(130)) - Call exception, tries=6, retries=8, started=4978 ms ago, cancelled=false, msg=org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
	at org.apache.hadoop.hbase.master.HMaster.checkInitialized(HMaster.java:3188)
	at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:2307)
	at org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:694)
	at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
	at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:415)
	at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124)
	at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:102)
	at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:82)
, details=, see https://s.apache.org/timeout
2024-04-16 06:45:56,731 INFO  [main] client.RpcRetryingCallerImpl (RpcRetryingCallerImpl.java:callWithRetries(130)) - Call exception, tries=7, retries=8, started=9013 ms ago, cancelled=false, msg=org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
	at org.apache.hadoop.hbase.master.HMaster.checkInitialized(HMaster.java:3188)
	at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:2307)
	at org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:694)
	at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
	at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:415)
	at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124)
	at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:102)
	at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:82)
, details=, see https://s.apache.org/timeout

ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
	at org.apache.hadoop.hbase.master.HMaster.checkInitialized(HMaster.java:3188)
	at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:2307)
	at org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:694)
	at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
	at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:415)
	at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:124)
	at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:102)
	at org.apache.hadoop.hbase.ipc.RpcHandler.run(RpcHandler.java:82)

For usage try 'help "create"'

에러인데.. 아직 원인 못찾음

https://eyeballs.tistory.com/126이거 참고했는데 여전히 안됨 

 

[HBase] ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing 에러 해결 방법

아래 에러가 났을 때 내가 해결한 방법을 여기 적는다. ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing at org.apache.hadoop.hbase.master.HMaster.checkInitialized(HMaster.java:2808) at org.apache.hadoop.hbase.mas

eyeballs.tistory.com

*****************드디어 해결함******************만

jps만 남겨두고 

 rm -rf /tmp/hadoop-root/* 다 삭제한다 이거말고도 남아있는게 있었는ㄷ데 모두 삭제해야함 

[root@localhost hbase]# rm -rf /tmp/hadoop-root/*
[root@localhost hbase]# rm -rf /tmp/hbase-root*
[root@localhost hbase]# rm -rf /tmp/zookeeper/

[root@localhost hbase]# rm -rf /tmp/ 

모든정보들이 tmp폴더에 있는데 여기있는걸 삭제하면된다 

처음에 이렇게 했었는데 안됐었던게 hadoop-root이거만 삭제해서 그런거였음

이거말고도 hbase, zookeeper관련된애도 있는데 이거도삭제하면 되는거였음

hadoop만 삭제하면 hadoop이 주키퍼, hbase랑 다연관이 되어있어서 걍 싹다 삭제하면됨

그럼 약간 껍데기만 남기고 다 삭제됨 처음 깔린 그 초기상태로 ㅇㅇ 로그파일도 다 삭제되고 

 

 

 

======================================

일단 hbase명령어는

put 'test', 'row1', 'cf1:col1', 'val1'
put 'test', 'row1', 'cf2:col2', 'val2'
scan 'test'
테이블 삭제
disable 'test' > 불능상태로 만듬 insert, get이런거 못하게 
drop 'test' > 실제 삭제는 이걸 써야 삭제됨

=======================================

 

happybase라는걸 쓰는데

root경로에서
yum install gcc python3-devel
pip3 install setuptools-rust
pip3 install pip --upgrade
pip3 install happybase 머이렇게 하면 설치된다

 

hbase에 접속할수잇는 연결통로를 만들어줌 thrift이게 연결통로임 hbase를 바탕으로 열리는 서버 이걸 켜야 happybase로 thrift에 접속가능 ? 
[root@localhost hbase]# bin/hbase-daemon.sh start thrift
 이렇ㄱㅔ? 
그럼 jps 치면 

18724 ThriftServer
17013 NameNode
17349 SecondaryNameNode
19061 HMaster
19206 Jps
17161 DataNode
17851 QuorumPeerMain 다 뜬다 

 

경로는 아무데나 happybaseEx.py파일을 만들어서

코드를 쓴다

https://happybase.readthedocs.io/en/latest/

 

HappyBase — HappyBase 1.2.0 documentation

HappyBase is a developer-friendly Python library to interact with Apache HBase. HappyBase is designed for use in standard HBase setups, and offers application developers a Pythonic API to interact with HBase. Below the surface, HappyBase uses the Python Th

happybase.readthedocs.io

이 문서에 코드가 나와있고

import happybase

connection = happybase.Connection('192.168.0.100', 9090, autoconnect=True)
table = connection.table('test2')

table.put(b'row-key', {b'cf1:qual1': b'value1',
                       b'cf1:qual2': b'value2'})

row = table.row(b'row-key')
print(row[b'cf1:qual1'])  # prints 'value1'

for key, data in table.rows([b'row-key-1', b'row-key-2']):
    print(key, data)  # prints row key and data for each row

for key, data in table.scan(row_prefix=b'row'):
    print(key, data)  # prints 'value1' and 'value2'


내가 create로 만든 테이블이름과 컬럼패밀리명을 쓰고

python3 happybaseEx.py 실행을 하면 결과가 나온다