标签: hbase

Hbase客户端无法与远程Hbase服务器连接

我为远程服务器编写了以下hbase客户端类:

System.out.println("Hbase Demo Application ");

            // CONFIGURATION

                // ENSURE RUNNING
            try {
                HBaseConfiguration config = new HBaseConfiguration();
                config.clear();
                config.set("hbase.zookeeper.quorum", "192.168.15.20");
                config.set("hbase.zookeeper.property.clientPort","2181");
                config.set("hbase.master", "192.168.15.20:60000");
                //HBaseConfiguration config = HBaseConfiguration.create();
    //config.set("hbase.zookeeper.quorum", "localhost");  // Here we are running zookeeper locally
                HBaseAdmin.checkHBaseAvailable(config);


                System.out.println("HBase is running!");
            //  createTable(config);    
                //creating a new table
                HTable table = new HTable(config, "mytable");
                System.out.println("Table mytable obtained ");  
                addData(table);
            } catch (MasterNotRunningException e) {
                System.out.println("HBase is not running!");
                System.exit(1);
            }catch (Exception ce){ ce.printStackTrace();
Run Code Online (Sandbox Code Playgroud)

它抛出一些例外:

Oct 17, 2011 1:43:54 PM org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation getMaster
INFO: …
Run Code Online (Sandbox Code Playgroud)

java hadoop hbase

14
推荐指数
1
解决办法
4万
查看次数

Hbase把shell命令

如何在Hbase shell中使用put命令插入多个值.我有一个有五个限定符的列族.如何使用Put使用一个命令将值插入所有这5个限定符

shell hbase

14
推荐指数
1
解决办法
6190
查看次数

Hbase Schema嵌套实体

有没有人有关于如何使用嵌套实体创建Hbase表的示例?

UserName (string)
SSN  (string)
  + Books (collection)
Run Code Online (Sandbox Code Playgroud)

例如,书籍集合看起来像这样

图书

isbn
title
etc...
Run Code Online (Sandbox Code Playgroud)

我找不到一个例子是如何创建这样的表.我看到很多人都在谈论它,以及在某些情况下它是如何做到最好的做法,但我找不到一个如何在任何地方做到这一点的例子.

谢谢...

schema hadoop hbase

14
推荐指数
1
解决办法
4736
查看次数

HBase扫描很慢

问题

我正在尝试与Phoenix建立二级索引.索引创建需要几个小时.这似乎是由于HBase扫描速度慢,因为我注意到以下性能:

  • 我可能需要2个小时来扫描表,而其他开发人员报告了几分钟的大表(1亿行).
  • HBase shell能够计算大约的行数.速率为每秒10.000,这意味着3800s(> 1小时!)来计算该表的所有行.

使用HBase shell和Java扫描程序.

注意:GET(通过rowkey)操作实现了良好的性能(约0.5秒).


上下文

  • 3800行/ 1000列/单列系列/ 96Go,带GZ压缩.
  • Cluster有6个节点(126Go RAM,24个核心),有5个区域服务器.
  • Hortonworks数据平台2.2.0

故障排除

基于HBase书籍(http://hbase.apache.org/book.html#performance),这是我已经检查过的内容:

1)硬件

  • IO(磁盘)
    • NMon称磁盘永远不会超过80%,最常见的是0到20%
    • Top说HBase JVM没有交换(检查5个RS中的2个)
  • IO(网络):每个节点活动接口站在同一个交换机上(所有第二个被动接口都插在不同的交换机上)

2)JVM

  • GC暂停OK(每分钟左右暂停几毫秒)
  • 堆看起来不错(在极限附近没有达到峰值太长)
  • CPU令人惊讶的低:从不超过10%
  • 主题:
    • 活动线程(10"RpServe.reader = N"+其他一些)显示没有争用
    • 许多停放的线程什么都不做(60"DefaultRpcServer.handler = n",大约15个其他)
    • 没有任何线程状态的巨大IPC客户端列表

3)数据

  • 使用Hive + completebulkload批量加载.
  • 地区数量:
    • 13个区域意味着每个RS有2到3个大区域,这是预期的.
    • 在强制进行主要压缩后,扫描性能保持不变.
    • 区域大小相当同质:11个区域为4,5Go(+/- 0.5),2个区域为2,5Go

