6、HBase 0.98配置snappy 1)配置HBase lib/native/Linux-amd64-64/ 中的lib文件。...2014 hbase(main):001:0> 然后执行创建语句: hbase(main):001:0> create 'test_snappy', {NAME => 'cf', COMPRESSION...::Table - test_snappy hbase(main):002:0> 查看创建的test_snappy表: hbase(main):002:0> describe 'test_snappy'...接下来,插入数据试试: hbase(main):003:0> put 'test_snappy', 'key1', 'cf:q1', 'value1' 0 row(s) in 0.0790 seconds...hbase(main):004:0> 遍历test_snappy表试试: hbase(main):004:0> scan 'test_snappy' ROW
我们Hadoop 2.4集群默认不支持snappy压缩,但是最近有业务方说他们的部分数据是snappy压缩的(这部分数据由另外一个集群提供给他们时就是snappy压缩格式的)想迁移到到我们集群上面来进行计算...not available: this version of libhadoop was built without snappy support 根据报错信息显示snappy本地库不可用,同时似乎在编译...libhadoop的时候需要特别指定以支持snappy,这一点不同于hadoop1.0,hadoop1.0只需要将snappy的本地库文件往指定目录一拷贝就行,不需要重新编译libhadoop本地库文件...以上说了半天题外话,以下来进入主题来说一下怎样在不替换集群本地库文件,不重启hadoop进程,也即在hadoop的客户端就能解决支持snappy压缩的问题的方法: 1、编译snappy本地库,编译之后snappy...(*) from snappy_test; 运行hql之后,发现RCFile+snappy的数据能够正常处理计算,同时200+M的文件split成两个map任务处理,测试完成。
snappy压缩在Hadoop中不是自带的,本文介绍在hadoop2.0中安装和配置snappy压缩,使hadoop2.0支持snappy压缩。...1 安装snappy库 可以从https://code.google.com/p/snappy/下载源码,通过编译源码安装 tar -zxvf snappy-1.1.1.tar.gz cd snappy.../configure make sudo make install 也可以直接用yum来安装 sudo yum install snappy snappy-devel 2 安装hadoop-snappy...包 从https://github.com/electrum/hadoop-snappy下载hadoop-snappy包hadoop-snappy-master.zip 解压 unzip hadoop-snappy-master.zip...hadoop-snappy-0.0.1-SNAPSHOT.tar.gz cp-r hadoop-snappy-0.0.1-SNAPSHOT/lib/* $HADOOP_HOME/lib Snappy 0.0.1
查询后,无法查询内容,查日志有如下错误: org.apache.hadoop.HBase.DoNotRetryIOException: Compression algorithm 'snappy' previously...通过google查询需要HBase支持snappy压缩算法,通过hadoop checknative发现集群默认确实不支持snappy算法(虽然安装snappyrpm Native library checking...without snappy support 在HBase-site.xml增加属性HBase.regionserver.codecs value为snappy即可,在测试集群通过该方法,HBase启动失败...后确认tlinux1.2的hadoop集群上支持snappy的方法:即需要在特定系统编译hadoop相关本地库(native库)替换hadoop当前的native库,然后HBase的启动环境脚本增加...再hadoop checknative后发现已支持snappy。逐步全量重启HBase。
not available: this version of libhadoop was built without snappy support....造成以上错误的原因是Hadoop的二进制安装包中没有snappy支持,需要手工重新编译。 操作过程: 1....下载所需要的源码包 snappy-1.1.1.tar.gz protobuf-2.5.0.tar.gz hadoop-2.7.2-src.tar.gz 2....编译安装snappy # 用root用户执行以下命令 tar -zxvf snappy-1.1.1.tar.gz cd snappy-1.1.1/ ..../configure make make install # 查看snappy库文件 ls -lh /usr/local/lib |grep snappy 4.
拷贝lzo的jar包cp -a hadoop-lzo/target/hadoop-lzo-0.4.20-SNAPSHOT.jar 到hadoop/share/hadoop/common/lib下面和hbase.../lib下面 //测试hbase是否支持snappy hbase org.apache.hadoop.hbase.util.CompressionTest /user/webmaster/word.../in/tt2 snappy //测试hbase是否支持lzo hbase org.apache.hadoop.hbase.util.CompressionTest /user/webmaster...表,所占存储空间最大 经过snappy压缩的表,存储空间明显变小 经过lzo压缩的表,存储空间最小 遇到的问题: 一个hbase中,如果同时有两种压缩表,一个是lzo压缩的表,一个是snappy...的客户端租约超时,或者是linux的句柄数太少,等等,经过验证,发现跟这些处理方法没关系,删除了一个snappy压缩的表,继续测试,这下能正常运行了, 至于具体的原理,还没搞清楚,可能与hbase的hfile
一.前述 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的寻址入口。
环境如下: Centos6.5 Apache Hadoop2.7.1 Apache Hbase0.98.12 Apache Zookeeper3.4.6 JDK1.7 Ant1.9.5...Maven3.0.5 最近在测Hbase的压缩,Hadoop安装了lzo和snappy,插入50条文本数据,每条数据大约4M,来看他们的压缩率对比, 然后在测的过程中,发现用java客户端去scan...,导致垃圾收集时间出现了4,5秒,这下我才有点头绪,hbase是个吃内存的玩意,内存给的少,确实有可能导致regionserver挂掉,于是我查看hbase的堆内存分配情况,发现是默认的1G,这下确实跟这个有很大关系...最后给出测试压缩的一个结论:总共测了4种压缩比较,原始数据200M (1)不用压缩 占空间 128.1 M (2)gz压缩 占920.3 K (3)snappy压缩 占 13.2M...(4)lzo压缩 占8M 以上可以看出,gz的压缩比最高,lzo次之,snappy第三,当然不同的压缩适用于不用的业务场景,这里不能就简简单单的 总结必须用什么,这里面snappy
hbase是一个KeyValue型的数据库,在《hbase实战》描述它的逻辑模型【行键,列族,列限定符,时间版本】,物理模型是基于列族的。但实际情况是啥?还是上点代码吧。 ...colDesc.setCacheIndexesOnWrite(true); //存储的时候使用压缩算法 colDesc.setCompressionType(Algorithm.SNAPPY...); //进行compaction的时候使用压缩算法 colDesc.setCompactionCompressionType(Algorithm.SNAPPY);...//压缩内存和存储的数据,区别于Snappy colDesc.setDataBlockEncoding(DataBlockEncoding.PREFIX); //写入硬盘的时候是否进行编码...(Algorithm.SNAPPY); hbase的表在hdfs上面的是这么存储的,/hbase-root/tableName/regionName/familyName/HFile, 在tableName
来加速Hbase的访问,比如cache的.META.元数据的信息。...流程 老的Region寻址方式 在Hbase 0.96版本以前,Hbase有两个特殊的表,分别是-ROOT-表和.META.表,其中-ROOT-的位置存储在ZooKeeper中,-ROOT-本身存储了...(3)Hlog数量上限 前面说到Hlog为了保证Hbase数据的一致性,那么如果Hlog太多的话,会导致故障恢复的时间太长,因此Hbase会对Hlog的最大个数做限制。...该参数为:hbase.hregion.majorcompaction.jitter 具体算法为: hbase.hregion.majorcompaction参数的值乘于一个随机分数,这个随机分数不能超过...通过hbase.hregion.majorcompaction参数的值加上或减去hbase.hregion.majorcompaction参数的值乘于一个随机分数的值就确定下一次大合并的时间区间。
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...这是HBase二级索引出现的背景。即二级索引是为了让HBase能够提供更多维度的查询能力。...注意:HBase原生并不支持二级索引方案,但基于HBase的KeyValue数据模型与API,可以轻易地构建出二级索引数据。
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...Zookeepr为hbase提供集群协调 client 访问hbase 保留一些缓存信息提升效率 zookeeper 保证任何时候集群只有一个HMaster 监控regionServer的状态
可以用如下语句在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
parquet:列式存储,对嵌套类型数据支持较好 hive文件支持压缩方式: 这个与底层的hadoop有关,hadoop支持的压缩,hive都支持,主要有: gzip,bizp,snappy...看下几个步骤: (1)集成Hive+Hbase,使得Hive可以关联查询Hbase表的数据,但需要注意的是,hbase表中的每个字段都有时间戳版本,而进行hive映射时是没办法 指定的timestamp...关于hive+hbase集成,请参考这篇文章:http://qindongliang.iteye.com/blog/2101094 (2)使用hive建立一个外部表,关联hbase,sql文件如下:...string, ctime string ) stored as orc --stored as textfile; tblproperties ("orc.compress"="SNAPPY...,用上orc+snappy的组合,查询时比直接 hive关联hbase表查询性能要高一点,当然缺点是数据与数据源hbase里的数据不同步,需要定时增量或者全量,用于离线分析。
/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
1.文档编写目的 该文档主要通过使用HBase快照导出历史全量数据并还原到新的HBase集群,然后改造源生的ExportSnapshot类,通过比较变化的文件实现导出增量,并最终实现HBase跨集群的增量备份和还原...在cdp7.1.4生成一张测试的表 2.1.1 使用HBase的pe命令生成一个10G的表 hbase org.apache.hadoop.hbase.PerformanceEvaluation --compress...=SNAPPY --size=10 sequentialWrite 10 建表权限不够报错 在ranger配置如下 2.1.2 TestTable表HDFS大小 hadoop fs -du -h.../hbase/data/default/ 此处由于指定了TestTable表的压缩格式为SNAPPY,所以在HDFS上只有2.5GB 2.1.3 TestTable表的总数据量,共10485760...使用ExportSnapshot导出快照数据时未造成导出数据膨胀,与原始启用了Snappy压缩的HBase表大小基本一致。
Hbase(五): JavaApi操作Hbase 依赖 org.apache.hbase hbase-client 0.98.17-hadoop2 org.apache.hbase hbase-server</artifactId...版本一致 Hbase版本可以通过连接Hbase client使用version命令查看 定义静态配置变量 public static Configuration conf; static{ conf...= HBaseConfiguration.create(); conf.set("hbase.zookeeper.quorum","hadoop1:2181"); } 由于配置变量都是一样的,
二.具体优化 1.表的设计 1.1 预分区 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region...因此Hbase的更新其实是不断追加的操作。...的应用场景,可以考虑在应用程序中做缓存,当有新的查询请求时,首先在缓存中查找,如果存在则直接返回,不再查询HBase;否则对HBase发起读请求查询,然后在应用程序中将查询结果缓存起来。...HTable和HTablePool使用注意事项 HTable和HTablePool都是HBase客户端API的一部分,可以使用它们对HBase表进行CRUD操作。...使用solr和hbase整合完成全文搜索。 a) 使用MR批量读取hbase中的数据,在solr里面建立索引(no store)之保存rowkey的值。
.CM和CDH版本为5.13.0 2.使用root用户操作 前置条件 1.HBase0.95+ 2.测试表信息描述 ---- 使用HBase的PerformanceEvaluation生成一张SNAPPY...--compress=SNAPPY --size=10 sequentialWrite 10 2.TestTable表结构 hbase(main):013:0* desc 'TestTable' Table...info', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', COMPRESSION => ' SNAPPY...[root@ip-172-31-6-148 ~]# [3e8g2mu6eq.jpeg] 此处由于指定了TestTable表的压缩格式为SNAPPY,所以在HDFS上只有2.5GB 4.TestTable...使用ExportSnapshot导出快照数据时未造成导出数据膨胀,与原始启用了Snappy压缩的HBase表大小基本一致。
本文将介绍大数据的知识和Hbase的基本概念,作为大数据体系中重要的一员,Hbase弥补了Hadoop只能离线批处理的不足,支持存储小文件,随机检索。...而这种特性使得Hbase对于实时计算体系的事件存储有天然的较好的支持。这使得Hbase在实时流式计算中也扮演者重要的角色。 ?...Hbase使用Java编写,还是一种NoSQL数据库,这些特性决定了Hbase独特的应用场景。...的表模型与关系型数据库的表模型不同: Hbase的表没有固定的字段定义; Hbase的表中每行存储的都是一些key-value对; Hbase的表中有列族的划分,用户可以指定将哪些kv...通过将数据增量的存入Hbase,并在流式处理中实时查询Hbase,结合历史得到最终的分析结果。
领取专属 10元无门槛券
手把手带您无忧上云