Hbase学习文档(超详细单机安装)

Hbase学习文档(超详细单机安装)

一、前言
1.1简述
本文分为五个部分:linux主机名的设置、jdk的安装、hadoop的安装、单机模式下hbase的安装、hbase的shell常用命令及java实例。
1.2环境要求
本文使用系统环境:centOS6.5,hadoop-2.5.2,hbase-0.98.13-hadoop2-bin,jdk1.8;
可能需要用到的window软件:SwitchHosts(若使用云服务器,则可以使用与ip绑定的域名作为主机名)。

二、linux主机名的设置
2.1 临时修改hostname
注:如果是云服务器推荐使用域名作为主机名,如果是虚拟机可以自定义.

# hostname hbase.domain

在这里插入图片描述
2.2 永久修改hostname

# vi /etc/sysconfig/network

结果如下:
在这里插入图片描述
2.3 配置Host

# vi /etc/hosts

结果如下:
在这里插入图片描述
若配置完,没生效可以重启服务器
2.4 防火墙设置
本文推荐自己设置防火墙入栈规制,不要直接关闭防火墙.本文只是学习,所以在这里选择关闭防火墙,若是要直接使用的话最好不要关闭防火墙.
查看防火墙状态:

# service iptables status

临时关闭防火墙:

# service iptables stop

永久关闭防火墙:

# chkconfig iptables off

在这里插入图片描述

三、jdk的安装
在确保linux系统本身没有安装jdk的时候,执行下面步骤:
3.1 上传jdk
将jdk-8u171-linux-x64.tar.gz这个文件上传到linux虚拟机然后,解压到/opt/modules/这个目录下,若没有这个目录可以用mkdir -p,创建目录。
Hbase学习文档(超详细单机安装)_第1张图片
在这里插入图片描述
3.2 解压jdk

# tar -zxvf jdk-8u171-linux-x64.tar.gz  -C  /opt/modules/

在这里插入图片描述
3.3 配置环境变量

# vi /etc/profile

在末尾行添加

# set java environment
JAVA_HOME=/opt/modules/jdk1.8.0_171
CLASSPATH=.:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH

在这里插入图片描述

# source /etc/profile  使更改的配置立即生效
# java -version 验证结果是否正确

在这里插入图片描述

四、hadoop的安装
4.1 验证hadoop是否已经安装.

# hadoop version

如果一切正常,会得到下面的输出:
Hbase学习文档(超详细单机安装)_第2张图片
如果系统上是无法找到 Hadoop,那么证明还未安装.
4.2 开始安装hadoop
4.2.1上传hadoop-2.5.2.tar.gz到/root目录下:
Hbase学习文档(超详细单机安装)_第3张图片
4.2.2 将文件解压到/opt/modules/hadoopstandalone/目录下:

# tar -zxvf /root/hadoop-2.5.2.tar.gz -C /opt/modules/hadoopstandalone/

在这里插入图片描述
4.2.3 配置Hadoop环境变量
可以通过附加下面的命令在 〜/etc/profile文件中以设置 Hadoop 环境变量。

export HADOOP_HOME=/opt/modules/hadoopstandalone/hadoop-2.5.2
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME

Hbase学习文档(超详细单机安装)_第4张图片
#source /etc/profile 可以使配置立即生效
4.2.4 Hadoop配置
找到位于 “$HADOOP_HOME/etc/hadoop” 目录下所有的Hadoop配置文件。根据需要Hadoop将配置文件中的内容作修改。

#cd $HADOOP_HOME/etc/hadoop

为了使用Java开发Hadoop程序,必须用java在系统中的位置来替换 hadoop-env.sh文件中的 java环境变量JAVA_HOME的值。

export JAVA_HOME=/opt/modules/jdk1.8.0_171

在这里插入图片描述
4.2.5 编辑以下文件来配置Hadoop
core-site.xml
core-site.xml文件中包含,如:用于Hadoop实例的端口号,分配给文件系统,存储器限制用于存储数据存储器和读/写缓冲器的大小的信息。
打开core-site.xml,并在和标签之间添加以下属性。



 fs.default.name
 hdfs://hbase.domain:9000
 

