导航:首页 > 源码编译 > hbase源码

hbase源码

发布时间:2022-01-23 09:00:27

‘壹’ 如何使用Maven构建《hadoop权威指南3》随书的源码

执行完上述步骤后,输入hbase命令出现如下界面,就说明已经安装成功了(别忘了执行". ~/.bashrc"使配置的环境变量生效):

下面我们就可以切换到本书的源文件包的根目录下使用maven来构建本书的jar包了:
% mvn package -DskipTests -Dhadoop.version=1.0.4
执行过这条命令后就是很长时间的等待,maven会到他的中央仓库和apache的仓库中下载所需要的jar包和pom.xml文件(这个过程可能要持续大约一个小时,要确保你的电脑已经连上网络,下载完成后在~/.m2/repository文件夹中——也即本地仓库——可以看到已经下载下来的jar包和pom文件),然后再逐个构建根目录下pom.xml中配置的moles,等所有的工作做完就可以看到已经打包的各个jar包,从而可以很方便的在命令行使用hadoop命令测试书中的代码了

‘贰’ hbase源代码 纯java开发的吗

是的,纯java开发的nosql

‘叁’ 如何启动源码hbase-0.98.10-src

编译过程:

1.需要安装(必须安装前三个,都非常好安装,直接export就好了)
Maven 3.3.1
findbugs 3.0.1
Java 1.7.0_06
Hadoop 2.2.0
HBase 0.98.1

2.生成pom
修改hadoop2版本:
vi pom.xml

<hadoop-two.version>2.2.0</hadoop-two.version>

‘肆’ hbase源码怎么导入eclipse

hbase源码导入eclipse分三步:
1.svn下载源码
2.mvn package -Dmaven.test.skip.exec=true编译源码
3.导入eclipse,可以用插件,用mvn eclipse:eclipse生成eclipse文件,导入eclipse。

‘伍’ hbase 源码 什么语言开发的

是用java开发的,hbase包含两个核心服务,一个是HMaster,一个是HRegionServer,在hbase部署的服务器上调用jps命令能查看到这两个进程。

‘陆’ hbase么,为什么存储速度快

1 ,了解hbase么,为什么存储速度快?
2理解spring么,它的AOP实现是基于什么原理,bean的初始化过程是那些(涉及具体的源代码),在bean factory初始化前 ,运行中,初始化后想做些事情。该怎么做?
3 struts1和strus2的区别,strust2关于 ThredLocal是什么,strus2初始化部分的原理是什么?
4多线程用过么?
5关于jvm,它是什么样的结构?,他的Gc算法是什么,什么情况下会 out of memory?
6设计模式了解多少,工厂模式中的抽象工厂和简单工厂模式用于那些场景,你怎么理解策略模式,怎样应用的? 策略模式和状态模式的本质区别,状态模式和命令模式的区别?
7 连接池原理,连接池commit 后连接是否关闭?

1) HBASE存储速度快吗???请问hbase和谁比较,来说明存储速度快?是在同等量级较差的MYSQL架构还是和mongodb/cassandra比较?
HBASE的存储速度并不快,原因太多了.
2) bean factory初始化过程??这个问题是你问错了,还是我TMD的不会啊??我只知道bean factory初始化bean的时候,可以使用factoryBean接口/InitializingBean接口,以及在bean配置文件中指定init初始化方法等来"补充"初始化过程...
3) struts这烂货技术,我就不再罗嗦,对于threadLocal这个玩意,是spring/struts中框架中最常用的"基于线程内"对象引用管理的绝B手段,任何一个Thread实例(请参看Thread API)都有一个threadLocalMap属性,此属性即保持了当前thread中所有的threadLocal对象.ThreadLocal给我们提供了访问和传递"用户实现级别线程私有变量"的极佳的手段..
4) 多线程用户吗??MLGB的,这问题问的,老子经常用.面试官同学,你用过多线程吗??你会死在多线程中,知道不??问点具体的行不??你用过java不??
你用过电脑不??
5) JVM的结构是什么??请问你是想知道JVM的内存模型??这个,我可以不告诉吗?你猜!!!
GC算法是什么??这个嘛,回答思路:对象标记算法 ---->GC种类 -->GC算法.
什么时候会OOM?好多可能的奥,最直观的说旧时代或者持久带放不下了呗,无论是minor GC还是full GC还是创建对象都无法在数据重分配时满足内存要求时,不过还有奥,就是你通过"直接内存分配"时OS也满足不了你的时候,也会OOM奥..那你就讲讲minor GC和full GC的过程呗..

