本篇博文主要对HyperBase(HBase)、Search(ElasticSearch)的索引类型及具体存储位置进行概要总结,让大家从整体上了解TDH平台中HyperBase和Search索引的管理。后续会在大数据核心原理与实践专栏中对索引相关知识进行详细讲解。

ESSearch索引类型存放位置
在早期ESSearch1.X版本,会将索引存在内存,但之后发现没啥明显提升,就在2.X版本去掉了内存存储方式。故现在最新的ESSearch的索引应当存放在本地磁盘。

具体的文件存储格式有如下几种:
    simplefs
    这是一个随机访问文件的文件存储系统,并发性能较差,多线程下存在性能瓶颈问题。如果我们想对ESSearch索引做持久化,推荐使用niofs。

    NIO FS(NIO文件系统)
    通过NIO将分片索引文件写到文件系统上,允许多线程同时读取文件。

    MMap FS(内存映射文件系统)
    将索引分片存储到文件系统上,再通过映射,将索引文件映射到内存中。map即为映射的意思。不过我们需要注意:索引文件映射到内存过程中,我们需要划分出与被映射文件大小一样的虚拟内存空间。
# 设置Linux虚拟地址空间大小
echo "vm.max_map_count=262144" >> /etc/sysctl.conf && sysctl -p

    MMap FS / NIO FS(缺省值, 即default_fs)
    它会为每个类型的文件选择最好的文件系统。

HBase 索引类型及存放位置

HBase索引分为3种:
    一级索引:即原表RowKey索引。这个当然是存放在原表中(此索引存在HDFS上)
    二级索引:在某个或某些列上建立二级索引,实现基于列的快速条件查询,此索引也是与原表一起存放(此索引存在HDFS上)
    全文索引:HBase底层借助ElasticSearch实现全文索引,而ElasticSearch的索引是存在本地磁盘上的,故HBase的全文索引也是存储在磁盘上。
    (注1:在最新版本,使用默认的存储设置default_fs就行。ESSearch会在Windows的64bit系统上使用 mmapfs,在windows的32bit系统上使用 simplefs ,除此之外默认使用 default_fs (hybrid niofs 和 mmapfs),如Linux。)
    (注2:在商业发行版大数据平台TDH上,也是默认存在本地磁盘,但同时也支持存在HDFS上)

总结
说了这么多,大家只要记住ElasticSearch将索引存储在本地磁盘,HBase一级索引、二级索引存在HDFS上,全文索引存在本地磁盘即可!

原文链接:https://blog.csdn.net/whdxjbw/article/details/81133830

HBase和ElasticSearch索引类型及存储位置的更多相关文章

  1. mysql索引类型(按存储结构划分)

    关于mysql索引类型,网上有很多相关的介绍,给人的感觉很乱.鄙人在翻阅相关书籍后,特意梳理了一下.哪里有不对的地方,欢迎指正! 1. B-Tree索引 它使用B-Tree数据结构来存储数据,实际上很 ...

  2. Elasticsearch - 搜索类型与搜索位置

    一.搜索类型: Elasticsearch同意用户选择其所希望的处理查询的方式. 由于存在一些不同的情形,对其使用不同的搜索类型才是合适的.为了控制查询的运行方式,我们能够在请求中使用search_t ...

  3. elasticsearch 索引 类型 id

    zjtest7-frontend:/usr/local/logstash-2.3.4/config# cat logstash_indexer01.conf  input {         redi ...

  4. C语言变量的类型和存储位置

    . C语言变量主要分为全局变量.静态全局变量.局部变量.静态局部变量和寄存器变量.其中静态变量用static关键字进行修饰.程序所占用的内存可以分为以下几个部分: ()代码段-存放程序代码,只读的,不 ...

  5. Elasticsearch索引原理

    转载 http://blog.csdn.net/endlu/article/details/51720299 最近在参与一个基于Elasticsearch作为底层数据框架提供大数据量(亿级)的实时统计 ...

  6. 【Java编程思想阅读笔记】Java数据存储位置

    Java数据存储位置 P46页有感 一.前置知识 栈是由系统自动分配的,Java程序员对栈没有直接的操作权限, 堆是所有线程共享的内存区域,栈 是每个线程独享的. 堆是由程序员自己申请的,在使用new ...

  7. Elasticsearch之重要核心概念(cluster(集群)、shards(分配)、replicas(索引副本)、recovery(据恢复或叫数据重新分布)、gateway(es索引的持久化存储方式)、discovery.zen(es的自动发现节点机制机制)、Transport(内部节点或集群与客户端的交互方式)、settings(修改索引库默认配置)和mappings)

    Elasticsearch之重要核心概念如下: 1.cluster 代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的.es的一个概念就是 ...

  8. 匹夫细说C#:不是“栈类型”的值类型,从生命周期聊存储位置

    0x00 前言: 匹夫在日常和别人交流的时候,常常会发现一旦讨论涉及到“类型”,话题的热度就会立马升温,因为很多似是而非.或者片面的概念常常被人们当做是全面和正确的答案.加之最近在园子看到有人翻译的& ...

  9. mysql中常见的存储引擎和索引类型

    存储引擎 1.      定义 存储引擎说白了就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类 ...