4)HBase配置

  • 大多数配置保持不变.

    • HBase env仅指示JMX控制台的端口
    • HBase-site对Phoenix的设置很少
  • 一些对我来说看起来不错的params

    • hbase.hregion.memstore.block.multiplier
    • hbase.hregion.memstore.flush.size:134217728 bytes(134Go)
    • Xmx的Xmn比率:.2Xmn最大值:512Mb Xms:6144m
    • hbase.regionserver.global.memstore.lowerLimit:0.38
    • hbase.hstore.compactionTreshold:3
    • hfile.block.cache.size:0.4(块缓存大小占堆的AS%)
    • 最大HStoreFile(hbase.hregion.max.filesize):10 go(10737418240)
    • 客户端扫描程序缓存:100行zookeeper超时:30秒
    • 客户端最大密钥值大小:10mo
    • hbase.regionserver.global.memstore.lowerLimit:0.38
    • hbase.regionserver.global.memstore.upperLimit:0.40
    • hstore阻止storefiles:10
    • hbase.hregion.memstore.mslab.enabled:
    • 启用hbase.hregion.majorcompaction.jitter:0.5
  • 尝试以下配置更改而不会对性能产生任何影响

    • hbase-env.sh:尝试增加HBASE_HEAPSIZE = 6144(因为它默认为1000)
    • hbase-site.xml:
      • hbase.ipc.server.callqueue.read.ratio:0.9
      • hbase.ipc.server.callqueue.scan.ratio:0.9

5)日志没有任何用处

cat hbase-hbase-master-cox.log …

hbase phoenix

14
推荐指数
1
解决办法
5841
查看次数

在EC2集群上安装Hbase/Hadoop

我知道我可以拆分安装了HadoopEC2集群(除非我错了).Hbase怎么?我可以预先制作Hadoop和Hbase吗?或者我需要弄脏手.如果不是一种选择,最佳选择是什么?Cloudera显然有两个包.这是要走的路吗?

谢谢您的帮助.

hadoop hbase amazon-ec2

13
推荐指数
2
解决办法
5032
查看次数

HBase错误 - 分配-ROOT-失败

我刚刚从cloudera(3)安装了hadoop和hbase,但是当我尝试去http:// localhost:60010时,它只是坐在那里不断加载.

我可以很好地访问regionserver - http:// localhost:60030 ...查看主hbase服务器日志我可以看到以下内容.

看起来像根区域的问题.

所有这些都安装在运行Ubuntu(Natty)11的ext4 1TB分区上.没有集群/其他盒子.

任何帮助都会很棒!

11/05/15 19:58:27 WARN master.AssignmentManager: Failed assignment of -ROOT-,,0.70236052 to serverName=localhost,60020,1305452402149, load=(requests=0, regions=0, usedHeap=24, maxHeap=995), trying to assign elsewhere instead; retry=0
org.apache.hadoop.hbase.client.RetriesExhaustedException: Failed setting up proxy interface org.apache.hadoop.hbase.ipc.HRegionInterface to /127.0.0.1:60020 after attempts=1
    at org.apache.hadoop.hbase.ipc.HBaseRPC.waitForProxy(HBaseRPC.java:355)
    at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getHRegionConnection(HConnectionManager.java:957)
    at org.apache.hadoop.hbase.master.ServerManager.getServerConnection(ServerManager.java:606)
    at org.apache.hadoop.hbase.master.ServerManager.sendRegionOpen(ServerManager.java:541)
    at org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:901)
    at org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:730)
    at org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:710)
    at org.apache.hadoop.hbase.master.AssignmentManager$TimeoutMonitor.chore(AssignmentManager.java:1605)
    at org.apache.hadoop.hbase.Chore.run(Chore.java:66)
Caused by: java.net.ConnectException: Connection refused
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:567)
    at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206)
    at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:408)
    at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.setupIOstreams(HBaseClient.java:328)
    at org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:883) …
Run Code Online (Sandbox Code Playgroud)

database hadoop hbase nosql cloudera

13
推荐指数
2
解决办法
7683
查看次数

Hbase mapreduce错误

我写了job mapreduce.输入是hbase中的一个表.

工作运行时出错:

