HBase Thrift 인터페이스 사용 문제 및 주의사항 에 대한 상세 한 설명
string key;
int32_t timestamp = 1352563200;
const char* pTs =(const char*) ×tamp;
size_t n = sizeof(int32_t);
key.append(pTs, n);
다음 과 같은 방식 으로 사전 순 서 를 int:
const char * ts = key.c_str();
int32_t timestamp = *((int32_t*)(ts));
Php 에서 pack 과 unpack 방법 으로 전환 합 니 다.
$key = pack("N", $num);
$num = unpack("N", $key);
2.TScan 의 함정 HBase 를 사용 하 는 PHP Thrift 인터페이스 에서 TScan 은 startRow,stopRow,columns,filter 등 속성 을 직접 설정 할 수 있 습 니 다.기본 속성 은 모두 null 입 니 다.설정 후 비 null 로 변 경 됩 니 다.(TScan 의 구조 함수 나 TScan 의 구성원 변 수 를 직접 할당 합 니 다.)write()방법 과 Thrift Server 를 통 해 RPC 작업 을 할 때 직접 판단 하 는 근 거 는 이러한 속성 이 null 이 아니 라 Thrift 프로 토 콜 을 통 해 Thrift Server 에 전송 된다 는 것 이다.하지만 C++의 Thrift 인터페이스 에 TScan 중 하나 가 있 습 니 다.TScan__isset __isset 유형의 변 수 는 내부 구 조 는 다음 과 같다.
typedef struct _TScan__isset {
_TScan__isset() : startRow(false), stopRow(false), timestamp(false), columns(false), caching(false), filterString(false) {}
bool startRow;
bool stopRow;
bool timestamp;
bool columns;
bool caching;
bool filterString;
} _TScan__isset;
TScan 의 write()방법 은 판단 을 통 해TScan__isset 의 각 bool 변 수 는 startRow,stopRow,columns,filter 등 속성 을 설정 하 였 는 지 여 부 를 표시 합 니 다.이 속성 들 을 Thrift 프로 토 콜 을 통 해 Thrift 서버 에 전송 할 지 여 부 를 결정 합 니 다.이 속성 들 은set_xxx()방법 을 설정 해 야 효력 이 발생 합 니 다!TScan 의 기본 구조 함수 에 서 는 이러한 속성 에 대응 하지 않 는isset 태그 가 true 로 설정 되 었 습 니 다!따라서 TScan 의 구조 함 수 를 통 해 startRow,stopRow,columns,filter 등 속성 을 직접 초기 화하 면 처음부터 이 표를 옮 겨 다 니 며 만 호출 될 수 있 습 니 다.set_xxx()방법 은 대응 하 는 bool 표 지 를 true 로 설정 해 야 서버 에서 startRow,stopRow,columns,filter 등 속성 을 가 져 와 스 캔 할 수 있 습 니 다.3.동시 방문 스 레 드 수 는 먼저 네트워크 전송 으로 인 한 시간 비용 을 최대한 줄 이기 위해 HBase 의 Thrift Server 는 응용 클 라 이언 트 와 같은 기계 에 배치 하 는 것 이 좋 습 니 다.Thrift 서버 가 시 작 될 때 매개 변 수 를 통 해 병렬 스 레 드 수 를 설정 할 수 있 습 니 다.그렇지 않 으 면 Thrift 서버 스 레 드 가 클 라 이언 트 의 읽 기와 쓰기 요청 에 응답 하지 않 습 니 다.구체 적 인 명령:bin/hbase-daemon.sh start thrift--threadpool-m 200-w 500(더 많은 매개 변 수 는 여기 참조:bin/hbase-daemon.sh start thrift-h).4.최대 메모리 설정 클 라 이언 트 와 Thrift Server 가 scan 작업 순 서 를 통 해 데 이 터 를 읽 고 일정한 cache 기록 항목 수 를 설정 합 니 다(TScan 의 int 32 를 통 해t caching 변수 설정),그러면 이 caching 의 기록 수 는 Thrift Server 의 상당 부분의 메모 리 를 차지 할 수 있 습 니 다.특히 다 중 클 라 이언 트 가 동시 방문 할 때 더욱 뚜렷 합 니 다.따라서 Thrift Server 가 시작 되 기 전에 최대 메모 리 를 늘 릴 수 있 습 니 다.그렇지 않 으 면 자바.lang.OutOfmory Error 이상으로 프로 세 스 가 죽 을 수 있 습 니 다.특히 Scan 시 비교적 큰 caching 기록 항목 수 를 설정 한 경우(기본 값 은 export HBASE 입 니 다.HEAPSIZE=1000 MB,conf/hbase-env.sh 에서 설정 가능).
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Hbase on Amazon EMR에 대한 발판 서버 액세스HBase on EMR 클라이언트 PC의 HBase 클라이언트에서 발판 서버(Bastion Server)를 통해 HBase 서버 접속 정보의 예 서버 public IP private IP private DNS 점프 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.