6) 设计模式嘛,这个玩意,目前在整个软件工程中,就是个幽灵,说白了也算是个操蛋的理论....我不再赘述.
7) 连接池,是一个广义的概念,广泛存在于所有基于IO操作的server架构中.覆盖了多种数据存储服务/客户端数据存取服务/基于server的web服务模式下.我们的tomcat,mysql,mongodb,甚至我们的基于OS的各种驱动器等等等等,fuck太多了....你是想问mysql吗??
commit是提交数据变更(无论是显式的还是隐式的),它和关闭连接由关系吗??TMD的各种客户端驱动程序实现都有,你到底想问那种实现呢??或者我问,为什么要关闭连接呢??我TMD的commit一次,你给我关闭一次,你TMD的这么设计时坑爹的吗??

http://www.iteye.com/topic/1129201

‘柒’ 在ubuntu环境下怎么利用python将数据批量导入数据hbase

能够单条导入就能够批量导入
配置 thrift
python使用的包 thrift
个人使用的python 编译器是pycharm community edition. 在工程中设置中,找到project interpreter, 在相应的工程下,找到package,然后选择 “+” 添加, 搜索 hbase-thrift (Python client for HBase Thrift interface),然后安装包。
安装服务器端thrift。
参考官网,同时也可以在本机上安装以终端使用。
thrift Getting Started
也可以参考安装方法 python 调用HBase 范例
首先,安装thrift
下载thrift,这里,我用的是thrift-0.7.0-dev.tar.gz 这个版本
tar xzf thrift-0.7.0-dev.tar.gz
cd thrift-0.7.0-dev
sudo ./configure –with-cpp=no –with-ruby=no
sudo make
sudo make install
然后,到HBase的源码包里,找到
src/main/resources/org/apache/hadoop/hbase/thrift/
执行
thrift –gen py Hbase.thrift
mv gen-py/hbase/ /usr/lib/python2.4/site-packages/ (根据python版本可能有不同)
获取数据示例 1
# coding:utf-8

from thrift import Thrift
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
from hbase import Hbase
# from hbase.ttypes import ColumnDescriptor, Mutation, BatchMutation
from hbase.ttypes import *

import csv

def client_conn():
# Make socket
transport = TSocket.TSocket('hostname,like:localhost', port)
# Buffering is critical. Raw sockets are very slow
transport = TTransport.TBufferedTransport(transport)
# Wrap in a protocol
protocol = TBinaryProtocol.TBinaryProtocol(transport)
# Create a client to use the protocol encoder
client = Hbase.Client(protocol)
# Connect!
transport.open()
return client

if __name__ == "__main__":

client = client_conn()

# r = client.getRowWithColumns('table name', 'row name', ['column name'])
# print(r[0].columns.get('column name')), type((r[0].columns.get('column name')))

result = client.getRow("table name","row name")
data_simple =[]

# print result[0].columns.items()

for k, v in result[0].columns.items(): #.keys()
#data.append((k,v))
# print type(k),type(v),v.value,,v.timestamp
data_simple.append((v.timestamp, v.value))

writer.writerows(data)
csvfile.close()

csvfile_simple = open("data_xy_simple.csv", "wb")
writer_simple = csv.writer(csvfile_simple)
writer_simple.writerow(["timestamp", "value"])
writer_simple.writerows(data_simple)
csvfile_simple.close()

print "finished"

会基础的python应该知道result是个list,result[0].columns.items()是一个dict 的键值对。可以查询相关资料。或者通过输出变量,观察变量的值与类型。
说明:上面程序中 transport.open()进行链接,在执行完后,还需要断开transport.close()
目前只涉及到读数据,之后还会继续更新其他dbase操作。

