hbase单机版安装

 

1.      hbase单机版安装

HBase的安装也有三种模式:单机模式、伪分布模式和完全分布式模式。

hbase依赖于Hadoop和Zookeeper。

这里安装的是单机版

 

1.1.    版本要求

jdk 1.8.0

hadoop: 2.7.7

下载地址:

http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz

 

hbase:2.0.5

下载地址:

http://mirrors.tuna.tsinghua.edu.cn/apache/hbase/2.0.5/hbase-2.0.5-bin.tar.gz

 

2.      jdk配置

[root@soft ~]# java -version

java version “1.7.0_45”

OpenJDK Runtime Environment (rhel-2.4.3.3.el6-x86_64 u45-b15)

OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)

[root@soft ~]#

它位于/usr/lib/jvm

 

目前已安装1.7.0,但最好安装一下新版本:

首先检索包含java的列表

yum list java*
检索1.8的列表
yum list java-1.8*   
安装1.8.0的所有文件
yum install java-1.8.0-openjdk* -y

 

[root@soft java]# java -version

openjdk version “1.8.0_212”

OpenJDK Runtime Environment (build
1.8.0_212-b04)

OpenJDK 64-Bit Server VM (build 25.212-b04,
mixed mode)

 

2.3、配置环境变量

vi /etc/profile

在文件尾部添加如下内容,保存退出

 

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.el6_10.x86_64

export PATH=$JAVA_HOME/bin:$PATH

export
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tool.jar

 

3.     
hadoop安装

移动到/usr/myprogram下解压

# tar -xvf hadoop-2.7.7.tar.gz

 

3.1.   
profile 文件更改

export HADOOP_HOME=/usr/myprogram/hadoop-2.7.7

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export HADOOP_OPTS=”-Djava.library.path=$HADOOP_HOME/lib”

export
PATH=.:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:$PATH

输入source  /etc/profile

 

查看是否设置成功

[root@soft ~]# hadoop version

Hadoop 2.7.7

Subversion Unknown -r c1aad84bd27cd79c3d1a7dd58202a8c3ee1ed3ac

Compiled by stevel on 2018-07-18T22:47Z

Compiled with protoc 2.5.0

From source with checksum
792e15d20b12c74bd6f19a1fb886490

This command was run using
/usr/myprogram/hadoop-2.7.7/share/hadoop/common/hadoop-common-2.7.7.jar

[root@soft ~]#

 

3.2.   
修改配置文件

在修改配置文件之前,先在root目录下建立一些文件夹。

mkdir  /root/hadoop 

mkdir  /root/hadoop/tmp 

mkdir  /root/hadoop/var 

mkdir  /root/hadoop/dfs 

mkdir  /root/hadoop/dfs/name 

mkdir  /root/hadoop/dfs/data

 

3.2.1.  
修改core-site.xml

配置文件均位于hadoop主目录/etc/hadoop下

在<configuration>添加:

<configuration>

<property>

       
<name>hadoop.tmp.dir</name>

       
<value>/root/hadoop/tmp</value>

       
<description>Abase for other temporary directories.</description>

   </property>

   <property>

       
<name>fs.default.name</name>

       
<value>hdfs://soft:9000</value>

   </property>

</configuration>

 

3.2.2.  
修改 hadoop-env.sh

export JAVA_HOME=/usr/java/ jdk1.8.0_144

 

3.2.3.  
修改 hdfs-site.xml

在<configuration>添加:

<configuration>

<property>

  
<name>dfs.name.dir</name>

   <value>/root/hadoop/dfs/name</value>

   <description>Path on the
local filesystem where theNameNode stores the namespace and transactions logs
persistently.</description>

</property>

<property>

  
<name>dfs.data.dir</name>

  
<value>/root/hadoop/dfs/data</value>

   <description>Comma
separated list of paths on the localfilesystem of a DataNode where it should
store its blocks.</description>

</property>

<property>

  
<name>dfs.replication</name>

   <value>1</value>

</property>

</configuration>

 

3.2.4.  
修改mapred-site.xml

<property>

     
<name>mapred.local.dir</name>

      
<value>/root/hadoop/var</value>

</property>

<property>

      
<name>mapreduce.framework.name</name>

      
<value>yarn</value>

</property>

 

到此 Hadoop 的单机模式的配置就完成了。

 

3.3.   
hadoop启动

第一次启动Hadoop需要初始化,切换到 /home/hadoop/bin目录下输入

hadoop  namenode  -format

初始化成功后,可以在/root/hadoop/dfs/name 目录下看见新增了一个current 目录以及一些文件。

[root@soft current]# ls

fsimage_0000000000000000000  fsimage_0000000000000000000.md5  seen_txid 
VERSION

 

切换到/home/hadoop/hadoop3.1.0/sbin目录,启动HDFS

输入:

start-dfs.sh

start-yarn.sh

输入jps:出现以下信息,配置完成

[root@soft sbin]# jps

4898 Jps

4804 NodeManager

3061 DataNode

3945 NameNode

4588 ResourceManager

4383 SecondaryNameNode

 

当然,也可以看一下它的web界面:

 

http://192.168.199.129:8088/cluster

管理界面:http://localhost:8088

NameNode界面:http://localhost:50070

HDFS NameNode界面:http://localhost:8042

 

3.4.   
测试

在hdoop主目录下/usr/myprogram/hadoop-2.7.7

mkdir input

拷贝文件ab.txt,内容为一篇英文技术说明

执行

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar
wordcount input output