如图:
Hbase学习文档(超详细单机安装)_第5张图片
hdfs-site.xml
hdfs-site.xml文件中包含,如:复制数据的值,NameNode的路径,本地文件系统,要存储Hadoop基础架构的Datanode路径的信息。
假设有以下数据。

dfs.replication (data replication value) = 1
(//opt/home/hadoop/hadoopinfra/hdfs/namenode目录路径可以自己定义)
namenode path = //opt/home/hadoop/hadoopinfra/hdfs/namenode
(//opt/home/hadoop/hadoopinfra/hdfs/datanode目录路径可以自己定义)
datanode path = //opt/home/hadoop/hadoopinfra/hdfs/datanode

打开这个文件,并在和 标记之间添加以下属性。



 dfs.replication
 1
 
 
 dfs.name.dir
 file:///opt/home/hadoop/hadoopinfra/hdfs/namenode
 
 
 dfs.data.dir
 file:///opt/home/hadoop/hadoopinfra/hdfs/datanode
 

结果如下:
Hbase学习文档(超详细单机安装)_第6张图片
注:上面的文件,所有的属性值是用户定义的,可以根据自己的Hadoop的基础架构进行更改。
yarn-site.xml
此文件用于配置成yarn在Hadoop中。打开yarn-site.xml文件,并在标签之前添加以下属性到这个文件中。



 yarn.nodemanager.aux-services
 mapreduce_shuffle
 

结果如下:
Hbase学习文档(超详细单机安装)_第7张图片
mapred-site.xml
此文件用于指定MapReduce框架以使用。默认情况下Hadoop包含yarn-site.xml模板。首先,它需要从mapred-site.xml复制模板到mapred-site.xml文件,使用下面的命令来。
#cp mapred-site.xml.template mapred-site.xml
打开 mapred-site.xml 文件,并在 和 标签之间添加以下属性。



 mapreduce.framework.name
 yarn
 

结果如下:
在这里插入图片描述
4.2.6 验证Hadoop安装
(1) 名称节点设置
设置名称节点使用“hdfs namenode -format”命令如下

# cd ~
# hdfs namenode -format

预期结果如下:

10/24/14 21:30:55 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = hbase.domain/192.168.0.22
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 2.5.2
...
...
10/24/14 21:30:56 INFO common.Storage: Storage directory
/opt/home/hadoop/hadoopinfra/hdfs/namenode has been successfully formatted.
10/24/14 21:30:56 INFO namenode.NNStorageRetentionManager: Going to
retain 1 images with txid >= 0
10/24/14 21:30:56 INFO util.ExitUtil: Exiting with status 0
10/24/14 21:30:56 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at hbase.domain/192.168.0.22
************************************************************/ 

(2)验证Hadoop DFS
下面的命令用来启动DFS。执行这个命令将启动Hadoop文件系统。

# start-dfs.sh

预期结果如下:

10/24/14 21:37:56
Starting namenodes on [localhost]
localhost: starting namenode, logging to /opt/home/hadoop/hadoop-
2.5.2/logs/hadoop-hadoop-namenode-localhost.out
localhost: starting datanode, logging to /home/hadoop/hadoop-
2.5.2/logs/hadoop-hadoop-datanode-localhost.out
Starting secondary namenodes [0.0.0.0]

Hbase学习文档(超详细单机安装)_第8张图片
(3)验证yarn脚本

# start-yarn.sh

预期结果如下:

starting yarn daemons
starting resourcemanager, logging to /opt/home/hadoop/hadoop-
2.5.2/logs/yarn-hadoop-resourcemanager-localhost.out
localhost: starting nodemanager, logging to /opt/home/hadoop/hadoop-
2.5.2/logs/yarn-hadoop-nodemanager-localhost.out

在这里插入图片描述
(4)访问本机的浏览器
访问Hadoop的默认端口号为50070。使用以下网址,以获取Hadoop服务在浏览器中。
http://192.168.0.22:50070
Hbase学习文档(超详细单机安装)_第9张图片
(5)验证集群中的所有应用程序
访问群集的所有应用程序的默认端口号为8088。使用以下URL访问该服务。
http://192.168.0.22:8088
Hbase学习文档(超详细单机安装)_第10张图片
五、单机模式下hbase的安装
5.1 上传hbase-0.98.13-hadoop2-bin.tar.gz 到/root目录下:
Hbase学习文档(超详细单机安装)_第11张图片
5.2 将hbase-0.98.13-hadoop2-bin.tar.gz解压安装在/usr/local目录下:

# tar -zxvf /root/hbase-0.98.13-hadoop2-bin.tar.gz -C /usr/local

在这里插入图片描述
5.3 单机模式下配置Hbase
在继续HBase之前,需要编辑下列文件和配置HBase。
hbase-env.sh
为HBase设置Java目录,并从conf文件夹打开hbase-env.sh文件。编辑JAVA_HOME环境变量,改变路径到当前JAVA_HOME变量:

# cd /usr/local/hbase-0.98.13-hadoop2/conf
# vi hbase-env.sh

这将打开HBase的env.sh文件。现在使用当前值替换现有JAVA_HOME值,如下图所示。
在这里插入图片描述
hbase-site.xml
这是HBase的主配置文件。通过在 /usr/local/hbase-0.98.13-hadoop2 打开HBase主文件夹,设置数据目录到合适的位置。在 conf 文件夹里面有几个文件,现在打开hbase-site.xml文件:

# cd /usr/local/hbase-0.98.13-hadoop2/
# cd conf
# vi hbase-site.xml

在hbase-site.xml文件里面,找到 和 标签。并在其中,设置属性键名为“hbase.rootdir”,如下图所示的HBase目录。


///opt/home/hadoop/HBase/HFiles这个目录可以自己定义

hbase.rootdir
file:/opt/home/hadoop/HBase/HFiles

///opt/home/hadoop/zookeeper这个目录可以自己定义

hbase.zookeeper.property.dataDir
/opt/home/hadoop/zookeeper


如下图所示:
Hbase学习文档(超详细单机安装)_第12张图片
到此 HBase 的安装配置已成功完成。可以通过使用 HBase 的 bin 文件夹中提供 start-hbase.sh 脚本启动 HBase。为此,打开HBase 主文件夹,然后运行 HBase 启动脚本,如下图所示。

# cd /usr/local/hbase-0.98.13-hadoop2/bin
# ./start-hbase.sh

如果一切顺利,当运行HBase启动脚本,它会提示一条消息:HBase has started

starting master, logging to /usr/local/hbase-0.98.13-hadoop2/bin/../logs/hbase-tpmaster-localhost.localdomain.out

在这里插入图片描述
启动HBase主服务器
这在相同目录。启动它,如下图所示:

# ./bin/local-master-backup.sh start 2 (数字是用来区分不同的hbase服务器的)

在这里插入图片描述
启动区域服务器
启动区域服务器,如下所示.

# ./bin/./local-regionservers.sh start 3

在这里插入图片描述
启动HBase Shell
可以使用以下命令启动HBase shell

# cd bin
# ./hbase shell

这会给出HBase shell 的提示符,如下图所示。
在这里插入图片描述
5.4 HBase的Web界面
要访问 HBase 的 Web界面,在浏览器中键入以下URL:
http://192.168.0.22:60010
以下界面列出了当前正在运行的区域服务器,备份主服务以及HBase表。
HBase区域服务器和备份主服务
Hbase学习文档(超详细单机安装)_第13张图片

HBase表
Hbase学习文档(超详细单机安装)_第14张图片
5.5 设置类路径
继续进行之前编程,在.bashrc文件中设置类路径到HBase库。打开.bashrc文件编辑,如下所示。

# vi /etc/profile

为HBase库设置类路径(HBase的lib文件夹),如下图所示。
在这里插入图片描述

六、hbase的shell常用命令及java实例
6.1 hbase的shelll常用命令
6.1.1通用命令
(1)status: 提供HBase的状态,例如,服务器的数量。
在这里插入图片描述
(2)version: 提供正在使用HBase版本。
在这里插入图片描述
(3)table_help: 表引用命令提供帮助。
Hbase学习文档(超详细单机安装)_第15张图片
(4)whoami: 提供有关用户的信息.
在这里插入图片描述
6.1.2 数据定义语言
(1) create: 创建一个表。
Hbase学习文档(超详细单机安装)_第16张图片
(2)list: 列出HBase的所有表。
Hbase学习文档(超详细单机安装)_第17张图片
(3)disable: 禁用表。
在这里插入图片描述
(4)is_disabled: 验证表是否被禁用。
表示被禁用:
在这里插入图片描述
表示启用:
在这里插入图片描述
(5)enable: 启用一个表。
在这里插入图片描述
(6)is_enabled: 验证表是否已启用。
表示启用:
在这里插入图片描述
表示被禁用:
在这里插入图片描述
(7)describe: 提供了一个表的描述。
Hbase学习文档(超详细单机安装)_第18张图片
(8)alter: 改变一个表。
Hbase学习文档(超详细单机安装)_第19张图片
(9)exists: 验证表是否存在。
Hbase学习文档(超详细单机安装)_第20张图片
(10)drop: 从HBase中删除表。
分两步:首先disable,然后drop
Hbase学习文档(超详细单机安装)_第21张图片

(11)drop_all: 丢弃在命令中给出匹配“regex”的表。
hbase> drop_all ‘t.*’
注意:要删除表,则必须先将其禁用。
假设有一些表的名称如下:
Hbase学习文档(超详细单机安装)_第22张图片
所有这些表以字母test0开始。首先使用disable_all命令禁用所有这些表如下所示。
Hbase学习文档(超详细单机安装)_第23张图片
现在,可以使用 drop_all 命令删除它们,如下所示。
Hbase学习文档(超详细单机安装)_第24张图片
(12)Java Admin API: 在此之前所有的上述命令,Java提供了一个通过API编程来管理实现DDL功能。在这个org.apache.hadoop.hbase.client包中有HBaseAdmin和HTableDescriptor 这两个重要的类提供DDL功能。

6.1.3 数据操纵语言
(1) put: 把指定列在指定的行中单元格的值在一个特定的表。

put ‘table name’,'row ',‘Column family:column name’,‘new value’

在这里插入图片描述
(2)get: 取行或单元格的内容。

get ‘table name’,‘row1’

在这里插入图片描述
(3)delete: 删除表中的单元格值。

delete ‘table name’, ‘row’, 'column name ', ‘time stamp’

在这里插入图片描述
(4)deleteall: 删除给定行的所有单元格。

deleteall ‘table name’, ‘row’,

在这里插入图片描述
(5)scan: 扫描并返回表数据。

scan ‘table name’

Hbase学习文档(超详细单机安装)_第25张图片
(6)count: 计数并返回表中的行的数目。

count ‘table name’

在这里插入图片描述
(7)truncate: 禁用,删除和重新创建一个指定的表。

truncate ‘table name’

在这里插入图片描述
在这里插入图片描述
(8)Java client API: 在此之前所有上述命令,Java提供了一个客户端API来实现DML功能,CRUD(创建检索更新删除)操作更多的是通过编程,在org.apache.hadoop.hbase.client包下。 在此包HTable 的 Put和Get是重要的类。

6.2 java实例
6.2.1 准备
如果是用虚拟机搭建的hbase环境,要对虚拟机服务器的ip进行硬编码.如果是云服务器则可采用域名直接访问hbase服务.进行硬编码时,推荐采用switchhost进行硬编码,不要直接在C盘下操作host文件.
Hbase学习文档(超详细单机安装)_第26张图片
测试硬编码是否已正常启用可以使用浏览器用:
http://hbase.domain:60010/master-status
Hbase学习文档(超详细单机安装)_第27张图片
6.2.2 java程序与hbase服务器的交互
详细可参考案例代码:
相关软件下载:
链接:https://pan.baidu.com/s/17QnMfoXXvNNL0v4if6uJcw
提取码:26pr
案例代码下载:
链接:https://pan.baidu.com/s/1eb0xUI0vg2QNFtZKLC61mA
提取码:nnrd

你可能感兴趣的:(java,zookeeper,hadoop,hbase,linux)