목차
表是什么?
什么是快照?
归档
克隆和恢复表
从快照中克隆表
从快照中恢复表
未来的改进
结论
데이터 베이스 MySQL 튜토리얼 Apache HBase 快照介绍之二:深入探索

Apache HBase 快照介绍之二:深入探索

Jun 07, 2016 pm 04:31 PM
apache hbase 소개하다 스냅 사진 탐구하다 깊이 들어가다

本文由 ImportNew - 陈 晨 翻译自 Cloudera。如需转载本文,请先参见文章末尾处的转载要求。 在关于Apache HBase 快照系列的第一篇中,我们学到了如何使用新的快照特性,以及实现背后的一些理论支持。现在是时候再深入探索一些技术细节了。 表是什么? HBase

本文由 ImportNew - 陈 晨 翻译自 Cloudera。如需转载本文,请先参见文章末尾处的转载要求。

在关于Apache HBase快照系列的第一篇中,我们学到了如何使用新的快照特性,以及实现背后的一些理论支持。现在是时候再深入探索一些技术细节了。

表是什么?

HBase表包含一系列元数据信息和键值对集合。

表信息:一份描述“设置”的清单文件,如列族,压缩类型与编码,布隆(bloom)过滤器类型等。

域:表“分区”称之为域。每个域都通过定义起始键和终止键来负责管理一份连续的键值集合。

WALs/MemStore:在数据写入磁盘之前,put会先写到写前日志(Write Ahead Log – WAL)然后保存在内存中,直到内存压力触发写入磁盘。WAL为恢复那些因为异常没有写入磁盘的put操作提供了一个简单的方式。

HFiles:某些时候所有数据都写入了磁盘。HFile就是HBase存储键值对的文件格式,HFile是不变的。但是当合并或域删除时可以被删除掉。(注意:想了解更多HBase写入过程的内容可以看下HBase写入过程博文,对于HFiles更多的细节可以看下HBase I/O – HFiles 博文)

什么是快照?

快照就是一系列元数据信息集合,能够允许管理员将表恢复至生成快照时的状态。快照不是表的复制。最简单的方式就是把它想象成为了追踪元数据(表信息和域)和数据(HFiles, 内存存储, WALs)一系列操作的集合。在生成快照操作中没有执行任何复制数据的动作。

离线快照:讨论快照的最简单的场景就是当一张表被关闭了。关闭一张表意味着所有的数据都写入了磁盘,而且不允许任何读写操作。在这种情况下,生成快照仅仅就是获取表元数据并且与磁盘中的HFiles保持关联。主节点执行操作需要的时间,主要取决于HDFS的namenode提供文件列表需要的时间。

在线快照:在大部分情况下,表都是开启的,而且每个域服务器都不断的处理put和get请求。在这种情况下,主节点接收到快照请求并要求每个域服务器都为其负责的域生成一份快照。

主节点和域服务器之间的通信是通过Apache ZooKeeper的,使用了类似两阶段提交事务。主节点建立一个“准备快照”的znode。每个域服务器会处理请求,并且为指定的表在其负责范围内的域准备快照。一旦准备完成,就会在准备请求的znode下建立一个子节点,意味着“准备完成”。

一旦所有域服务器都回报了他们的状态,主节点就建立另一个znode表示“提交快照”;每个域服务器会完成快照并在加入节点前报告状态。一旦所有域服务器都回报完成,主节点会完成快照并标记操作完成。若某个域服务器报告失败,主节点会新建znode来广播放弃信息。

当域服务器继续处理新请求是,不同的用例情况下可能需要不同的一致性模型。例如有人可能对不包含内存中最新数据的不完全的快照感兴趣,而有的人希望锁定写操作来获得一份完全保证一致性的快照以及其他可能性。

因此在域服务器上生成快照的程序是可拔插的。现在唯一的实现是“Flush Snapshot”,就是在生成快照之前进行写入操作(flush)来保证列一致性。其他的使用不同的一致性策略的程序可能会在未来实现。

在线生成快照需要的时间取决于实施快照操作并且将成功状态回报给主节点最慢的域服务器。这样的操作差不多在数秒之内完成。

归档

