HBASE regionserver.HRegionServer: STOPPED: Unhandled: org.apache.hadoop.hbase.ClockOutOfSyncException:



서버간 시간차이때문에 발생하는 오류입니다.


서버간 시간이 제대로 동기화 되었는지 확인해보셔야 됩니다.


또는 NTP 데몬을 계속 켜놔서 시간을 맞추는 방법도 있습니다. 

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

In file included from c/cffi1_module.c:3,

                 from c/_cffi_backend.c:6366:

c/realize_c_type.c: In function ‘realize_c_type_or_func’:

c/realize_c_type.c:577: error: ‘FFI_DEFAULT_ABI’ undeclared (first use in this function)

c/_cffi_backend.c: In function ‘init_cffi_backend’:

c/_cffi_backend.c:6458: error: ‘FFI_DEFAULT_ABI’ undeclared (first use in this function)

error: command 'gcc' failed with exit status 1

make[2]: *** [/root/hue/desktop/core/build/cffi-1.3.1/egg.stamp] 오류 1

make[2]: Leaving directory `/root/hue/desktop/core'

make[1]: *** [.recursive-install-bdist/core] 오류 2

make[1]: Leaving directory `/root/hue/desktop'

make: *** [install-desktop] 오류 2


yum install python-cffi

yum install libffi-devel


HUE 가 필요해져서 수동으로 설치하고 있는데, 다음과 같은 오류가 발생하네요

구글신에게 물어보니 저걸로 해결하라고 하면 되네요..


그런데 문제는 지금 다른 문제가 발생하고 있다는..

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
  1. Favicon of http://redeyesofangel.tistory.com BlogIcon Yuika eizt 2016.07.29 17:04 신고

    ++ 추가

    지금 생각해보면 Hue 공식홈페이지에서 docker Hue3 버전을 제공합니다.

    환경 구성해서 컴파일 하시는것보다 Docker로 구성하시는게 아마 정신건강에 편하실것 같습니다.

  2. Favicon of http://redeyesofangel.tistory.com BlogIcon Yuika eizt 2016.10.01 19:36 신고

    HUE 공식홈에 가면 Docker를 이용해서 3버전을 제공합니다..

    클라우데라의 경우는 이미 클라우데라 매니저를 통해 제공하겠지만. HDP의 경우는 docker 버전을 통해서 설정파일만 엮어주면 잘 동작합니다


2016/03/08 - [Study/--Hadoop Eco(Apache/HDP)] - hbase table already exists


어제 관련된 몇가지 조치를 하다가 HDFS 내의 HBASE를 날렸는데오 존재하는 테이블이라 나와서 여러가지를 해보았는데,


결론은 Zookeeper에 Table남아있어서 생긴 결과였습니다. 


외국 해외포럼에서 찾아보니 좀비 테이블이라고 지칭하는데, 이걸 제거하는 방법은 Zookeeper Server 접속하며서 Hbase 노드에 있는 Table a목록중에 해당 테이블을 제거 하면 됩니다.



이번에 HBASE 쓰면서 느낀건.. 엄청 잘깨진다..

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License


지금 상황은 Hbase가 잘못되어서 다시 설치하려는 케이스입니다.


HDFS 안에 잇는 Hbase를 지웠는데 테이블을 생성하려고 할때 테이블이 존재한다면, 


zookeeper 내부에 있는 Table 정보도 지워주셔야 됩니다. 


올바른건지 모르겠는데, 아마 다른 방법이 있을것 같은데,, 시간이 없다보니 


zookeeper 내부에서 rmr /hbase 하고 hbase 들어가면 주키퍼에 /hbase 가 없다고 나올겁니다..


저는 이상태에서 콘솔상에서 hbase hbck -fix를 하고 hbase shell로 다시 들어가니 다시 잘되네요 



저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

현재 상황이 외부인터넷이 연결된 클러스터에서 개발을 하고 Hbase에 들어있는 내용을 클라이언트의 폐쇠된 인터넷으로 클러스터 데이터를 옮기는 작업을 하고 있습니다.


다행은, 브릿지가 있어서 한대의 컴퓨터를 통해서 작업중이던 클러스터에 접근이 가능한 상황입니다


MySQL와 같이 RDMBS에서는 DUMP 방법이 편하게 되어있는데, 참HBASE는 뭐같네요


