Region/Hfile/Datanode的关系和区分

来源:互联网 发布:mac pro13 retina壁纸 编辑:程序博客网 时间:2024/05/02 05:04

转载链接:https://www.zhihu.com/question/26872988/answer/35186487


这三个术语分别属于Hadoop家族中的HBase和HDFS,DateNode是HDFS的,HFile和region是HBase的,HBase是采用HDFS作为存储。


Data Node
Data Node是指HDFS集群中负责存储数据的服务器,与此相对的是Naming Node:

<img src="https://pic4.zhimg.com/272b35a89da96d6ed24241d8c7ebb107_b.jpg" data-rawwidth="874" data-rawheight="604" class="origin_image zh-lightbox-thumb" width="874" data-original="https://pic4.zhimg.com/272b35a89da96d6ed24241d8c7ebb107_r.jpg">


Region
Region是表按照RowKey范围划分的不同的部分,相当于DBMS中的分区。同时Region也是表在集群中分布的最小单位,可以被分配到某一个Region Server上。

<img src="https://pic4.zhimg.com/73599131f5b647e6319d93e7aef10fcf_b.jpg" data-rawwidth="1500" data-rawheight="1125" class="origin_image zh-lightbox-thumb" width="1500" data-original="https://pic4.zhimg.com/73599131f5b647e6319d93e7aef10fcf_r.jpg">(图片来源:
Region中又按照Column Famliy分为不同的Store,每个Store由MemStore和StoreFile组成
<img src="https://pic3.zhimg.com/2438cd1b138a6f2dd547356f85ef8d1e_b.jpg" data-rawwidth="1500" data-rawheight="1125" class="origin_image zh-lightbox-thumb" width="1500" data-original="https://pic3.zhimg.com/2438cd1b138a6f2dd547356f85ef8d1e_r.jpg">


HFile
如上图所示,一个StoreFile对应着一个HFile。而HFile是存储在HDFS之上的。HFile文件格式是基于Google Bigtable中的SSTable,如下图所示:

<img src="https://pic3.zhimg.com/3441bb28765471219ddc34f2e7fc200a_b.jpg" data-rawwidth="1600" data-rawheight="473" class="origin_image zh-lightbox-thumb" width="1600" data-original="https://pic3.zhimg.com/3441bb28765471219ddc34f2e7fc200a_r.jpg">(图片来源:


整体上看
下面这张图中把DataNode,Region(HRegion)和HFile以及它们之间的关系都表示出来了。
<img src="https://pic3.zhimg.com/ef9724265b9a2fc90eab38228bad1646_b.jpg" data-rawwidth="1600" data-rawheight="809" class="origin_image zh-lightbox-thumb" width="1600" data-original="https://pic3.zhimg.com/ef9724265b9a2fc90eab38228bad1646_r.jpg">(图片来源:
原创粉丝点击