众所周知,hbase具有一个特定行和特定列可以按时间戳记录最近更改值的功能.所以我的问题是,如何使用任何HBase命令列出所有更改的值?我google了很多,但没有找到任何有用的链接.
我正在尝试设置Hbase的多节点集群.当我做奴隶的jps我得到
5780 Jps
5558 HQuorumPeer
5684 HRegionServer
1963 DataNode
2093 TaskTracker
Run Code Online (Sandbox Code Playgroud)
同样在主人身上我得到了
4254 SecondaryNameNode
15226 Jps
14982 HMaster
3907 NameNode
14921 HQuorumPeer
4340 JobTracker
Run Code Online (Sandbox Code Playgroud)
一切都运行正常.但是当我尝试在hbase shell上创建表时.它给出了一个错误
ERROR: org.apache.hadoop.hbase.PleaseHoldException: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
Run Code Online (Sandbox Code Playgroud)
我的slave的regionserver log(区域服务器正在运行):
2013-06-11 13:09:53,119 INFO org.apache.hadoop.hbase.regionserver.HRegionServer: Attempting connect to Master server at localhost,60000,137093$
2013-06-11 13:10:53,190 WARN org.apache.hadoop.hbase.regionserver.HRegionServer: Unable to connect to master. Retrying. Error was:
org.apache.hadoop.hbase.ipc.HBaseClient$FailedServerException: This server is in the failed servers list: localhost/127.0.0.1:60000
at org.apache.hadoop.hbase.ipc.HBaseClient$Connection.setupIOstreams(HBaseClient.java:425)
at org.apache.hadoop.hbase.ipc.HBaseClient.getConnection(HBaseClient.java:1124)
at org.apache.hadoop.hbase.ipc.HBaseClient.call(HBaseClient.java:974)
at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Invoker.invoke(WritableRpcEngine.java:86)
at $Proxy8.getProtocolVersion(Unknown Source)
at org.apache.hadoop.hbase.ipc.WritableRpcEngine.getProxy(WritableRpcEngine.java:138) …Run Code Online (Sandbox Code Playgroud) Hbase文档说,避免创建超过2-3个列系列,因为Hbase不能很好地处理超过2-3个列族.其原因是压实和冲洗,因此IO.但是,如果我的所有列总是被填充(对于每一行),那么我认为这种推理并不重要,因此,考虑到我对列的访问是完全随机的(我想访问任何列的组合) - 我可以有一个列族 - 一列配置(有效地尝试使其成为纯柱状).
有许多博客/维基解释这一点,但它们似乎都相互矛盾,并增加了更多的混淆.我似乎无法消化Hbase更喜欢一个列系列的事实,那么调用的重点是列存储?
我是hadoop和hbase的新手,并且在我发现的每个教程中都有一些概念性的问题让我感到沮丧.
我在win 7系统上的ubuntu VM中的单个节点上运行hadoop和hbase.我有一个csv文件,我想加载到一个单独的hbase表.
列是:loan_number,borrower_name,current_distribution_date,loan_amount
我知道我需要写一个MapReduce作业来将这个csv文件加载到hbase中.以下教程描述了编写此MapReduce作业所需的Java. http://salsahpc.indiana.edu/ScienceCloud/hbase_hands_on_1.htm
我缺少的是:
我在哪里保存这些文件以及在哪里编译它们?我应该在运行visual studio 12的win 7机器上编译它,然后将它移动到ubuntu vm吗?
我读了这个问题和答案,但我想我仍然缺少基础知识:使用MapReduce将CSV文件加载到Hbase表中
我找不到涵盖这些基本hadoop/hbase物流的任何内容.任何帮助将不胜感激.
在HBase中,put/get操作如何知道该行应该写入哪个区域服务器?如果要读取多行,如何联系多个区域服务器并检索结果?
我无法连接到Windows上的Docker中运行的HBase(banno/hbase-standalone映像).但是,我可以连接到本地安装的HBase.
banno/hbase-standalone图像使用以下命令运行:
docker run -d -p 2181:2181 -p 60000:60000 -p 60010:60010 -p 60020:60020 -p 60030:60030 banno/hbase-standalone
Run Code Online (Sandbox Code Playgroud)
我还设置了端口转发boot2docker-vm(在Windows上运行时需要):