하지만 Backup Resotre방법은 쉽습니다.. 단 현 이방법은 테이블 단위로 진행이 됩니다.


 bin/hbase org.apache.hadoop.hbase.mapreduce.Export <tablename> <outputdir> [<versions> [<starttime> [<endtime>]]]>


다음과 같은 명령어를 이용해서 테이블을 백업합니다. 그러면 백업된 내용은 HDFS로 나오게 됩니다. 이걸 옮기려고 하는 환경으로 옮깁니다.

저같은경우는 폐쇠된 클러스터이기 때문에 로컬 복사해서 가져왔습니다 그런다음 작업할 위치의 클러스터에서 HDFS에 다시 올립니다


$ bin/hbase org.apache.hadoop.hbase.mapreduce.Import <tablename> <inputdir>


HDFS에 올린다음 다음 명령어를 이용해서 테이블을 복구해야합니다.

이때 중요한것이 Hbase에 테이블과 컬럼패밀리는 선언이 되어있어야합니다.RDBMS식으로 말하면 스키마는 미리 만들어놓으셔야합니다




저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

HBase 데이터를 만지다가, 생각지도 못한것으로 고생을 해서 리마인드 차원에서 포스팅 합니다.


Java또는 Spring 에서 Hbase를 사용하는 방법은

1. Native Library
2. Trift

3. Rest API


이때 속도는 1 > 2,3 정도 Native 방식이 빠름,

만약에 Native 방식을 할때는,Hbase와 같은 네트워크 망을 사용해야하고 Client에서 반드시 hosts를 지정해서 사용해야됨(만약 다른 네트워크라면 Trift와 Rest로 사용가능) ..(관련해서 스택오버플로우에도 물어보긴 했지만.. 재미는 못봤음)


Hbase같은경우 , 일반적인 RDBMS 처럼 select의 개념으로 생각면 피곤. HBASE의 경우 Select에 해당하는것이 scan인데 이때 전체를 fullScan 해서 필터링 하는 방식이기 때문에 상당히 느려터짐


왠만한 값은 유니크한 값(타임라인 테이터같이)이 있다면 그걸 row로 잡아서 넣으면 매우 빠름, 만약 row가 애매하다면 Hive를 이용해서(RDMS로 처리가능하다면 처리해도 상관은 없음) Hbase에 넣는방법도 있음 .


그런데, Hbase는 참 값을 가져오는게 모해서 Hive로 extenal Table을 연결해서 쓸수 있는데, 문제는 이때 Hive가 where절에 조건이 몇개만 들어가도 MapReduce가 걸려버림 , Tez여도 웹에서 가져다 쓰기에는 안좋음


아직 테스트 단계에서만 사용하고 있지만 이런 대안으로 Pheonix도 쓴다고 하는중


실제로 지금 소스좀 분해하고 있는 오픈소스 프로젝트를 보면 Pheonix를 사용함 


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

하둡 2버전은 잘모르겠지만.


1버전을 이용할때는 리눅스에서 HDFS에 직접 마운트를 해서 사용하고 싶을때가 있었습니다.


그떄 fuse-dfs를 이용해서 마운트 했는데, 2버전때 없어졌나 했는데.. 제가 HDP(Hortonworks Data Platform)을 이용해서 그런지 잘 안보였던것 같더군요.. cloudera에는 fuse-dfs가 그대로 있던것 같았습니다. 홈페이지에서 보기에는 


http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.4/bk_hdfs_nfs_gateway/content/hdfs-nfs-gateway-user-guide.html



다른 배포판은 모르겠지만.. 아파치 하둡1을 이용할때는,, fuse-dfs를 사용하기 위해 관련 라이브러리 설치하고 하둡 컴파일 하고 귀찮은 절차가 필요했었는데.. HDP는 이런것은 확실히 편하네요 



사용방법은 간답합니다. 


mount -t nfs -o vers=3,proto=tcp,nolock (NDFS게이트웨이가 있는 노드):/ (마운트 하려는 폴더)




그리고 마운트된 폴더를 접속하면 다음과 같이 마운트가 잘되신것을 확인 할 수 있습니다 


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

sqoop export 를 할때 For input string: "\N" 해결 할수 있는 방법

