hbase

通过phoenix在hbase上创建二级索引,Secondary Indexing

荒凉一梦 提交于 2020-01-10 02:47:04
环境描述 : 操作系统版本:CentOS release 6.5 (Final) 内核版本:2.6.32-431.el6.x86_64 phoenix版本:phoenix-4.10.0 hbase版本:hbase-1.2.6 hbase节点分布:1个HMaster,2个RegionServer 文档目的 : 通过在phoenix客户端连接hbase数据库,在phoenix中创建二级索引。 配置过程 : 1.登录到RegionSever节点,修改hbase-site.xml配置文件,加入如下配置 <property> <name>phoenix.query.maxServerCacheBytes</name> <value>2097152000</value> </property> <property> <name>hbase.regionserver.wal.codec</name> <value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value> </property> <property> <name>hbase.region.server.rpc.scheduler.factory.class</name> <value>org.apache.hadoop.hbase.ipc

HBase 数据迁移方案介绍

无人久伴 提交于 2020-01-10 02:13:54
一、前言 HBase数据迁移是很常见的操作,目前业界主要的迁移方式主要分为以下几类: 图1.HBase数据迁移方案 从上面图中可看出,目前的方案主要有四类,Hadoop层有一类,HBase层有三类。下面分别介绍一下。 二、Hadoop层数据迁移 2.1 方案介绍 Hadoop层的数据迁移主要用到DistCp(Distributed Copy), 官方描述是: DistCp(分布式拷贝)是用于大规模集群内部和集群之间拷贝的工具。 它使用Map/Reduce实现文件分发,错误处理和恢复,以及报告生成。 它把文件和目录的列表作为map任务的输入,每个任务会完成源列表中部分文件的拷贝。 我们知道MR程序适合用来处理大批量数据, 其拷贝本质过程是启动一个MR作业,不过DisctCp只有map,没有reducer。在拷贝时,由于要保证文件块的有序性,转换的最小粒度是一个文件,而不像其它MR作业一样可以把文件拆分成多个块启动多个map并行处理。如果同时要拷贝多个文件,DisctCp会将文件分配给多个map,每个文件单独一个map任务。我们可以在执行同步时指定 -m 参数来设定要跑的map数量,默认设置是20。如果是集群间的数据同步,还需要考虑带宽问题,所以在跑任务时还需要设定 bandwitdh 参数,以防止一次同步过多的文件造成带宽过高影响其它业务。同时

HBase性能优化

十年热恋 提交于 2020-01-10 01:53:28
一、HBase性能优化方案(一):表的设计 a.Pre-Creating Regions: 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分。一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样当数据写入HBase时,会按照region分区情况,在集群内做数据的负载均衡。 b.RowKey原则: HBase中row key用来检索表中的记录,支持以下三种方式: • 通过单个row key访问:即按照某个row key键值进行get操作; • 通过row key的range进行scan:即通过设置startRowKey和endRowKey,在这个范围内进行扫描; • 全表扫描:即直接扫描整张表中所有行记录。 RowKey规则: 1、 越小越好 2、 Rowkey的设计是要根据实际业务来 3、 散列性: a) 取反 001 002 100 200 b) Hash c.Column Family 不要在一张表里定义太多的column family。目前Hbase并不能很好的处理超过2~3个column family的表。因为某个column family在flush的时候,它邻近的column family也会因关联效应被触发flush

python操作Hbase导入导出

痞子三分冷 提交于 2020-01-10 00:17:06
我现在要把数据从正式服中获取,然后在从测试服中存储 import happybase import requests import json port_hbase=9090 host_hbase='你的正式服ip' def scanner(table='DATAETL:RPT',start='',end='',*args,**kwrgs): c=happybase.Connection(host_hbase,port_hbase) t=c.table(table) return t.scan(*args,**kwrgs,row_start=start,row_stop=end) def hbase_save(table='DATAETL:RPT',key='',row='',*args,**kwrgs): c=happybase.Connection("你的测试服ip",9090) t=c.table(table) t.put(key,row) row_start='2019-10-17_41898936' row_end='2019-10-17_41898937' for key,row in scanner(start=row_start,end=row_end): hbase_save(key=key,row=row) 查询一下,看看ok不,

HBase工程师线上工作经验总结----HBase常见问题及分析

允我心安 提交于 2020-01-09 18:51:50
阅读本文可以带着下面问题: 1.HBase遇到问题,可以从几方面解决问题? 2.HBase个别请求为什么很慢?你认为是什么原因? 3.客户端读写请求为什么大量出错?该从哪方面来分析? 4.大量服务端exception,一般原因是什么? 5.系统越来越慢的原因是什么? 6.Hbase数据写进去,为什么会没有了,可能的原因是什么? 7. regionserver发生abort,遇到最多是什么情况? 8.从哪些方面可以判断HBase集群是否健康? 9.为了加强HBase的安全性,你会采取哪些措施? 在Tcon分布式系统测试实践的分享中,笔者提到了测试人员参与线上问题分析的必要性: 1、测试工作中的问题定位提供了大量经验,可以直接应用于线上。 2、快速的解决问题可以避免大故障的发生。 3、从线上的问题可以帮助我们准确抓住测试的重点和不足。 因此在日常的线上维护工作中,积累和很多HBase的问题分析经验,这里于大家分享一下,如有错误和不足请指出。 问题分析的主要手段 1、监控系统:首先用于判断系统各项指标是否正常,明确系统目前状况 2、服务端日志:查看例如region移动轨迹,发生了什么动作,服务端接受处理了哪些客户端请求。 3、gc日志:gc情况是否正常 4、操作系统日志和命令:操作系统层面、硬件是否故障,当前状况如何 5、btrace:实时跟踪目前服务端的请求和处理情况 6、运维工具

