大数据

  • 大数据,HBase,python
  • 大数据:HBase安装、配置及使用
    • 一、下载
    • 二、安装和配置
      • 1. 搭建hadoop环境
      • 2. 安装
      • 3. 验证
      • 4. 安装模式配置
        • 1) 伪分布式模式配置
          • (1)编辑 `/usr/local/hbase/conf/hbase-env.sh` 文件
          • (2)编辑 `/usr/local/hbase/conf/hbase-site.xml` 文件
        • 2) 单机模式配置
          • (1)编辑 `/usr/local/hbase/conf/hbase-env.sh` 文件
          • (2)编辑 `/usr/local/hbase/conf/hbase-site.xml` 文件
    • 三、启动
      • (i)先启动hadoop
      • (ii)再启动Hbase
      • (iii)进入HBase shell界面:
      • (iv)停止Hbase运行:
      • (v)停止Hadoop运行:---- 一定要先关闭停止Hbase才能关闭Hadoop
      • 注意:这里启动关闭Hadoop和HBase的顺序一定是:==启动Hadoop—>启动HBase—>关闭HBase—>关闭Hadoop==
    • 四、配置文件的一些其他配置
      • (一)配置`/usr/local/hbase/conf/hbase-env.sh` 文件
        • 1. 禁止Hbase查找Hadoop的Classs
        • 2. 关闭启动Hbase shell出现的警告
    • 五、使用
      • 例1.
        • 1)==创建==`student`表:
        • 2)==插入==数据到`student`表:
        • 3)==查询==`student`表:
        • 4)==删除==`student`表:

大数据,HBase,python

大数据:HBase安装、配置及使用

一、下载

HBase官网:http://archive.apache.org/dist/hbase/ 下载 hbase-2.2.2-bin.tar.gz。

二、安装和配置

1. 搭建hadoop环境

首先确保安装好了Hadoop3.1.3,因为HBase对Hadoop具有版本依赖性,并且所有操作是在新建的名为hadoop的用户下执行的。可参考我的另一篇博文https://blog.csdn.net/Acegem/article/details/122880274?spm=1001.2014.3001.5502。

2. 安装

然后进行如下操作:

su hadoop # 切换到名为hadoop的用户
sudo tar -xzvf hbase-2.2.2-bin.tar.gz -C /usr/local  # 解压到/usr/local/目录下
cd /usr/local
sudo mv ./hbase-2.2.2 ./hbase  # 重命名,方便使用
sudo chown -R hadoop ./hbase # 把hbase目录权限赋予给hadoop用户

配置环境变量:
打开终端输入sudo vim ~/.bashrc,将/usr/local/hbase/bin添加到环境变量中:
export PATH=$PATH:/usr/local/hbase/bin
可参考我的另一篇Spark的博文https://blog.csdn.net/Acegem/article/details/122878998?spm=1001.2014.3001.5502,这里有所有大数据相关的环境变量配置。
记得输入source ~/.bashrc使环境变量生效!
配置hbase变量
输入

cd /usr/local/hbase
sudo vim /usr/local/hbase/bin/hbase

