当前位置:   article > 正文

Ubuntu上HBase安装_ubuntu16.04安装hbase

ubuntu16.04安装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

注:1.4.0是HBase的版本,更根据不同的需要改写成其他版本,后续的操作与版本号要一致

第二步:解压

tar xzf  hbase-1.4.0-bin.tar.gz
  • 1

二:Java的下载和安装
HBase是需要Java的编译才能运行的,如果系统没有安装Java的话需要安装Java
验证是否有Java:

java
  • 1

如果没有的话根据提示把所有的包都安装好(有一系列的包,可以直接sudo apt install 包名1 包名2 包名3…)

安装好后输入:

java -version
  • 1

查看是否安装成功
安装的目录在 /usr/lib/jvm/下

三:HBase的配置
第一步修改hbase环境配置

cd /home/ubuntu/hbase-1.4.0/conf/
  • 1

注:ubuntu是你自己登录的用户名,可以在输入home后按table键直接补全

vi hbase-env.sh
  • 1

找到

export  JAVA_HOME=/newdisk/jdk1.8.0_111
  • 1

这行在原文件中使用“#”注释掉的

把“#”去掉后,把路径改为:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
  • 1

注:1.9.0的版本编译会失败,可能是版本不匹配的问题

vi hbase-site.xml
  • 1

把最后两行的内容替换掉,路径可以参考原博客

<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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

然后执行下面的命令

cd /
sudo vi ~/.bashrc
  • 1
  • 2

在.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
  • 1
  • 2
  • 3
  • 4

保存退出后(按esc键,然后按输入”:wq”回车即可)

source ~/.bashrc
  • 1

检查是否成功

hbase -version
  • 1

四:启动和停止HBase
启动

start-hbase.sh
  • 1

停止

stop-hbase.sh
  • 1

五:进入HBase

hbase shell
  • 1

其他命令可查看关于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
  • 1

来执行,接触到的数据库感觉大同小异,HBase存数据时就是存字符串,暂时就这些,有时间把demo放上来。

2018.03.28补充:
thriftserver重启命令:

hbase-daemon.sh start thrift
  • 1

在服务器重启(或异常终止)后thrift服务和hbase服务可能会关闭,执行下列命令:

hbase-daemon.sh start thrift
start-hbase.sh
  • 1
  • 2

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
#插入数据
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")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/715062
推荐阅读
相关标签
  

闽ICP备14008679号