HBase操作命令总结

狂风中的少年 提交于 2020-01-09 18:51:19
1,如何运行HBase 1,如何查找hbase的安装目录 whereis用来查找程序的安装目录、帮助文档等等,如下: whereis hbase 结果如下,目录下一级包含bin的就是hbase的安装目录。 [hadoop@cdh002 bin]$ whereis hbase hbase: /usr/bin/hbase /etc/hbase /usr/lib/hbase 2,如何运行hbase命令 首先切换到hbase的安装目录 cd /usr/lib/hbase/bin/ 执行hbase shell hbase shell 3 如何查找当前用户 使用whoami命令可查看当前用户 hbase(main):001:0> whoami hadoop (auth:SIMPLE) groups: hadoop 4 HBase如何删除字符 需要同时按住Ctrl + Backspace 才能删除之前输入的字符。 2,如何操作HBase表结构 1,查看有哪些表 list 2,如何创建HBase表 创建HBase表不需要指定列,只需要指定列簇就行了 语法:create <table>, {NAME => <family>, VERSIONS => <VERSIONS>} 比如创建一个表,保存用户的个人信息infos和工作经历jobs (1) hbase(main):007:0> create

熟悉常用的HBase操作

穿精又带淫゛_ 提交于 2020-01-09 16:53:15
1. 以下关系型数据库中的表和数据,要求将其转换为适合于HBase存储的表并插入数据: 学生表(Student)(不包括最后一列) 学号(S_No) 姓名(S_Name) 性别(S_Sex) 年龄(S_Age) 课程(course) 2015001 Zhangsan male 23 2015003 Mary female 22 2015003 Lisi male 24 数学(Math)85 create 'Student', ' S_No ','S_Name', ’S_Sex’,'S_Age' put 'Student','s001','S_No','2015001' put 'Student','s001','S_Name','Zhangsan' put 'Student','s001','S_Sex','male' put 'Student','s001','S_Age','23' put 'Student','s002','S_No','2015003' put 'Student','s002','S_Name','Mary' put 'Student','s002','S_Sex','female' put 'Student','s002','S_Age','22' put 'Student','s003','S_No','2015003' put 'Student',

hbase或hadoop错误及解决方法

橙三吉。 提交于 2020-01-09 07:50:06
  hadoop和hbase都差不多是第一次使用,所以在整个过程中难免遇到各种问题。我把我遇到过的所有解决了的错误,全部在这,遇到问题的增多文章再逐步增加。在hadoop和hbase使用过程中,日志分析是必不可少的一部分,对解决问题相当关键。 1、PC之间时间不同步(hbase) FATAL org.apache.hadoop.hbase.regionserver.HRegionServer: Master rejected startup because clock is out of sync org.apache.hadoop.hbase.ClockOutOfSyncException: org.apache.hadoop.hbase.ClockOutOfSyncException: Server suc-pc,60020,1363269953286 has been rejected; Reported time is too far out of sync with master. Time difference of 39375ms > max allowed of 30000ms   小问题,一看就知道错误发生在哪。在hbase中,允许小的时间偏差,但是上面39秒的时间偏差就有点大了。如果你是联网的话,可以用ntpdate 219.158.14.130进行同步。

从Hadoop框架与MapReduce模式中谈海量数据处理(含淘宝技术架构)

时间秒杀一切 提交于 2020-01-09 01:38:42
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 前言 几周前,当我最初听到,以致后来初次接触Hadoop与MapReduce这两个东西,我便稍显兴奋,觉得它们很是神秘,而神秘的东西常能勾起我的兴趣,在看过介绍它们的文章或论文之后,觉得Hadoop是一项富有趣味和挑战性的技术,且它还牵扯到了一个我更加感兴趣的话题:海量数据处理。 由此,最近凡是空闲时,便在看“Hadoop”,“MapReduce”“海量数据处理”这方面的论文。但在看论文的过程中,总觉得那些论文都是浅尝辄止,常常看的很不过瘾,总是一个东西刚要讲到紧要处,它便结束了,让我好生“愤懑”。 尽管我对这个Hadoop与MapReduce知之甚浅,但我还是想记录自己的学习过程,说不定,关于这个东西的学习能督促我最终写成和“经典算法研究系列”一般的一系列文章。 Ok,闲话少说。本文从最基本的mapreduce模式,Hadoop框架开始谈起,然后由各自的架构引申开来,谈到海量数据处理,最后谈谈淘宝的海量数据产品技术架构,以为了兼备浅出与深入之效,最终,希望得到读者的喜欢与支持。谢谢。 由于本人是初次接触这两个东西,文章有任何问题,欢迎不吝指正。Ok,咱们开始吧。 第一部分、mapreduce模式与hadoop框架深入浅出 架构扼要 想读懂此文,读者必须先要明确以下几点,以作为阅读后续内容的基础知识储备:

HBase性能优化方法总结

只谈情不闲聊 提交于 2020-01-09 00:30:13
本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法。有关HBase系统配置级别的优化,可参考: 淘宝Ken Wu同学的博客 。 下面是本文总结的第一部分内容:表的设计相关的优化方法。 1. 表的设计 1.1 Pre-Creating Regions 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分。一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样当数据写入HBase时,会按照region分区情况,在集群内做数据的负载均衡。 有关预分区,详情参见: Table Creation: Pre-Creating Regions ,下面是一个例子: public static boolean createTable(HBaseAdmin admin, HTableDescriptor table, byte[][] splits) throws IOException { try { admin.createTable(table, splits); return true; } catch (TableExistsException e) { logger.info("table " + table