‘捌’ 如何解决 hbase regiontoobusyexception

Hbase扫描时抛出ScannerTimeoutException处理

在对Hbase进行Scan的时候有时候会抛出ScannerTimeoutException,场景如下:

2012 15:28:52 (14mins, 41sec)
org.apache.hadoop.hbase.client.ScannerTimeoutException: 60622ms passed since the last invocation, timeout is currently set to 60000
at org.apache.hadoop.hbase.client.HTable$ClientScanner.next(HTable.java:1196)
at org.apache.hadoop.hbase.maprece.TableRecordReaderImpl.nextKeyValue(TableRecordReaderImpl.java:133)
at org.apache.hadoop.hbase.maprece.TableRecordReader.nextKeyValue(TableRecordReader.java:142)
at org.apache.hadoop.mapred.MapTask$NewTrackingRecordReader.nextKeyValue(MapTask.java:532)
at org.apache.hadoop.maprece.MapContext.nextKeyValue(MapContext.java:67)
at org.apache.hadoop.maprece.Mapper.run(Mapper.java:143)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:764)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:370)
at org.apache.hadoop.mapred.Child$4.run(Child.java:255)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1093)
at org.apache.hadoop.mapred.Child.main(Child.java:249)

原因查看步骤:

查找源码如下:

long timeout = lastNext + scannerTimeout;
// If we are over the timeout, throw this exception to the client
// Else, it's because the region moved and we used the old id
// against the new region server; reset the scanner.
if (timeout < System.currentTimeMillis()) {
long elapsed = System.currentTimeMillis() - lastNext;
ScannerTimeoutException ex = new ScannerTimeoutException(
elapsed + "ms passed since the last invocation, " +
"timeout is currently set to " + scannerTimeout);
ex.initCause(e);
throw ex;
}

核实下如下代码

long timeout = lastNext + scannerTimeout;
得出:ClientScanner.lastNext和HTable.scannerTimeout

跟踪:HTable.scannerTimeout

this.scannerTimeout =
(int) conf.getLong(HConstants.HBASE_REGIONSERVER_LEASE_PERIOD_KEY, HConstants.DEFAULT_HBASE_REGIONSERVER_LEASE_PERIOD);

查看HConstants.HBASE_REGIONSERVER_LEASE_PERIOD_KEY和HConstants.DEFAULT_HBASE_REGIONSERVER_LEASE_PERIOD

我们可以得知如果没有设置HConstants.HBASE_REGIONSERVER_LEASE_PERIOD_KEY那么他们采用默认值即

public static long DEFAULT_HBASE_REGIONSERVER_LEASE_PERIOD = 60000;

跟踪:ClientScanner.lastNext发现此为上次访问时间

解决方案:

可以通过设置HConstants.HBASE_REGIONSERVER_LEASE_PERIOD_KEY解决

代码如下:

config.setLong(HConstants.HBASE_REGIONSERVER_LEASE_PERIOD_KEY, 120000);

‘玖’ cdh hbase源码在什么地方

V3源码,专业齐全,完整

‘拾’ zookeeper有多少行代码

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。

阅读全文

与hbase源码相关的资料

热点内容
服务器一直崩应该用什么指令 浏览:916
cm202贴片机编程 浏览:724
php构造函数带参数 浏览:175
解压电波歌曲大全 浏览:336
为啥文件夹移到桌面成word了 浏览:858
命令符的安全模式是哪个键 浏览:758
编程中学 浏览:956
单片机求助 浏览:993
ug加工侧面排铣毛坯怎么编程 浏览:271
程序员有关的介绍 浏览:736
支付宝使用的什么服务器 浏览:210
安卓看本地书用什么软件好 浏览:921
经传软件滚动净利润指标源码 浏览:522
萤石云视频已加密怎么解除 浏览:574
一命令四要求五建议 浏览:30
qq文件夹迁移不了 浏览:19
液体粘滞系数测定不确定度算法 浏览:332
轻栈源码 浏览:426
把图片压缩到500k 浏览:35
命令你自己 浏览:369