将/usr/local/hbase/bin/hbase文件的162行处的CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/tools.jar修改为:
CLASSPATH=${CLASSPATH}:$JAVA_HOME/lib/tools.jar:/usr/local/hbase/lib/*
如下图:

有的时候还需要再输入一下

cd /usr/local/hase
sudo source ./bin/hbase  # 一定要有sudo

使hbase配置生效。

:如果不进行这一步/usr/local/hbase/bin/hbase文件的配置,下面输入./bin/hbase version进行版本验证会报错:
Error: Could not find or load main class org.apache.hadoop.hbase.util.GetJavaProperty。当然hbase shell也启动不了。

3. 验证

输入

cd /usr/local/hbase
./bin/hbase version

或直接输入/usr/local/hbase/bin/hbase version 进行验证。如果看到输出版本消息则表示安装成功,如下:

如果这一步出现“无效的变量名”类似的警告信息:

/usr/local/hadoop/libexec/hadoop-functions.sh: 行 2360: HADOOP_ORG.APACHE.HADOOP.HBASE.UTIL.GETJAVAPROPERTY_USER:无效的变量名
/usr/local/hadoop/libexec/hadoop-functions.sh: 行 2455: HADOOP_ORG.APACHE.HADOOP.HBASE.UTIL.GETJAVAPROPERTY_OPTS:无效的变量名

这是因为Hbase找不到Hadoop的Classs,可以参考本文后面章节的

## 四、配置文件的一些其他配置
### (一)配置`/usr/local/hbase/conf/hbase-env.sh` 文件
#### 1. 禁止Hbase查找Hadoop的Classs

内容,将其注释掉。

4. 安装模式配置

HBase的安装运行有三种模式:单机模式、伪分布式模式、分布式模式。
我选择HBase伪分布式模式配置,后面的单机模式配置参考即可。

1) 伪分布式模式配置

伪分布式模式即结合HDFS,将Hbase数据存储到HDFS中,可在下面的第(2)步 hbase-site.xml 配置文件中进行HBase在HDFS中的存储目录设置。我们不妨将存储位置设为:HDFS中的 “/hbase” 目录(其中"/"表示HDFS的根目录),这个目录不需要事先新建好,会在配置完成以后通过启动HBase再关闭HBase就能自动生成这个/bbase目录。下面的三、启动(iv)中会有讲到。

(1)编辑 /usr/local/hbase/conf/hbase-env.sh 文件

修改内容如下:

# 第28行位置
export JAVA_HOME=/usr/local/java/jdk1.8.0_271
# 第31行位置
export HBASE_CLASSPATH=/usr/local/hbase/conf
# 第126行位置
# HBASE_MANAGES_ZK设置为true,表示由hbase自己管理zookeeper,不需要单独的zookeeper。HBASE_MANAGES_ZK == hbase_manages_ZK(ZK==zookeeper)
export HBASE_MANAGES_ZK=true

(这些都是已经存在的注释,将注释去掉再修改下即可,可以在vim模式下输入:+/来检索定位位置,使用n来进行Next翻页。)

(2)编辑 /usr/local/hbase/conf/hbase-site.xml 文件

假设当前Hadoop集群在本机上运行在伪分布式模式下,其NameNode运行在9000端口。
/usr/local/hbase/conf/hbase-site.xml 文件的内容由:

<configuration>
</configuration>

改为:

<configuration><property><name>hbase.rootdir</name><value>hdfs://localhost:9000/hbase</value></property><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property>
</configuration>

上面配置解释如下:

<configuration><property><!--指定HBase数据在HDFS上的存储路径,即HDFS中的 "/hbase" 目录(其中"/"表示HDFS的根目录),这个目录不需要事先新建好,会在配置完成以后通过启动HBase再关闭HBase就能自动生成这个/bbase目录。下面的三、启动(iv)中会有讲到。这个目录是region server的共享目录,用来持久化HBase --><name>hbase.rootdir</name><!--,--><value>hdfs://localhost:9000/hbase</value></property><property><!--true表示设置hbase集群处于分布式模式--><name>hbase.cluster.distributed</name><value>true</value></property><property><!--hbase.unsafe.stream.capability.enforce这个属性设置成false,是为了避免出现启动错误。--><name>hbase.unsafe.stream.capability.enforce</name><value>false</value></property>
</configuration>

  • hbase.rootdir:HBase数据的存储目录。
    默认HBase数据是存储在本地/tmp中的。如果不改这个配置,数据会在重启的时候丢失。所以这个目录要么设置成HDFS目录,要么在下面单机配置模式下设置成本地目录。
  • hbase.unsafe.stream.capability.enforce:控制HBase是否检查流功能(hflush / hsync)。
    如果您打算在rootdir表示的LocalFileSystem上运行,那就禁用此选项。如果没有设置hbase.unsafe.stream.capability.enforce为false,那么,在启动HBase以后,会出现无法找到HMaster进程的错误,启动后查看系统启动日志(/usr/local/hbase/logs/hbase-hadoop-master-ubuntu.log),会发现如下错误:
2020-01-25 15:04:56,916 ERROR [master/localhost:16000:becomeActiveMaster] master.HMaster: Failed to become active master
java.lang.IllegalStateException: The procedure WAL relies on the ability to hsync for proper operation during component failures, but the underlying filesystem does not support doing so. Please check the config value of 'hbase.procedure.store.wal.use.hsync' to set the desired level of robustness and ensure the config value of 'hbase.wal.dir' points to a FileSystem mount that can provide it.

2) 单机模式配置

(1)编辑 /usr/local/hbase/conf/hbase-env.sh 文件

修改内容如下:

# 第28行位置
export JAVA_HOME=/usr/local/java/jdk1.8.0_271
# 第126行位置。
# HBASE_MANAGES_ZK设置为true,表示由hbase自己管理zookeeper,不需要单独的zookeeper。
export HBASE_MANAGES_ZK=true

(这些都是已经存在的注释,将注释去掉再修改下即可,可以在vim模式下输入:+/来检索定位位置,使用n来进行Next翻页。)

(2)编辑 /usr/local/hbase/conf/hbase-site.xml 文件

因为是单机模式配置,要先在本地新建一个目录来保存HBase数据,如在/usr/local/hbase/目录下新建myHBaseData目录,即在/usr/local/hbase/myHBaseData目录下存放HBase数据,并将其属性设置在配置文件中。如下:
/usr/local/hbase/conf/hbase-site.xml 文件的内容由:

<configuration>
</configuration>

改为:

<configuration><property><!--指定HBase数据在本地上的存储路径,即上面新建的/usr/local/hbase/myHBaseData目录 --><name>hbase.rootdir</name><value>file:///usr/local/hbase/myHBaseData</value></property>
</configuration>

三、启动

(i)先启动hadoop

su hadoop # 切换hadoop用户
sudo service ssh start
ssh localhost
cd /usr/local/hadoop
./sbin/start-dfs.sh

输入jps,可以看到NameNode,DataNodeSecondaryNameNode都已经成功启动,表示hadoop启动成功。

(ii)再启动Hbase

输入

cd /usr/local/hbase
# 启动Hbase
./bin/start-hbase.sh

如下图(伪分布式模式为例):

输入jps可以看到HMasterHRegionServerHQuorumPeer都已经成功启动,表示Hbase也启动成功。
综合(i)(ii),此时应该出现的进程列表:

Jps# Hadoop进程
NameNode
DataNode
SecondaryNameNode# HBase进程
Hmaster
HregionServer
HQuorumPeer

(iii)进入HBase shell界面:

输入

cd /usr/local/hbase
# 启动Hbase shell
./bin/hbase shell

成功进入,如下:

(iv)停止Hbase运行:

输入

cd /usr/local/hbase
# 停止Hbase运行
./bin/stop-hbase.sh

停止需要耐心等待一会,如下为停止成功:

附:此时,我们还可以查看上面自定义的HDFS中的/hbase目录,如下:

cd /usr/local/hadoop
# 查看HDFS的根目录“/”
./bin/hdfs dfs -ls /

结果:

可看到会在HDFS根目录"/"下自动生成了/hbase目录和/tmp目录。
顺便再查看一下里面的内容:

(v)停止Hadoop运行:---- 一定要先关闭停止Hbase才能关闭Hadoop

cd /usr/local/hadoop
# 停止hadoop运行
./sbin/stop-dfs.sh

注意:如果在操作HBase的过程中发生错误,可以通过{HBASE_HOME}目录(/usr/local/hbase)下的logs子目录中的日志文件查看错误原因。

注意:这里启动关闭Hadoop和HBase的顺序一定是:启动Hadoop—>启动HBase—>关闭HBase—>关闭Hadoop

四、配置文件的一些其他配置

(一)配置/usr/local/hbase/conf/hbase-env.sh 文件

1. 禁止Hbase查找Hadoop的Classs

当在启动hbase时出现警告:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/client-facing-thirdparty/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/local/hbase/lib/client-facing-thirdparty/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
...

要想让这些警告不显示,可以修改/usr/local/hbase/conf/hbase-env.sh 文件来禁止Hbase查找Hadoop的Classs,修改内容如下:

# 第139行位置
# 禁止Hbase查找Hadoop的Classs
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"

2. 关闭启动Hbase shell出现的警告

当启动Hbase Shell时,出现警告:

WARN  [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform...
using builtin-java classes where applicable

跳出警告的原因就是Hbase没有识别到native-hadoop librarys这个库。当然这条警告是不影响 Hbase 运行的。如果想去掉这个警告,可以设置让Hbase识别到native-hadoop librarys这个库,而且这个库文件有助于提高 Hbase 的运行速度:
这里参考官方的解决方案:http://hbase.apache.org/book.html#hadoop.native.lib
其操作是在/usr/local/hbase/conf/hbase-env.sh文件中追加如下内容:

export LD_LIBRARY_PATH=/usr/local/hadoop/lib/native:$LD_LIBRARY_PATH


如果你的 Hadoop没法加载本地库,则需要把下面的内容追加到 /usr/local/hadoop/etc/hadoop/hadoop-env.sh 或者 ~/.bashrc 中:

export  HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export  HADOOP_HOME=/usr/local/hadoop
export  HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"

五、使用

打开上面说的Hbase shell,可以进行Hbase数据库操作。

例1.

要创建如下图的表:

id info
name gender age
1 zhangsan F 25
2 lisi M 26

可在HBase Shell中执行如下命令:

1)创建student表:

hbase> create 'student', 'info'

2)插入数据到student表:

// 插入第1个学生的信息。
hbase> put 'student', '1', 'info:name', 'zhangsan'
hbase> put 'student', '1', 'info:gender', 'F'
hbase> put 'student', '1', 'info:age', '25'// 插入第2个学生的信息。
hbase> put 'student', '2', 'info:name', 'lisi'
hbase> put 'student', '2', 'info:gender', 'M'
hbase> put 'student', '2', 'info:age', '26'

3)查询student表:

# 查询id=2的学生信息。相当于mysql: select * ... where id = 1
hbase> get 'student', '2'
# 查询所有数据(扫描全表)。相当于mysql: select * ...
hbase> scan 'student'

结果如下:

4)删除student表:

hbase> disable 'student'
hbase> drop 'student'

大数据:HBase安装、配置及使用相关推荐

  1. 大数据——Flume安装配置和使用

    Flume安装配置和使用 Flume安装和配置 测试 监控端口数据 监控文件信息 监控文件夹中的新文件 监控文件写入HDFS中 监控文件上传到HDFS并去除首条字段信息(拦截器) 内置拦截器 自定义拦 ...

  2. 2021年大数据HBase(九):Apache Phoenix的安装

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 前言 系列历史文章 安装Phoenix 一.下载 二.安装 1.上传安装包 ...

  3. 2021年大数据HBase(二):HBase集群安装操作

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 HBase集群安装操作 一.上传解压HBase安装包 ...

  4. 大数据平台安装实验: ZooKeeper、Kafka、Hadoop、Hbase、Hive、Scala、Spark、Storm

    文章目录 实验1:Hadoop大数据平台安装实验 1. 实验目的 2. 实验环境 3. 实验过程 3.1 虚拟机的搭建 3.1.1 安装虚拟机 3.1.2 基本linux命令 3.2 准备工作 3.2 ...

  5. 2021年大数据HBase(十六):HBase的协处理器(Coprocessor)

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 HBase的协处理器(Coprocessor) 一.起源 二 ...

  6. 2021年大数据HBase(十五):HBase的Bulk Load批量加载操作

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 HBase的Bulk Load批量加载操作 一.Bulk L ...

  7. 2021年大数据HBase(十四):HBase的原理及其相关的工作机制

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 HBase的原理及其相关的工作机制 一.HBase的flus ...

  8. 2021年大数据HBase(六):HBase的高可用!【建议收藏】

    全网最详细的大数据HBase文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 系列历史文章 前言 HBase的高可用 一.HBASE高可用的简介 二.搭 ...

  9. Linux环境HBase安装配置及使用

    Linux环境HBase安装配置及使用 1. 认识HBase (1) HBase介绍 HBase = Hadoop database,Hadoop数据库 开源数据库 官网:hbase.apache.o ...

  10. hbase安装配置(整合到hadoop)

    如果想详细了解hbase的安装:http://abloz.com/hbase/book.html 和官网http://hbase.apache.org/ 1.  快速单击安装 在单机安装Hbase的方 ...

最新文章

  1. python ** 运算符_Python从入门到放弃运算符(2)
  2. 皮一皮:所以说,快乐水才会让人变胖...
  3. python3.5.0下载-Python for Linux
  4. 删除mongodb库
  5. C++4种类型转换操作符
  6. python logistics regression_Python——sklearn 中 Logistics Regression 的 coef_ 和 intercept_ 的具体意义...
  7. 微型计算机原理计算两数和,微型计算机原理及汇编语言 第2章-2 补码及加减运算.ppt...
  8. iOS:以前笔记,未整理版。太多了,先放着吧。。。。。。。
  9. 第九章 国际化、帮助系统和Qt插件
  10. Respond.js让IE6-8支持CSS3 Media Query
  11. [Java] 1015. Reversible Primes (20)-PAT甲级
  12. fanuc系统屏蔽服务器,FANUC系统常见的3种锁轴方法及坐标轴字母含义
  13. Windows10家庭版远程桌面登录——RDPWrap
  14. 文本特征提取和向量化
  15. 防火墙之Iptables与Firewalld
  16. java.io.IOException:Permission denied
  17. Vue常用的组件库大全【前端工程师必备】【实时更新】【移动端、PC端(web端)、数据可视化组件库(数据大屏) 、动画组件库、3D组件库】
  18. Windows NTLM认证
  19. czl蒻蒟的OI之路10、11、12
  20. sql查询包含某个字符_MySQL DBA基本知识点梳理和查询优化

热门文章

  1. 1602显示字符串的C语言程序,LCD1602程序显示字符串
  2. directx repair_DirectX修复工具(修复程序缺少.dll )一款系统级工具软件
  3. 听音乐是运用计算机的技术,计算机音乐技术在电影音乐中的运用
  4. 数据库课程设计实验报告--图书管理系统
  5. 计算机运行一段时间黑屏,电脑运行一段时间之后间歇性黑屏,黑屏一秒钟恢复,过几秒又黑屏,是显卡问题还是cpu问题...
  6. 小萝贝控机大师工具推荐(一款在PC就能控制手机界面的工具)
  7. 无线呼叫服务器对码设置,无线鼠标对码模式怎么设置
  8. 初来咋到,要想在此安家,先要共享3500份课后答案
  9. PDF目录的自动生成
  10. ios13 无法传参_Win版iOS13越狱最新消息汇总丨拼音字体更新