在同目录下得到output目录:

[root@soft output]# ls

part-r-00000  _SUCCESS

验证成功

 

3.5.   
问题

3.5.1.  
问题1

Unable to obtain hostName

Hadoop在格式化HDFS的时候,通过hostname命令获取到的主机名是soft,然后在/etc/hosts文件中进行映射的时候,没有找到

在hosts文件中加上就好

192.168.199.129 localhost soft

 

3.5.2.  
问题2

问题描述:

OpenJDK 64-Bit Server VM warning: If the
number of processors is expected to increase from one, then you should
configure the number of parallel GC threads appropriately using
-XX:ParallelGCThreads=N

问题处理:

在虚拟机的设置中,将处理器的处理器核心数量改成2,重新执行启动命令后,能够正常运行。若还是未能执行成功,可进一步将处理器数量也改成2.

实际中将核心数改为2后正常。

 

3.5.3.  
问题2

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

实质是hadoop的问题,hadoop启动时报错。

需要升级包,具体见问题部分文档。

 

4.     
hbase安装

解压tar-xvf

 

4.1.   
环境配置

修改etc/profile文件

export
HBASE_HOME=/usr/myprogram/hbase-2.0.5/

export
PATH=.:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HBASE_HOME}/bin:$PATH

 

source /etc/profile

查看hbase版本hbase version

[root@soft myprogram]# hbase -version

OpenJDK 64-Bit Server VM warning: If the
number of processors is expected to increase from one, then you should
configure the number of parallel GC threads appropriately using
-XX:ParallelGCThreads=N

openjdk version “1.8.0_212”

OpenJDK Runtime Environment (build
1.8.0_212-b04)

OpenJDK 64-Bit Server VM (build 25.212-b04,
mixed mode)

 

4.2.   
修改配置文件

在 root目录下新建文件夹

mkdir  /root/hbase 

mkdir  /root/hbase/tmp 

mkdir  /root/hbase/pids

 

4.2.1.  
hbase-env.sh

[root@centos0 conf]# vi hbase-env.sh

编辑JAVA_HOME环境变量,改变路径到当前JAVA_HOME变量(一般不用设置,因为其它组件已经设置过):

 

export HBASE_MANAGES_ZK=true

说明:

Hbase依赖于zookeeper,所有的节点和客户端都必须能够访问zookeeper。

HBase的安装包里面有自带的ZooKeeper,HBASE_MANAGES_ZK环境变量用来设置是使用HBase默认自带的
Zookeeper还是使用独立的ZooKeeper。

HBASE_MANAGES_ZK为 false 时使用独立的.

HBASE_MANAGES_ZK为 true 时表示使用默认自带的,让Hbase启动的时候同时也启动自带的ZooKeeper。

 

4.2.2.  
hbase-site.xml

进入hbase-2.0.5/conf,编辑hbase-site.xml 文件,添加如下配置

<!– 存储目录 –>

 <property>

 
<name>hbase.rootdir</name>

 
<value>hdfs://soft:9000/hbase</value>

 </property>

 

<!–  zookeeper 集群配置。如果是集群,则添加其它的主机地址 –>

 <property>

 
<name>hbase.zookeeper.quorum</name>

  <value>soft</value>

 </property>

 

 <property>

 
<name>hbase.tmp.dir</name>

 
<value>/root/hbase/tmp</value>

 </property>

 

4.3.   
启动hbase

/bin start-hbase.sh

启动后使用jps命令

[root@soft tmp]# jps

79029 SecondaryNameNode

80103 Main

78726 NameNode

79737 HMaster

78856 DataNode

79194 ResourceManager

80236 Jps

79295 NodeManager

 

进入操作语句执行界面HBASE shell

[root@soft bin]# hbase shell

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.0.5,
r76458dd074df17520ad451ded198cd832138e929, Mon Mar 18 00:41:49 UTC 2019

Took 0.0056 seconds                                                                        

hbase(main):001:0> status

1 active master, 0 backup masters, 1
servers, 0 dead, 2.0000 average load

Took 2.9875 seconds                                                                        

hbase(main):002:0> list

TABLE                                                                                       

0 row(s)

Took 0.2180 seconds                                                                        

=> []

hbase(main):003:0> list

TABLE                                                                       
               

0 row(s)

Took 0.0140 seconds                                                                        

=> []

hbase(main):004:0>

 

4.4.   
问题

4.4.1.  
jar包重复

SLF4J: Class path contains multiple SLF4J
bindings.

SLF4J: Found binding in [jar:file:/home/hbase/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found binding in
[jar:file:/home/hadoop3.1.0/share/hadoop/common/lib/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]

 

发现这两个jar重复,移走/删除其中一个即可

[root@soft lib]# mv
slf4j-log4j12-1.7.25.jar /home

 

4.4.2.  
vm环境

OpenJDK 64-Bit Server VM warning: If the
number of processors is expected to increase from one, then you should
configure the number of parallel GC threads appropriately using
-XX:ParallelGCThreads=N

可以运行,估计在运算量加大到需要扩充到更多cpu时会出问题,不过这是测试环境,不需要处理。

 

4.4.3.  
问题3

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

实质是hadoop的问题,hadoop启动时报错。

具体升级过程见问题文档部分。

在升级后仍无法正常运行,关闭hadoop相关进程,重新格式化hadoop,启动hadoop,启动hbase后正常。

 

版权声明:本文为wodeboke-y原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/wodeboke-y/p/11170204.html