org.apache.hadoop.hbase.client.ScannerTimeoutException:自上次调用以来传递了88557ms,当前在org.apache.hadoop.hbase.client.HTable $ ClientScanner.next(HTable.java:1196)的org上将超时设置为60000 org.apache.hadoop.mapred.MapTask上的org.apache.hadoop.hbase.mapreduce.TableRecordReader.nextKeyValue(TableRecordReader.java:142)中的.apache.hadoop.hbase.mapreduce.TableRecordReaderImpl.nextKeyValue(TableRecordReaderImpl.java:133) $ NewTrackingRecordReader.nextKeyValue(MapTask.java:532)在org.apache.hadoop.mapreduce.MapContext.nextKeyValue(MapContext.java:67)在org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:143)在org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)在org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)在org.apache.hadoop.mapred.Child $ 4.run (Child.java:255)位于org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInf)的javax.security.auth.Subject.doAs(Subject.java:396)的java.security.AccessController.doPrivileged(Native Method)ormation.java:1083)在org.apache.hadoop.mapred.Child.main(Child.java:249)引起的:org.apache.hadoop.hbase.UnknownScannerException:org.apache.hadoop.hbase.UnknownScannerException:名称: 1502530095384129314在org.apache.hadoop.hbase.regionserver.HRegionServer.next(HRegionServer.java:1837)在sun.reflect.GeneratedMethodAccessor19.invoke(未知来源)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)在java.lang.reflect.Method.invoke(Method.java:597)位于org.apache.hadoop.hbase.ipc的org.apache.hadoop.hbase.ipc.HBaseRPC $ Server.call(HBaseRPC.java:570). HBaseServer $ Handler.run(HBaseServer.java:1039)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl. java:27)atg.apach的java.lang.reflect.Constructor.newInstance(Constructor.java:513)e.hadoop.hbase.RemoteExceptionHandler.decodeRemoteException在org.apache.hadoop.hbase.client.ScannerCallable(RemoteExceptionHandler.java:96)在org.apache.hadoop.hbase.client.ScannerCallable.call(ScannerCallable.java:83).调用(ScannerCallable.java:38)在org.apache.hadoop.hbase.client.HConnectionManager $ HConnectionImplementation.getRegionServerWithRetries(HConnectionManager.java:1226)在org.apache.hadoop.hbase.client.HTable $ ClientScanner.next(HTable. java:1187)......还有12个

你能帮帮我解决吗?

hadoop hbase

13
推荐指数
2
解决办法
1万
查看次数

Spark使用数据局部性吗?

我正在尝试了解Apache Spark的内部结构.我想知道Spark是否在从InputFormat读取或写入OutputFormat(或Spark本身支持的其他格式而不是从MapReduce派生)时使用某些机制来确保数据局部性.

在第一种情况下(在读),我的理解是,使用InputFormat时,劈叉获得与主机,以便星火试图将任务分配给执行者,以减少网络传输尽可能多的相关的(或主机??)包含数据尽可能.

在写作的情况下,这种机制将如何运作?我知道从技术上讲,HDFS中的文件可以保存在本地的任何节点中并复制到其他两个(因此您可以将网络用于3个副本中的两个),但是,如果您考虑写入其他系统,例如NoSQL数据库( Cassandra,HBase,其他......),这类系统有自己的分发数据的方式.是否有一种方法来告诉火花分区在于优化由输出水槽预期数据的分布的基础上,数据局部性的方式的RDD(目标的NoSQL数据库,看到天然或通过OUTPUTFORMAT)?

我指的是一个环境,其中Spark节点和NoSQL节点存在于相同的phisical机器中.

hadoop hbase cassandra apache-spark

13
推荐指数
1
解决办法
2957
查看次数

如何将数据导出到Apache phoenix中的文本文件?

我对HBase和Phoenix很新.

但有没有办法可以将数据转储/导出到文本文件?如果我可以指定字段终止符,例如',','|>'等,那将是非常值得注意的.

谢谢.

hbase phoenix

13
推荐指数
2
解决办法
8457
查看次数

如何使用Python连接HBase和Spark?

我有一个令人尴尬的并行任务,我使用Spark来分配计算.这些计算是在Python中进行的,我使用PySpark来读取和预处理数据.我的任务的输入数据存储在HBase中.不幸的是,我还没有找到一种令人满意的(即易于使用和可扩展的)方法来使用Python从/向Spark读取/写入HBase数据.

我之前探讨的内容:

  • 使用我的Python进程连接happybase.该软件包允许使用HBase的Thrift API从Python连接到HBase.这样,我基本上跳过Spark进行数据读/写,并且错过了潜在的HBase-Spark优化.读取速度似乎相当快,但写入速度很慢.这是目前我最好的解决方案.

  • 使用SparkContext newAPIHadoopRDDsaveAsNewAPIHadoopDataset使用HBase的MapReduce接口.这方面的例子曾经包含在Spark代码库中(见这里).但是,这些现在被认为是过时的,有利于HBase的Spark绑定(见这里).我还发现这个方法很慢而且很麻烦(用于阅读,编写工作得很好),例如,返回的字符串newAPIHadoopRDD必须以各种方式进行解析和转换,最终得到我想要的Python对象.它一次只支持一列.

我知道的替代方案:

  • 我目前正在使用Cloudera的CDH和5.7.0版本hbase-spark(CDH发行说明详细的博客文章).该模块(以前称为SparkOnHBase)将正式成为HBase 2.0的一部分.不幸的是,这个奇妙的解决方案似乎只适用于Scala/Java.

  • 华为的Spark-SQL-on-HBase/Astro(我看不出两者之间有什么区别......).它看起来并不像我想要的解决方案那样强大且受到良好支持.

python hbase apache-spark apache-spark-sql pyspark

13
推荐指数
1
解决办法
2万
查看次数