Sqoop export 옵션에  --input-null-string '\\N' --input-null-non-string '\\N' 추가 



2015/10/29 - [Study/--Hadoop Eco(Apache/HDP)] - Sqoop 1.4.6 설치, 사용 예제(Migrating data using sqoop from Mysql to HBase)

2015/11/16 - [Study/--Hadoop Eco(Apache/HDP)] - Hive를 이용해서 Rank 구하기

2015/12/23 - [Study/--Hadoop Eco(Apache/HDP)] - Sqoop-export : from hive to mysql




저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

오늘 심각한 고민을 했습니다  ... 자바는 그냥 갔다 버려야되나..


Parallel Python 이거 써보고 할말을 잃었습니다. 생각보다 너무 쉽고.


Parallel Python을 사용하기 위해서는 대략 다음 절차를 수행하시면 됩니다.



연산을 하려는 노드, Master노드에 Parallel Python 설치(http://www.parallelpython.com/) [현재 저같은경우 Python 2.7을 사용하고 있습니다.]


그다음 연산하려는 모든 노드에서 네트웍 대역이 같다면, ppserver.py -a (이 의미는 실제 코드 설명할때 설명0


그리고 마스터 노드에서 병렬처리할 코드를 작업하시면 됩니다.


큰틀은 다음과 같습니다. 


가장 중요한 부분은 ppserver= ppservers=("*",) 입니다. 앞에서 ppserver.py -a  한이유와 같은데, 만약 같은 네트워크 대역폭에 있으면 알아서 감지합니다. 


 job_server.submit(mysum,(100,),callback=sum.result) 


실행할 함수?, 그리고 Parameter, 콜백 함수 입니다. 


만약 이럴경우, 병렬로 돌릴때 그 모듈이 돌아가기 위해 필요한 모듈이 있다고 가정할대, 예를들명 mysum을 연산할때 파이선의 math 모듈이 반드시 필요하다 그럴경우에는 modules = ("math","sys")와 같이 파라메터를 넣어주시면 됩니다.


파이썬이 이렇게 강력할줄이야.. 




import sys,thread
import pp
class myTest:
def __init__(self):
self.value=0
self.lock = thread.allocate_lock()

def result(self, value):
self.lock.acquire()
self.value += value
self.lock.release()


def mysum(n):
result=0
for i in range(1,1000):
result+=i
return result



sum = myTest()

ppserver= ppservers=("*",)

job_server = pp.Server(ppservers=ppservers)
job1 = job_server.submit(mysum,(100,),callback=sum.result)

job_server.print_stats()

job_server.wait()

print "result is "+str(sum.value)

job_server.print_stats()


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
  1. Favicon of http://navisphere.net BlogIcon 룬룬 2016.01.03 15:19 신고

    오늘은 드디어 아는 뭔가가 나와서 반가운 마음이 드네요.
    먼저 복 많이 받으시고요. :) 늘 은은히 이어가는 인연이 즐겁습니다.

    저는 전공이 컴퓨터비전, 패턴인식, 머신러닝에 가까운 사람입니다.
    파이썬도 많이들 쓰더라구요. 아마 MATLAB이 유료이기에 그 대안으로 사용되는 분위기가 아니었나 싶습니다.

    저 또한 처음에는 고가의 MATLAB에서 벗어나보고자 배우기 시작한 것이 Python이고 말씀하신 부분, 그 명쾌하게 한줄로 해결되는 듯한 그 부분에 인상이 깊은 언어로 남아있습니다. 배우기 쉽고 수천의 이미 준비된 라이브러리들.. 그렇지 않을 수가 없었죠. :)

    병렬처리라고 하면 제 머릿속에서는 GPU를 이용한 것들이 먼저 떠오르는데 써주신 Parallel Python은 MPI 같은 환경을 말하는 것인가봅니다.
    어쨌든 Python의 편리함은 부정할 수 없는 것 같고요.

    개인적으로 조금 배우고 써보면서 느낀 점을 단 점 위주로 말씀드려보고자 합니다. 사용하실 때 감안을 해보면 좋을 것 같습니다.
    분야 때문에 환경이 좀 다를 수도 있을 것 같기도 해요.

    1. 빠른 결과를 보기 위한 실험용으로는 최적입니다.
    말씀드렸듯 이미 준비된 모듈들이 너무나도 많습니다. 단순 wrapper들도 많고요.

    2. 짜임새 있는 구조로 아름다운 코드를 만들기는 힘든 것 같습니다.
    제가 실력이 모자라 그런 느낌을 받았을 수도 있는데, 스크립트 언어 특성상 그 부분에 이르러서야 오류가 나기 때문에 아까운 시간들을 놓칠 때가 많습니다.
    단순 문법이나 사용상 오류들을 잡는데 시간을 많이 보냈던 것 같습니다. C/C++에서는 빌드조차 안될 것 같은 그런 오류들 말이에요.
    모듈간 연동시에도 크게 검사 과정이 없기 때문에 코드의 크기가 커질 수록 다루기가 힘든 물건이 되어버리는 것 같습니다.

    3. Type 문제
    제게는 이것이 가장 큰 문제로 다가왔습니다.
    사용하다보면 Numpy 등에서 새로 정의된 Type들을 사용하게 되는데, 이것과 기존 Type 혹은 다른 모듈의 Type들이 혼용되기 시작하면 사람이 이를 다루지 못하는 시기가 오게 됩니다.
    C/C++에서는 강력한 Type 검사를 통해 막아주고 있는 부분인데요, MATLAB등은 Matrix, Cell, Dictionary 정도로 제한이 되고 있는 부분이고요.


    아마 지금은 첫줄 같은 고민을 하시긴 해도, 결국 Java를 선택하는 날이 오시리라 믿습니다.


    그럼에도 매력적인 언어임에는 틀림이 없는 것 같습니다.
    어차피 도구니까요. 적절한 목적에 잘 사용하면 되겠죠. :D

    어제 동생과 이야기하다가 나온 것인데,
    Perl 같은 스크립트가 커지면 Python정도로 확장했다가 더 큰 규모가 필요해지면 기존 언어로 가는게 적절한 순서가 아닐까 싶네요.


    오늘은 살짝 넘어서 이야기한 것 같나요? 아는게 나오니 신이 나서... 넓은 마음으로 봐주시고요. :)
    휴일에도 공부하시는 모습에 박수를 보냅니다. 짝짝짝.


    • Favicon of http://redeyesofangel.tistory.com BlogIcon Yuika eizt 2016.01.03 15:43 신고

      새해 복 많이 받으세요 :)

      생각해보면 가벼운 MPI 같은 느김이 맞을것 같습니다. 저 같은 경우는 MPI같은 것과는 거리가 멀고(아마..) (대강들어본적은 있습니다... 학교 다닐대 배울기회가 있었지만,, 수업이 빡세다고해서.. 선택을 안했지만요..)

      요즘에는 학교에서 나와서 빅데이터를 처리하는데 사용하는 Hadoop(MapReduce,Hbase, Hive ...) 안에 있는것들과 Storm 이런 위주로 사용하고 있네요..

      그러다 보니, 가끔식 어떤 데이터들을 처리할대 한개 컴퓨터에서 돌릴때 약간쫌 꼼수로 MapReduce로 나누어서 돌리거나 그러는데... 약간 사이비이네요. 너무 불편했는데,, 어제 파이선이 보이는것입니다..

      사실 어제는 신기했는데,, 전 이걸 그대로 쓰려는게 아니라 제가 하고 싶은 작업에 응용을 해보고 싶은데.. 별로 재밌게 진행되지는 않는것 같네요..

      어디선가 잘 안돌아가는것 같은데..사실 중간중간 검증하면서 하고 든요.. 에러를 내보내는 상황도 아니라서 약간은 애매하네요

      편리하지만 말씀해주신 것들은 염두해 두고 ,, 사용해 봐야겠네요 ㅎㅎ

      감사합니다. :)

