Ubuntu上HBase安装

此篇博文目前仅实现了一台服务器的安装,不涉及分布式安装部署,后续有需要的话回补充

系统是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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值