今年来觉得数据还蛮有意思的,打算往这个方向努力了
这里主要还是以manjaro为案例进行安装,用了很长时间这个系统,逐渐觉得这个发行版确实是比Ubuntu要舒服。
安装JDK
其实shell命令也不重要,主要是安装JDK,然后设置JAVA_HOME环境变量,虽然在manjaro中默认可以使用java命令,但是安装并没有设置JAVA_HOME环境变量,hbase启动脚步还是通过环境获取java的目录。所以只要在当前执行目录中能获取JAVA_HOME就可以成功启动hbase。
这个我感觉不少程序员都没有真正理解环境变量这玩意,环境变量在日常开发中还是比较有用的一个东西,在Linux下可以用env
获取当前全部的环境,或者使用echo ${name}, {name}指你需要的获取环境变量名,如echo $JAVA_HOME
,使用echo打印环境变量是一个很基本的操作。
sudo pacman -S jdk8-openjdk
# 在添加java到环境变量中
echo 'export JAVA_HOME=/usr/lib/jvm/java-8-openjdk' >> conf/hbase-env.sh
下载hbase的二进制压缩包
下载的话可以根据需要,我觉得个人学习还是下最新的吧,哈哈哈
一般来说都是下载带有release
、bin
的链接,src
代表源码,至于sha512
/asc
这种就是校验下载是不是完整的。
下载完成可以解压到你想放的目录,我习惯放在home目录下
tar -C $HOME/Bin/ -zxvf hbase-2.2.2-bin.tar.gz
修改配置
进入解压的目录,找到conf/hbase-site.xml
的文件,原来的文件应该是
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
/**
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-->
<configuration>
</configuration>
在<configuration>中添加
<property>
<name>hbase.rootdir</name>
<value>file://{pathname}</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>{zookeeper-pathname}</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
讲解下参数
- hbase.rootdir:hbase写入数据的位置,默认是在/tmp目录下新建,不过这样开关机就会消失,所以需要你指定一个路径,我一般指定home目录下的某个位置,这样启动时不需要目录的权限什么的。
- hbase.zookeeper.property.dataDir: 这个是zookeeper写入数据的位置
- hbase.unsafe.stream.capability.enforce: 在local模式下禁用stream.capability (hflush/hsync)的功能,反正单机部署不需要严格数据保证就禁用吧
启动
启动hbase:
./bin/start-hbase.sh
启动shell:
➜ bin ./hbase shell
2019-12-15 22:38:39,788 WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
HBase Shell
Use "help" to get list of supported commands.
Use "exit" to quit this interactive shell.
For Reference, please visit: http://hbase.apache.org/2.0/book.html#shell
Version 2.2.2, re6513a76c91cceda95dad7af246ac81d46fa2589, Sat Oct 19 10:10:12 UTC 2019
Took 0.0019 seconds
hbase(main):001:0>
关闭hbase:
./bin/stop-hbase.sh
这里就已经可以算是完成了。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。