Sqoop2 가 있지만, 1이 익숙한 관계로 다음은 MySQL 에서 Hbase로 Migration 하는 예제 입니다. 



wget http://mirror.apache-kr.org/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

tar zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha /usr/local/sqoop


vim /etc/profile

  export HBASE_HOME=/usr/local/hbase

  export SQOOP_HOME=/usr/local/sqoop

  export PATH=$PATH:$SQOOP_HOME/bin:$HBASE_HOME/bin:$PATH

source /etc/profile



 sqoop import --connect jdbc:mysql://127.0.01:3306/test --username root --password test --table bc_1  --split-by QKEy --table bc_1 --hbase-create-table --hbase-table test2 --column-family test23 







저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

1. 하둡 , Hbase는 기본적으로 설치되어 있다고 가정, https://phoenix.apache.org/ 에서 파일 다운로드 

2. 압축해제

3. Hbase 정지

4. phoenix-버전-HBase-1.1-server.jar 을 HBASE lib 폴더에 저장

5. phoenix-core-버전-HBase-1.1.jar 을 HBASE lib 폴더에 저장

6. Hbase 재시작


확인절차 

1. ./sqlline.py 172.168.0.47:2181:/hbase



- System Table은 피닉스가 처음 실행할때 자동으로 생성


2. Hbase shell


 - Hbase Shell에도 똑같이 시스템 폴더들이 생긴것을 알수 있음


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

