赞
踩
此篇博文目前仅实现了一台服务器的安装,不涉及分布式安装部署,后续有需要的话回补充
系统是Ubuntu16.04的服务器版本(无图形化界面),实际操作时我用putty远程连接腾讯云服务器进行操作。
下面操作主要根据简书上的一篇博文进行,并加以详细说明。
https://www.jianshu.com/p/a0463f31637d
写在最前,Java1.9.0版本对hbase编译成功,但运行时会出错,推荐使用Java1.8.0版本
一:HBase的下载和安装
第一步:下载
wget mirrors.cnnic.cn/apache/hbase/1.4.0/hbase-1.4.0-bin.tar.gz
注:1.4.0是HBase的版本,更根据不同的需要改写成其他版本,后续的操作与版本号要一致
第二步:解压
tar xzf hbase-1.4.0-bin.tar.gz
二:Java的下载和安装
HBase是需要Java的编译才能运行的,如果系统没有安装Java的话需要安装Java
验证是否有Java:
java
如果没有的话根据提示把所有的包都安装好(有一系列的包,可以直接sudo apt install 包名1 包名2 包名3…)
安装好后输入:
java -version
查看是否安装成功
安装的目录在 /usr/lib/jvm/下
三:HBase的配置
第一步修改hbase环境配置
cd /home/ubuntu/hbase-1.4.0/conf/
注:ubuntu是你自己登录的用户名,可以在输入home后按table键直接补全
vi hbase-env.sh
找到
export JAVA_HOME=/newdisk/jdk1.8.0_111
这行在原文件中使用“#”注释掉的
把“#”去掉后,把路径改为:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
注:1.9.0的版本编译会失败,可能是版本不匹配的问题
vi hbase-site.xml
把最后两行的内容替换掉,路径可以参考原博客
<configuration>
<property>
<name>hbase.rootdir</name>
<value>file:/home/ubuntu/</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/home/ubuntu/</value>
</property>
</configuration>
然后执行下面的命令
cd /
sudo vi ~/.bashrc
在.bashrc文件的末尾加上下面的语句:
export HBASE_HOME=/home/ubuntu/hbase-1.4.0
export HBASE_CONF_DIR=$HBASE_HOME/conf
export HBASE_CLASS_PATH=$HBASE_CONF_DIR
export PATH=$PATH:$HBASE_HOME/bin
保存退出后(按esc键,然后按输入”:wq”回车即可)
source ~/.bashrc
检查是否成功
hbase -version
四:启动和停止HBase
启动
start-hbase.sh
停止
stop-hbase.sh
五:进入HBase
hbase shell
其他命令可查看关于HBase操作的技术博客
六:远程连接HBase
这里提示一下思路:
通过thrift连接HBase,我使用python连接的,thrift好像也支持Java,这个我没有查。
具体连接的时候thrift也要先安装并启动服务,这个介绍的博文很多而且大多数都很正确,这里就不详细展开了
另外,基于thrift的一个python库叫做Happybase操作起来很简单很舒服。
对了,Happybase源代码里有个错误,可参考
https://my.oschina.net/wolfoxliu/blog/856175
或者
http://blog.csdn.net/dechengtju/article/details/61197641
来安装thrift并改正happybase的源码
https://yq.aliyun.com/articles/63207
happybase简单操作
http://happybase.readthedocs.io/en/latest/api.html#connection
happybaseAPI调用文档
2018.02.07更
https://my.oschina.net/wolfoxliu/blog/856175
一篇适合刚刚入门的教程
昨天老师让我写个小demo,就是根据上面那个教程写的,只不过我用的事python3
注意要是你用python3写,安装happybase时需要用pip3安装,否则即使安装成功后也可能引用失败,在执行py文件是,用
python3 xxx.py
来执行,接触到的数据库感觉大同小异,HBase存数据时就是存字符串,暂时就这些,有时间把demo放上来。
2018.03.28补充:
thriftserver重启命令:
hbase-daemon.sh start thrift
在服务器重启(或异常终止)后thrift服务和hbase服务可能会关闭,执行下列命令:
hbase-daemon.sh start thrift
start-hbase.sh
2018.03.29更新:
几个demo
#创建表
import happybase
import time
connection = happybase.Connection('127.0.0.1', autoconnect=False)#这里是单机版的hbase
connection.open()
print(connection.tables())
start_time=time.time()
connection.create_table(
'my_table_0324',
{
'cf1':dict(max_versions=10),
'cf2':dict(max_versions=1, block_cache_enabled=False),
'cf3':dict(),
'cf4':dict(max_versions=10),
'cf5':dict(max_versions=1, block_cache_enabled=False),
'cf6':dict(),
'cf7':dict(max_versions=10),
'cf8':dict(max_versions=1, block_cache_enabled=False),
'cf9':dict(),
'cf10':dict(max_versions=10),
}
)
end_time=time.time()
print(end_time-start_time)
#插入数据
import happybase
import time
connection = happybase.Connection('127.0.0.1', autoconnect=False)
connection.open()
print(connection.tables())
table = connection.table('my_table_0324')
start_time=time.time()
with table.batch(batch_size=100000) as bat: #10万条,每次插入一条
for i in range(100000):
bat.put('www.test{}.com'.format(i),{'cf1:price':'{}'.format(i),'cf2:price2':'{}'.format(i),'cf3:price3':'{}'.format(i),'cf4:price4':'{}'.format(i),'cf5:price5':'{}'.format(i),'cf6:price6':'{}'.format(i),'cf7:price7':'{}'.format(i),'cf8:price8':'{}'.format(i),'cf9:price9':'{}'.format(i),'cf10:price10':'{}'.format(i)})
end_time=time.time()
print(start_time)
print(end_time)
print(end_time-start_time)
with open("time_0325.txt",'a+') as f:
f.write("10_10" + "\n")
f.write(str(start_time) + "\n")
f.write(str(end_time) + "\n")
f.write(str(end_time-start_time) + "\n")
2018.04.15补充:
隐式执行代码:nohup python3 test1.py > myout.file 2>&1 &
其中”python3 test1.py”为正常执行的命令
参考:
https://www.jianshu.com/p/a0463f31637d
http://www.linuxidc.com/Linux/2015-08/122353.htm
http://blog.csdn.net/dechengtju/article/details/61197641
增加几个关于在hbase中查询命令的网址:
http://happybase.readthedocs.io/en/latest/api.html#table
http://hbase.apache.org/book.html#thrift
https://github.com/wbolster/happybase/blob/master/tests/test_api.py
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。