就像我们之前看到的,HFiles是不可变的。这样使得我们避免了在快照或克隆操作中复制数据,但在合并过程中文件被删除或者被合并后的版本替代。在这样情况下,如果有快照或者克隆表指向其中某些文件,可以将他们转移到一个“归档”位置而不是删除。如果你删除了快照且该文件不存在其他的引用,则该文件会被删除。

克隆和恢复表

当快照被用于在用户或程序异常后恢复/还原表时,可以看做是一个备份方案,但实际上快照特性的用处远远超过简单的备份还原。当从快照中克隆表后,你可以写一个MapReduce job或者简单应用来有选择性的合并差异,或者其他你认为重要的内容写入产品环境。另外一个场景就是你能够测试结构变化或者更新数据,而不用为复制表等待数小时并且最后硬盘中也不会存在大量重复数据。

从快照中克隆表

当管理员执行克隆操作时,按快照中的表结构建立了新表并按快照域信息中的开始/结束键分割。一旦表元数据建立,能够像快照使用的方式一样而不用拷入数据。因为HFiles是不可变的只是对建立的源文件的引用,这样就避免了数据拷贝并允许克隆能够修改而不影响源表或镜像。克隆操作是由主节点执行的。

从快照中恢复表

恢复操作与克隆操作相似。你可以把它想象成时删除表之后再从快照中克隆出来。恢复操作会恢复快照中的老数据并删除快照中不存在的数据,表结构也会恢复到与快照相同。在底层,恢复操作时通过比较表状态与快照间不同来实现的,移除快照中不存在的文件并加上快照中有而当前表状态中没有的文件关联。同样的表结构也被修改至快照生成时刻的状态。恢复操作是由主节点执行并且表要处于关闭状态。

未来的改进

当前,快照实现了包括所有基础功能性需求。如我们所见,新的在线快照一致性策略能够提供更好的伸缩性、一致性及性能提高。更好的文件管理能够缩减HDFS NameNode的加载时间以及提高磁盘空间管理。接下来,测量数据、Web 界面 (Hue)以及东西会加入到目标列表。

结论

HBase快照添加了类似“过程协作”的新功能用于在线快照、写时备份、恢复和克隆。

快照基于机器拷贝数据和复制表之上提供了更快更好的选择来处理“备份”和“克隆”方案。所有的快照操作(快照、恢复、克隆)不执行数据复制,使得表的快照更快并且节省磁盘空间。

期望了解更多关于启动和使用快照信息,请访问HBase的操作管理文档。

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

H5 프로젝트를 실행하는 방법 H5 프로젝트를 실행하는 방법 Apr 06, 2025 pm 12:21 PM

H5 프로젝트를 실행하려면 다음 단계가 필요합니다. Web Server, Node.js, 개발 도구 등과 같은 필요한 도구 설치. 개발 환경 구축, 프로젝트 폴더 작성, 프로젝트 초기화 및 코드 작성. 개발 서버를 시작하고 명령 줄을 사용하여 명령을 실행하십시오. 브라우저에서 프로젝트를 미리보고 개발 서버 URL을 입력하십시오. 프로젝트 게시, 코드 최적화, 프로젝트 배포 및 웹 서버 구성을 설정하십시오.

XML로 PDF를 내보내는 방법 XML로 PDF를 내보내는 방법 Apr 03, 2025 am 06:45 AM

XML을 PDF로 내보내는 두 가지 방법이 있습니다 : XSLT 사용 및 XML 데이터 바인딩 라이브러리 사용. XSLT : XSLT 스타일 시트를 만들고 XSLT 프로세서를 사용하여 XML 데이터를 변환 할 PDF 형식을 지정하십시오. XML 데이터 바인딩 라이브러리 : XML 데이터 바인딩 라이브러리 가져 오기 PDF 문서 객체로드 XML 데이터 내보내기 PDF 파일을 만듭니다. PDF 파일에 더 나은 방법은 요구 사항에 따라 다릅니다. XSLT는 유연성을 제공하지만 데이터 바인딩 라이브러리는 구현하기가 간단합니다. 간단한 변환의 경우 데이터 바인딩 라이브러리가 더 좋으며 복잡한 변환의 경우 XSLT가 더 적합합니다.

아파치 문제 해결 : 일반적인 오류 진단 및 해결 아파치 문제 해결 : 일반적인 오류 진단 및 해결 Apr 03, 2025 am 12:07 AM