HDP(Hortonworks data Platform)을 이용할때는 external Table을 선언하면 바로 동작하던것 같은데, 일반 Apache Hadoop에서는 약간 다르기 보다는 귀찮은게 많은것 같습니다.


Hadoop 2.7.1, Hbase 1.1.1 , Hive 1.4.0을 기준으로 정리하면

(각 컴포넌트들이 이미 설치되어 있다고 전제)


1. Hive로 필요한 Hbase 라이브러리 복사

cp /HBASE_HOME/lib/hbase-client-x.x.x.jar /HIVE_HOME/lib/

cp /HBASE_HOME/lib/hive-common-x.x.x.jar /HIVE_HOME/lib


2.Hive Shell

create external table mytable(key string,c1 string,c2 string) stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' with serdeproperties("hbase.columns.mapping" = ":key,cf1:c1,cf1:c2") tblproperties("hbase.table.name"="mytable");


연결 끝 ! 


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

HDP 가 정말로 좋지만, 요구 환경때문에, Apache Hbase를 사용하고 있습니다. (사실 몇몇 요구사항때문에 Hbase를 직접 컴파일하고 빌드한 상황이라, 바이너리를 받았으면 이런오류가 안생기실수도 있습니다)


참고로 제 환경은 Centos 6.6 64bit, Hbase 1.0.1.1 입니다. 



방금전에 문제 겪은것에 대해 해결방법을 포스팅합니다


2015-08-05 13:49:25,287 INFO  [root:16020.activeMasterManager] master.ServerManager: Waiting for region servers count to settle; currently checked in 0, slept for 9017 ms, expecting minimum of 1, maximum of 2147483647, timeout of 4500 ms, interval of 1500 ms


이 말은 무슨말이나면, 지금 클라이언트가 Hbase 에 Embemd된 zookeeper를 쓴다고해서 환경을 맞추려다가 생긴 문제인데, Zookeepr 올라가 Hmaster가 올라갔는데 리전서버들이 아직 연락이 없다 이말입니다. 한마디로 Hmaster만 대기 타고 있는 상황


그래서 리젼서버에서 무슨일이 있나 봤더니 


714 2015-08-05 13:49:54,134 ERROR [main] regionserver.HRegionServerCommandLine: Region server exiting

 715 java.lang.RuntimeException: Failed construction of Regionserver: class org.apache.hadoop.hbase.regionserver.HRegionServer

 716     at org.apache.hadoop.hbase.regionserver.HRegionServer.constructRegionServer(HRegionServer.java:2497)

 717     at org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.start(HRegionServerCommandLine.java:64)

 718     at org.apache.hadoop.hbase.regionserver.HRegionServerCommandLine.run(HRegionServerCommandLine.java:87)

 719     at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)

 720     at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:126)

 721     at org.apache.hadoop.hbase.regionserver.HRegionServer.main(HRegionServer.java:2511)

 722 Caused by: java.lang.reflect.InvocationTargetException

 723     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

 724     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

 725     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

 726     at java.lang.reflect.Constructor.newInstance(Constructor.java:422)

 727     at org.apache.hadoop.hbase.regionserver.HRegionServer.constructRegionServer(HRegionServer.java:2494)

 728     ... 5 more

 729 Caused by: java.net.BindException: Problem binding to root/XXXXX:16020 : Address already in use

 730     at org.apache.hadoop.hbase.ipc.RpcServer.bind(RpcServer.java:2373)

 731     at org.apache.hadoop.hbase.ipc.RpcServer$Listener.<init>(RpcServer.java:524)

 732     at org.apache.hadoop.hbase.ipc.RpcServer.<init>(RpcServer.java:1899)

 733     at org.apache.hadoop.hbase.regionserver.RSRpcServices.<init>(RSRpcServices.java:795)

 734     at org.apache.hadoop.hbase.regionserver.HRegionServer.createRpcServices(HRegionServer.java:575)

 735     at org.apache.hadoop.hbase.regionserver.HRegionServer.<init>(HRegionServer.java:492)

 736     ... 10 more

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

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

 739     at sun.nio.ch.Net.bind(Net.java:437)

 740     at sun.nio.ch.Net.bind(Net.java:429)

 741     at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)

 742     at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)

 743     at org.apache.hadoop.hbase.ipc.RpcServer.bind(RpcServer.java:2369)