我可以成功telnet到我的localhost上的所有端口.
接下来,这是我们在测试中使用的代码示例:
Configuration config = HBaseConfiguration.create();
config.clear();
config.setInt("timeout", 12000);
config.set("zookeeper.znode.parent", "/hbase");
config.set("hbase.zookeeper.quorum", "127.0.0.1");
config.set("hbase.zookeeper.property.clientPort", "2181");
config.set("hbase.master", "127.0.0.1:60000");
final Configuration configuration = HBaseConfiguration.create(config);
JobDefinition.Buildable.dumpProperties(configuration, newArrayList("hbase.*"));
HBaseAdmin.checkHBaseAvailable(config);
Run Code Online (Sandbox Code Playgroud)
这导致以下异常
Exception in thread "main" org.apache.hadoop.hbase.MasterNotRunningException: com.google.protobuf.ServiceException: java.net.UnknownHostException: unknown host: a3e6c240af20
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$StubMaker.makeStub(HConnectionManager.java:1651)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation$MasterServiceStubMaker.makeStub(HConnectionManager.java:1677)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.getKeepAliveMasterService(HConnectionManager.java:1885)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.isMasterRunning(HConnectionManager.java:900)
at org.apache.hadoop.hbase.client.HBaseAdmin.checkHBaseAvailable(HBaseAdmin.java:2366)
at com.xxx.compute.hadoop.jobs.transaction.OurTest.main(OurTest.java:24)
Caused by: com.google.protobuf.ServiceException: java.net.UnknownHostException: unknown host: a3e6c240af20
at org.apache.hadoop.hbase.ipc.RpcClient.callBlockingMethod(RpcClient.java:1674)
at …Run Code Online (Sandbox Code Playgroud) 我在Ubuntu中使用HBASE 0.94.8独立模式.它的工作正常我能够在Hbase-shell中完成所有操作.但是在我记录了我的系统后,它给出了以下错误
15/07/28 15:10:30 ERROR zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after 3 retries
15/07/28 15:10:30 WARN zookeeper.ZKUtil: hconnection-0x14ed40513350009 Unable to set watcher on znode (/hbase)
org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase
at org.apache.zookeeper.KeeperException.create(KeeperException.java:99)
at org.apache.zookeeper.KeeperException.create(KeeperException.java:51)
at org.apache.zookeeper.ZooKeeper.exists(ZooKeeper.java:1041)
at org.apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.java:172)
at org.apache.hadoop.hbase.zookeeper.ZKUtil.checkExists(ZKUtil.java:450)
at org.apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.checkIfBaseNodeAvailable(ZooKeeperNodeTracker.java:208)
at org.apache.hadoop.hbase.zookeeper.RootRegionTracker.waitRootRegionLocation(RootRegionTracker.java:77)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:885)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:998)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:896)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:998)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:900)
at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:857)
Run Code Online (Sandbox Code Playgroud)
是的,我确实搜索了很多.我发现一些信息ZooKeeper在3次重试后存在失败.可能是这个错误是因为zookeeper被停止了.但我不知道要重新启动它.我试着重新开始Hbase,thrift但仍然是这个问题.
这个命令ps axww | grep QuorumPeerMain给我以下输出:
6162 pts/2 S+ 0:00 grep --color=auto QuorumPeerMain
Run Code Online (Sandbox Code Playgroud)
如果我重新启动系统,Hbase将开始工作.但我想要适当的解决方案. …
有没有相当于蜂巢:show create table <tablename>;在hbase?
我有几个表定义了表分割.使用Describe <tablename>不会显示此详细信息.
例如,如果我创建表TEST1,如:
hbase(main):001:0> create 'TEST1', {NAME =>'D',COMPRESSION=>'SNAPPY'} , {SPLITS => ['1','2','3','4','5','6','7','8','9','0']}
hbase(main):001:0> describe 'TEST1'
DESCRIPTION ENABLED
'TEST1', {NAME => 'D', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPR true
ESSION => 'SNAPPY', MIN_VERSIONS => '0', TTL => 'FOREVER', KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMORY =>
'false', BLOCKCACHE => 'true'}
1 row(s) in 6.5080 seconds
Run Code Online (Sandbox Code Playgroud)
请注意,describe不显示拆分.我怎么能以显示分裂的方式做到这一点?
我知道我可以使用HBase主表详细信息网页查看此信息; 但我需要在shell中看到这个.这样我可以为几个表运行这个shell并查看拆分.
我有一个HDP 2.4集群,其中包含以下服务/组件:
我一直在寻找这几天,并希望得到一些帮助.我有以下两个问题:
非常感谢您提供的任何帮助!
我正在尝试使用hbase-client java API连接到远程hbase服务器.到目前为止,我已经能够使用hbase-client版本1.3.1.但要解决与gRPC的依赖冲突,我正在尝试使用hbase-client versoin 2.0.x.
当我在hbase java客户端版本2.0.x中尝试`admin.tableExists(tableName)时,我收到此错误.
但是大多数其他数据持久化API都像往常一样工作.这可能是由于依赖性问题或与服务器的版本不匹配.
我们非常感谢您提出任何解决问题的建议.
Hbase服务器版本:1.2.4
org.apache.hadoop.hbase.regionserver.NoSuchColumnFamilyException: org.apache.hadoop.hbase.regionserver.NoSuchColumnFamilyException: Column family table does not exist in region hbase:meta,,1.1588230740 in table 'hbase:meta', {TABLE_ATTRIBUTES => {IS_META => 'true', coprocessor$1 => '|org.apache.hadoop.hbase.coprocessor.MultiRowMutationEndpoint|536870911|'}, {NAME => 'info', BLOOMFILTER => 'NONE', VERSIONS => '10', IN_MEMORY => 'true', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', CACHE_DATA_IN_L1 => 'true', MIN_VERSIONS => '0', BLOCKCACHE => 'true', BLOCKSIZE => '8192', REPLICATION_SCOPE => '0'}
at org.apache.hadoop.hbase.regionserver.HRegion.checkFamily(HRegion.java:7752)
at org.apache.hadoop.hbase.regionserver.HRegion.get(HRegion.java:6800)
at org.apache.hadoop.hbase.regionserver.RSRpcServices.get(RSRpcServices.java:2032)
at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:33644)
at …Run Code Online (Sandbox Code Playgroud)