目录 一、下载 HBase 二、环境变量配置 三、修改配置文件 四、添加依赖包 五、启动 HDFS 六、启动 HBase 七、HBase 命令操作 八、HBase UI 九、注意事项 ---- win10 安装Hadoop3.0.0:https://blog.csdn.net/qq262593421/article/details/105927625 win10安装Hive3.0.0:https://blog.csdn.net /qq262593421/article/details/104961689 win10安装HBase2.1.4:https://mp.csdn.net/editor/html/117392585 一 /hbase-2.1.4-bin.tar.gz 二、环境变量配置 变量名:HBASE_HOME 变量值:D:\Hadoop\HBase\hbase-2.1.4 变量名:HBASE_BIN_PATH java.lang.NoClassDefFoundError: Could not initialize class org.fusesource.jansi.internal.Kernel32 五、启动 HDFS win10
Rowkey设计越短越好,不要超过10~100个字节 映射regionNo,这样既可以让数据均匀分布到各个region中,同时可以根据startkey和endkey可以get到同一批数据 2. hbase 长度原则 rowkey是一个二进制码流,可以是任意字符串,最大长度 64kb ,实际应用中一般为10-100bytes,以byte[] 形式保存,一般设计成定长。 建议越短越好,不要超过16个字节,原因如下:数据的持久化文件HFile中是按照KeyValue存储的,如果rowkey过长,比如超过100字节,1000w行数据,光rowkey就要占用100*1000w=10 讲一下Hbase,Hbase二级索引用过吗 默认情况下,Hbase只支持rowkey的查询,对于多条件的组合查询的应用场景,不够给力。 10. HBase与mysql得区别 数据存储的方式: Mysql面向行存储数据,整个行的数据是一个整体,存储在一起。
目录 一、下载 HBase 二、环境变量配置 三、修改配置文件 四、添加依赖包 五、启动 HDFS 六、启动 HBase 七、HBase 命令操作 八、HBase UI 九、注意事项 ---- win10 安装Hadoop3.0.0:https://blog.csdn.net/qq262593421/article/details/105927625 win10安装Hive3.0.0:https://blog.csdn.net /qq262593421/article/details/104961689 win10安装HBase2.1.4:https://mp.csdn.net/editor/html/117392585 /hbase-2.1.4-bin.tar.gz 二、环境变量配置 变量名:HBASE_HOME 变量值:D:\Hadoop\HBase\hbase-2.1.4 变量名:HBASE_BIN_PATH java.lang.NoClassDefFoundError: Could not initialize class org.fusesource.jansi.internal.Kernel32 五、启动 HDFS win10
Win10 IDEA远程连接HBase Win10 IDEA连接虚拟机中的Hadoop(HDFS) 关闭Hadoop和Hbase 如果已经关闭不需要走这一步 cd /usr/local/hbase bin /stop-hbase.sh cd /usr/local/hadoop . 的hbase-site.xml 将IP修改成自己的IP # 位置可能不一样,和Hbase安装位置有关 cd /usr/local/hbase vim /usr/local/hbase/conf/hbase-site.xml // IP 需要修改 configuration.set("hbase.rootdir","hdfs://192.168.111.135:9000/hbase"); try Shell命令 # 进入shell bin/hbase shell # 列出HBase中所有的表 list # 创建一个新表,表名为StudentInfo,包含两个列族Personal和Grades
这是shift的规范格式,spec中的是核心的匹配逻辑和输出逻辑 } }] 原值输出脚本解释 接下来我们把脚本中关于男女值替换的逻辑去掉看下效果 [{ "operation": "shift (没看懂可以再看几遍,废话不好写啊) 男女值替换脚本解释 下面再单独来看看替换男女值的脚本 [{ "operation": "shift", "spec": { "*":
第10章 HBase:Hadoop数据库 10.6 HBase API (新特性) 本节所有代码可以从https://github.com/ihadron/hbase.git下载。 HBaseDao.deleteTable("testA"); HBaseDao.createTable("testA", "info"); //循环插入10 条数据 for(int i=0;i<10;i++){ HBaseDao.put("testA", "00"+i, "info", "name", "test"+i count=10 value=test1 ------------------sacn(testA,000,004,info,name) test0 test1 test2 test3 -------- column=info:name, timestamp=1501921506159, value=test9 10
一.简介 二.代码 1.从HBase读取矢量数据 //读取hbase def read_hbase(implicit sparkContext: SparkContext) = { }); println("close") hBaseDataStore.dispose(); } 2.Main调用 val params = Map("hbase.zookeepers " -> "geomesa1.com:2181,geomesa2.com:2181,geomesa3.com:2181", "hbase.catalog" -> "Test");
第10章 HBase:Hadoop数据库 10.7 HBase 批量导入 10.7.1 批量导入数据的方法 向HBase表中导入一条数据可以使用HBase Shell的put命令或HBase API的Put (main):001:0> create 'mydata','info' 0 row(s) in 1.8170 seconds => Hbase::Table - mydata hbase(main) :002:0> quit [root@node1 data]# (4)上传数据 执行导入命令: hbase org.apache.hadoop.hbase.mapreduce.ImportTsv ~]# hbase org.apache.hadoop.hbase.mapreduce.ImportTsv \ > -Dimporttsv.columns=HBASE_ROW_KEY,info:data1 -1.2.6/conf:/opt/jdk1.8.0_112/lib/tools.jar:/opt/hbase-1.2.6:/opt/hbase- 2017-08-05 05:37:23,979 INFO
第10章 HBase:Hadoop数据库 10.5 HBase Shell 10.5.1 官方快速入门教程 http://hbase.apache.org/book.html#quickstart Procedure : Use HBase For the First Time Connect to HBase ? ' => '10'}} Table configuration options can be put at the end. Examples: hbase> create 'ns1:t1', 'f1', SPLITS => ['10', '20', '30', '40'] hbase> create 't1', ' f1', SPLITS => ['10', '20', '30', '40'] hbase> create 't1', 'f1', SPLITS_FILE => 'splits.txt', OWNER
一.前述 1.HBase,是一个高可靠性、高性能、面向列、可伸缩、实时读写的分布式数据库。 二.Hbase数据模型 ? 2.1 ROW KEY(相当于关系型数据库中的ID) 决定一行数据 按照字典顺序排序的。 HBase把同一列族里面的数据存储在同一目录下,由几个文件保存。 2.3 Timestamp时间戳(相当于版本!!!) 三.Hbase架构 ? 3.1 Client 包含访问HBase的接口并维护cache来加快对HBase的访问 3.2 Zookeeper 保证任何时候,集群中只有一个master(HA) 存贮所有Region的寻址入口。
" while True: # 获取00~99的两位数字,包含00与99 num = random.randint(00, 99) # 获取当前10 get_random_sex() + "," + get_random_edu() + "," + get_random_tel() + "," + get_random_email( 10 :/tmp/hbase_data.txt 100000:要生成数据的总数量 为避免数据过大导致热点和数据倾斜问题,预先设置 HBase 表为 10 个 Region,对应表的创建命令为: create 'default:people', {NAME=>'basic_info'}, {NAME=>'other_info'}, SPLITS=>['10|','20|','30|','40|','50|', '60|','70|','80|','90|'] 接下来我们可以利用这份测试数据对 HBase 相关功能进行测试与练习,比如数据批量导入测试,下篇文章会说明。
可以用如下语句在hive上实行创表,然后hbase上会出现对应的表 ? ? 此时可以看见basketball2已经在hbase上建立了 ps:CREATE TABLE basketball2(num int,team string,state string) STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler’ WITH SERDEPROPERTIES (“hbase.columns.mapping” = “ :key,player:team,player:state”) TBLPROPERTIES (“hbase.table.name” = “basketball2”); create table后面跟hive 上要创建的表名,mapping相当于映射,:前面没有东西就相当于是hbase里的rowkey,后面的player相当于列族里的Column family,而team和state相当于Column qualifier
Hbase(四):Hbase原理 Hbase的工作方式 region的分裂和结构 hbase表中的数据按照行键的字典顺序排序 hbase表中的数据按照行的的方向切分为多个region 最开始只有一个 写入数据到hdfs的过程其实是不断追加hfile的过程 Hbase写入数据 数据写入hbase时 先在hlog中记录日志 再修改memstore 直接返回成功 这样 不需要真正等待写入hdfs的过程 所以很快 由于hbase中的数据天然排序 再加上索引 整个查询也可以非常的快 Hbase中的region的寻址 在hbase中有一个hbase:meta表,其中存放了 表和region和regionSever 之间的对应关系信息 支持增、删、读、改、顺序扫描操作 牺牲了一部分读的性能换取了高效写入能力 Hbase系统架构 hbase中的老大叫hmaster 小弟叫hregionServer 客户端叫Client 的数据是可靠的 基于hdfs,由hdfs的可靠性保证了hbase的可靠性–即数据可以有多个备份 利用zookeeper实现了HA,即使某一台机器挂掉另外的机器也可以很快的替换它 Hbase与Hive
第10章 HBase:Hadoop数据库 10.3 HBase安装与配置 HBase服务规划 机器名 HMaster HRegionServer Zookeeper node1 Y Y Y node2 按照这个思路,下面来演示HBase的安装与配置。 10.3.1 HBase下载 HBase官方网址:http://hbase.apache.org/ ? ? ? opt/hbase-1.2.6/ [root@node1 hbase-1.2.6]# ls bin CHANGES.txt conf docs hbase-webapps LEGAL lib LICENSE.txt NOTICE.txt README.txt [root@node1 hbase-1.2.6]# 10.3.3 HBase集群模式配置 1、配置hbase-env.sh @node1 hbase-1.2.6]# vi conf/hbase-site.xml [root@node1 hbase-1.2.6]# cat conf/hbase-site.xml <?
(默认10G)后拆分。 :min(10G,3*3*128M)=1152M 第三次拆分大小为:min(10G,5*5*128M)=3200M 第四次拆分大小为:min(10G,7*7*128M)=6272M 第五次拆分大小为:min (10G,9*9*128M)=10G 第六次拆分大小为:min(10G,11*11*128M)=10G 从上面的计算我们可以看到这种策略能够自适应大表和小表,但是这种策略会导致小表产生比较多的小region ) 第10步RegionServr修改/hbase/region-in-transition/region-name的znode的状态为SPLIT 备注:为了减少对业务的影响,Region的拆分并不涉及到数据迁移的操作 特点 ---- 大表:普通计算机处理10亿条数据(数十亿行*数百万列*数千个版本 = TB级或PB级的存储) 可伸缩:Hbase的伸缩性主要体现在两个方面,一个是基于上层处理能力(RegionServer
HBase Shell 常用命令: 注意:HBase在linux命令行下操作时,区分大小写 HBase API HBase 提供Java方式的原生接口,其中需要注意的有: (1)创建Connection HBase Rest Gateway HBase附带的REST服务器,该服务器将HBase表,行,单元和元数据作为URL指定的资源公开。 HBase到Hive 将HBase的数据作为数据源,建立Hive外部表关联到HBase,利用Hive的HQL查询HBase数据,更进一步,将Hive的元数据同步到Impala,利用Impala的SQL 5.避免数据热点的方法 - Hashing 基于RowKey的完整或部分数据进行Hash,而后将Hashing后的值完整替换原RowKey或部分替换RowKey的前缀部分。 一般性设计思路: 在HBase中,row key可以是任意字符串,最大长度64KB,实际应用中一般为10~100bytes,存为byte[]字节数组,一般设计成定长的。
第10章 HBase:Hadoop数据库 10.2 HBase基本概念、框架 本节内容,大多是从网络上汇总而来,并做了一定总结修改。 数据类型单一:HBase中的数据都是字符串,没有类型。 由图可知HBase建立在Hadoop之上,HBase底层使用的是Hadoop的HDFS。准确的说HBase建立在HDFS之前,并不依赖于Hadoop。 HBase包含3个重要组件:Zookeeper、HMaster和HRegionServer。 (1)Zookeeper 为整个HBase集群提供协助服务,包括: 1)存放整个 HBase集群的元数据以及集群的状态信息。
让你实现windows的任务栏及菜单栏全透明,或者设置成自己喜欢的颜色背景,还可以更换好看的菜单图标,不喜欢win10菜单的可以让菜单列表变成win7样式,这样子可以实现开机加速!
/bin/hbase shell hbase> snapshot 'myTable', 'myTableSnapshot-122112' 3.列出已经存在的快照 $ . /bin/hbase shell hbase> list_snapshots 4.删除快照 $ . /bin/hbase shell hbase> delete_snapshot 'myTableSnapshot-122112' 5.从快照复制生成一个新表 $ . /bin/hbase shell hbase> disable 'myTable' hbase> restore_snapshot 'myTableSnapshot-122112' 提示:因为备份( 7.复制到别的集群当中 该操作要用hbase的账户执行,并且在hdfs当中要有hbase的账户建立的临时目录(hbase.tmp.dir参数控制) 采用16个mappers来把一个名为MySnapshot
业务团队为满足监管要求的长期保存与跨可用区容灾能力,早期将超出时间阈值的数据归档至 HBase。 然而,随着业务深度的增加,基于原生 HBase 的架构在运维成本与开发效率上面临显著的结构性瓶颈,亟需通过架构升级实现以下目标: 精简组件依赖,降低运维成本 (Ops Cost): HBase 依赖 Zookeeper 引入 TDSQL TDStore 敏态引擎重构底层存储 为彻底解决上述架构痛点,业务团队引入基于容器化云原生架构的 TDSQL 新一代敏态引擎 TDStore,全面替换原有 HBase 历史库集群。 量化核心业务系统的数据查询与存储效能 经过架构替换与业务割接,基于 TDSQL TDStore 引擎的还款记录历史库在系统性能、存储成本与开发规范上实现了精确的量化收益: 执行时耗大幅缩减: 摒弃了原先 整体对比 HBase 平均拥有约 40% 左右的压缩率提升(对比 InnoDB 引擎最高可达 5% 的压缩率),从根本上遏制了历史数据堆积带来的硬件成本扩张。