16020 포트가 사용되고 있다고 나오는것입니다. 사용되서 내가 이포트를 써야겠는데 못쓰겠다. 

관련해서 오류를 찾아보니 포트가 중복되는 문제로 https://issues.apache.org/jira/browse/HBASE-10123

이런식으로 바꾼예제가 있는데, 제 기억에는 스택오버플로우에 있는게 기본포트였던것 같은데 아닌가 보더군요.. 


 <property > 
    <name>hbase.master.port</name> 
    <value>60000</value> 
  </property> 
  <property> 
    <name>hbase.master.info.port</name> 
    <value>60010</value> 
  </property> 
  <property> 
    <name>hbase.regionserver.port</name> 
    <value>60020</value> 
  </property> 
  <property> 
    <name>hbase.regionserver.info.port</name> 
    <value>60030</value> 
  </property> 


그래서 이런식으로 Hbase-site.xml에 집어넣고, Hbase를 작동시키니 정상작동하네요 



저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

잠깐 일때문에 Mongodb를 보고 있었는데, 


몽고디비 안에 document 생성시간을 알아야될 필요가 생겼습니다.


생각해보니 따로 date필드를 만들어 시간값을 넣은것도 아니고....


찾아보니 document생성할때 기본적으로 생성되는 _id로 시간을 구할수 있다고 하네요


https://steveridout.github.io/mongo-object-time/ 사이트에가서 생성된 _id를 집어넣으면 자동적으로 시간으로 변환해줍니다. 





저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License



Unhandled exception. Starting shutdown.

org.apache.hadoop.hbase.TableExistsException: hbase:namespace

at org.apache.hadoop.hbase.master.handler.CreateTableHandler.prepare(CreateTableHandler.java:120)

at org.apache.hadoop.hbase.master.TableNamespaceManager.createNamespaceTable(TableNamespaceManager.java:230)

at org.apache.hadoop.hbase.master.TableNamespaceManager.start(TableNamespaceManager.java:85)

at org.apache.hadoop.hbase.master.HMaster.initNamespace(HMaster.java:1059)

at org.apache.hadoop.hbase.master.HMaster.finishInitialization(HMaster.java:920)

at org.apache.hadoop.hbase.master.HMaster.run(HMaster.java:606)

at java.lang.Thread.run(Thread.java:744)




일단 저의 환경은 다음과 같습니다.

Hadoop 2.6.0

Hbase 0.98.9

zookeeper 3.4.6



Hbase를 정상적으로 제대로 설치하였는데, Master가 작동 안하고 , stop-hbase.sh 할 경우 Regionserver 종료되지 않을 때의 해결 방법 중 하나 입니다. (어떤 원인이 있을지 모르기 때문에) 


저 같은 경우는 저 오류가 발생하고, 그 아래에는(로그가 지워져서) Master가 실행이 안된다는 메세지가 나옵니다. 


http://community.cloudera.com/t5/Storage-Random-Access-HDFS/HMaster-not-starting-TableExistsException/td-p/11466


해결 방법은 정말로 간단합니다. Zkcli.sh Zookeer로 들어가서  -rmr  hbase 하신 다음 hbase를 다시 실행해보시면 저 문제는 정상적으로 해결이 됩니다. 

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
1

+ Recent posts

티스토리 툴바