hbase单机版安装
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后正常。