로그 파일을 보면 Apache 오류를 진단하고 해결할 수 있습니다. 1) Error.log 파일보기, 2) Grep 명령을 사용하여 특정 도메인 이름에서 오류를 필터링하고 3) 로그 파일을 정기적으로 정리하고 구성을 최적화하십시오. 4) 모니터링 도구를 사용하여 실시간으로 모니터링하고 경고합니다. 이러한 단계를 통해 Apache 오류를 효과적으로 진단하고 해결할 수 있습니다.

pom.xml을 생성하는 방법 pom.xml을 생성하는 방법 Apr 03, 2025 am 06:00 AM

pom.xml 파일을 생성하는 다음과 같은 방법이 있습니다. Maven Archetype를 사용하여 사전 정의 된 프로젝트 템플릿을 제공하여 특정 유형의 프로젝트에 대해 POM.XML 파일을 자동으로 생성하십시오. Maven 헬퍼 플러그인을 사용하여 pom.xml 파일을 생성하기위한 명령을 제공하십시오. 프로젝트의 pom.xml 파일을 사용자 정의하려면 수동으로 만듭니다.

부트 스트랩 테이블을 풀기 위해 서버 측에서 문자 인코딩을 설정하는 방법 부트 스트랩 테이블을 풀기 위해 서버 측에서 문자 인코딩을 설정하는 방법 Apr 07, 2025 pm 12:00 PM

서버 측에서 문자 인코딩을 설정하려면 Bridble Bootstrap 테이블을 해결하려면 다음 단계를 따라야합니다. 서버 문자 인코딩을 확인하십시오. 서버 구성 파일 편집; 인코딩을 UTF-8로 설정하십시오. 서버를 저장하고 다시 시작합니다. 인코딩을 확인하십시오.

XAMPP에서 MySQL을 시작할 수 없습니다 XAMPP에서 MySQL을 시작할 수 없습니다 Apr 08, 2025 pm 03:15 PM

XAMPP가 포트 충돌, 구성 파일 오류, 불충분 한 시스템 권한, 서비스 종속성 문제 및 설치 문제를 포함하여 MySQL을 시작하지 않는 데는 여러 가지 이유가 있습니다. 문제 해결 단계는 다음과 같습니다. 1) 포트 충돌 확인; 2) 구성 파일 확인; 3) 시스템 권한을 점검하십시오. 4) 서비스 종속성을 점검합니다. 5) MySQL을 다시 설치하십시오. 다음 단계를 따르면 MySQL 시작이 실패하게하는 문제를 찾고 해결할 수 있습니다.

Debian OpenSSL 구성을 확인하는 방법 Debian OpenSSL 구성을 확인하는 방법 Apr 12, 2025 pm 11:57 PM

이 기사는 데비안 시스템의 OpenSSL 구성을 확인하여 시스템의 보안 상태를 신속하게 파악하는 데 도움이되는 몇 가지 방법을 소개합니다. 1. OpenSSL 버전을 먼저 확인하고 OpenSSL이 설치되었는지 확인 및 버전 정보를 확인하십시오. 터미널에 다음 명령을 입력하십시오. OpenSSLVERSION이 설치되지 않으면 시스템에 오류가 발생합니다. 2. 구성 파일을 봅니다. OpenSSL의 기본 구성 파일은 일반적으로 /etc/ssl/openssl.cnf에 있습니다. 텍스트 편집기 (예 : Nano)를 사용하여 Sudonano/etc/ssl/openssl.cnf이 파일에는 키, 인증서 경로 및 암호화 알고리즘과 같은 중요한 구성 정보가 포함되어 있습니다. 3. Ope를 활용하십시오

부트 스트랩 페이지를 미리 보는 방법 부트 스트랩 페이지를 미리 보는 방법 Apr 07, 2025 am 10:06 AM

부트 스트랩 페이지의 미리보기 방법은 다음과 같습니다. 브라우저에서 직접 HTML 파일을 엽니 다. 라이브 서버 플러그인을 사용하여 브라우저를 자동으로 새로 고치십시오. 온라인 환경을 시뮬레이션하기 위해 로컬 서버를 구축하십시오.

See all articles