随机推荐

  1. python 3.6 导入c++dll所遇到的坑

    1 返回值在c++里面为const char*,python 接收实际上为int类型 原因:python默认返回值为int 解决方法: import ctypes import os CUR_PATH ...

  2. 10步写了个Django网站,正经网站···

      Django做网站只要10步,真的只有10步,不信?咱们来数数--   今天主要讲解用Pycharm编辑器搭建网站,网站功能是 实现在局域网中快速传递大文件! 比如:同事要给你个1G的文件,你丢一 ...

  3. zabbix 4.X 版本 web字体显示方块

    先看看问题长啥样...... Zabbix 字体乱码(显示呈现方块) 第一种解决方法: # 1) 进入代码存放目录的字体目录: cd /data/www/zabbix/assets/fonts # 2 ...

  4. docker 镜像导入load、导出save以及重命名

    docker 导入导出操作 save 保存(导出)镜像 # 把镜像打包成 .tar # -o 要保存路径.tar # > 要保存路径.tar # docker save 镜像id > /存 ...

  5. MySQL 使用MD5对数据进行加密

    数据库MD5加密 -- ================ 测试 MD5 加密 ============== CREATE TABLE `testmd5`( id INT(11) NOT NULL AU ...

  6. kubernets之pod的标签

    一     如何查看pod 的日志 1 通过执行命令查看日志信息 kubectl logs pod_name 二    创建带有标签的pod,一个范例的pod创建yaml文件如下所示 2.1 创建带有 ...

  7. 用 CSS background 实现刻度线的呈现

    有的时候,我们需要在网页中的进度条或某种度量计上呈现一条条的刻度线.例如这种: 简单的实现方式,大致有两种:一是用图片做背景,横向平铺线条图片:二是给每一块刻度区域平铺一个元素,然后用边线实现.身为一 ...

  8. StringBuilder和输入输出

    构建字符串(StringBuilder的应用) 有些时候,需要由较短的字符串构建字符串,例如:按键或来自文件的单词,采用字符串连接的方式达到此目的效率比较低.每次连接字符串,都会构建一个新的Strin ...

  9. IP2188中文资料书

    IP2188 是一款集成 12 种.用于 USB 输出端口的快充协议 IC,支持 USB 端口充电协议.支持 11种快充协议,包括 USB TypeC PD2.0/PD3.0/PPS DFP,HVDC ...

  10. Centos7.4 小白式安装(初学)

    虚拟机安装Centos7.4系统 适用人群(初学者) 下载Centos7.4镜像 https://pan.baidu.com/s/1NtjfdHV3OWAvfDj5vrR7HQ  提取码:hzzw 虚 ...