centos7 +hadoop2.7.5+hbase1.4.3 安装 (二)

本贴最后更新于 2283 天前,其中的信息可能已经时移世易

前置条件

centos7 +hadoop2.7.5+hbase1.4.3 安装(一)

ZooKeeper 高可用集群的安装及配置

hbase1.4.3 安装配置

在 hbase1,hbase2,hbase3 上分别配置 hosts
vim /etc/hosts

192.168.31.160 zookeeper1
192.168.31.161 zookeeper2
192.168.31.162 zookeeper3

上传 hbase-1.4.3-bin.tar.gz 到/usr/local/hadoop

[hadoop@hbase2 hadoop]$ ll
总用量 322088
drwxr-xr-x. 12 hadoop hadoop       183 4月  20 00:34 hadoop-2.7.5
-rw-r--r--.  1 hadoop hadoop 216929574 4月  16 01:19 hadoop-2.7.5.tar.gz
-rw-r--r--.  1 hadoop hadoop 112883512 4月  16 01:04 hbase-1.4.3-bin.tar.gz
[hadoop@hbase2 hadoop]$ pwd
/usr/local/hadoop
[hadoop@hbase2 hadoop]$  tar zxvf hbase-1.4.3-bin.tar.gz

hbase1.4.3 引用 hadoop 版本为:2.7.4,zookeeper 版本为 3.4.10
我们环境采用 hadoop2.7.5,zookeeper3.4.10

配置 hbase 环境变量

编辑 vim /usr/hadoop/.bash_profile ,添加以下内容

export  HBASE_HOME=/usr/local/hadoop/hbase-1.4.3 #hbase安装路径  
export  PATH=$HBASE_HOME/bin:$PATH

编辑 vi /opt/hadoop/hbase-1.2.6/conf/hbase-env.sh
去掉 export 前的注释,填写 jdk 路径

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk

去掉 export 前的注释,设置为 false,不用 hbase 内置的 zookeeper

export HBASE_MANAGES_ZK=false  

如果 jdk1.8,还要注释以下两行

# Configure PermSize. Only needed in JDK7. You can safely remove it for JDK8+  
#export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"  
#export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"  

若不注释的话,启动 hbase 会报以下警告,Java HotSpot(TM) 64-Bit Server VM warning。

配置 hbase-site.xml

配置 hbase-site.xml,默认文件 hbase-site.xml 在 hbase-common-1.4.3.jar 中

<configuration>  
    <property>   
    <name>hbase.rootdir</name> <!-- hbase存放数据目录 ,默认值${hbase.tmp.dir}/hbase-->  
    <value>hdfs://hbase1:9000/data/hbase_db</value><!-- 端口要和Hadoop的fs.defaultFS端口一致-->  
  </property>   
  <property>   
    <name>hbase.cluster.distributed</name> <!-- 是否分布式部署 -->  
    <value>true</value>   
  </property>   
  <property>   
    <name>hbase.zookeeper.quorum</name> <!-- list of  zookooper -->  
    <value>zookeeper1,zookeeper2,zookeeper3</value>   
  </property>   
</configuration>

配置 regionservers、backup-masters

vim conf/regionservers,去掉 localhost,添加 slaves 节点

hbase2
hbase3

backup-masters 不存在,需要手动创建并添加备份节点
vim conf/backup-masters 本环境只有 3 台 hbase 服务器,没有备份服务器所以不进行此步操作

hbase4

把 hadoop 的 hdfs-site.xml 复制一份到 hbase 的 conf 目录下

因为 hbase 的数据最终要写入 hdfs 中,要把 hbase 的路径链接到 hsfs 中

cp -r /usr/local/hadoop/hadoop-2.7.5/etc/hadoop/hdfs-site.xml /usr/local/hadoop/hbase-1.4.3/conf/

将配置好的 habase 分发到其它节点对应的路径下

scp -r hbase-1.4.3 hadoop@hbase3:/usr/local/hadoop/
scp -r hbase-1.4.3 hadoop@hbase1:/usr/local/hadoop/
scp -r /usr/hadoop/.bash_profile hadoop@hbase3:/usr/hadoop/
scp -r /usr/hadoop/.bash_profile hadoop@hbase1:/usr/hadoop/
source /usr/hadoop/.bash_profile

启动 hbase 集群

在 hbase1 上输入:start-hbase.sh,hbase 会开始启动

[hadoop@hbase1 root]$ start-hbase.sh 
running master, logging to /usr/local/hadoop/hbase-1.4.3/logs/hbase-hadoop-master-hbase1.out
hbase3: running regionserver, logging to /usr/local/hadoop/hbase-1.4.3/bin/../logs/hbase-hadoop-regionserver-hbase3.out
hbase2: running regionserver, logging to /usr/local/hadoop/hbase-1.4.3/bin/../logs/hbase-hadoop-regionserver-hbase2.out

等待启动完成,在每个节点上输入 jps 命令,查看进程
hbase1

[hadoop@hbase1 root]$ jps
1730 Jps
1383 HMaster
27416 DataNode
27848 ResourceManager
27625 SecondaryNameNode
27979 NodeManager
27260 NameNode

hbase2

[hadoop@hbase3 root]$ jps
22945 Jps
22723 HRegionServer
20724 NodeManager
20584 DataNode

hbase3

[hadoop@hbase2 root]$ jps
21477 NodeManager
21336 DataNode
23722 Jps
23515 HRegionServer

出现以上进程表 hbase 明启动成功了

在浏览器输入 http://hbase1:16010 可查看 hbase 集群状态(需要配置 host)

在 hbase1 上输入:stop-hbase.sh,hbase 集群会等待几秒就会停止了

注意事项及常见问题

每个节点上目录以及文件路径都要相同

一般 hadoop、zookeeper、hbase 都是在一台机器上配置好,直接分发到其他节点上,便于操作,
所以要提前建好相同的相关目录。

hadoop 格式化问题

执行 hadoop namenode -format 格式化一般首次执行就行了。

若要重新格式化,首先,停止集群,删除 namenode 和 datanode 对应的持久化数据存储目录,再格式化新文件系统。

因为重新格式化,namenode 的数据会重新生成,datanode 的数据不会重新生成,仍是原来的数据,

这样 namenode 和 datanode 不在一个集群,从而导致 datanode 启动不成功。
### hbase 环境变量配置问题
hbase 环境变量配置出错,会出现以下问题:

Error: Could not find or load main class org.apache.hadoop.hbase.util.HBaseConfTool  
Error: Could not find or load main class org.apache.hadoop.hbase.zookeeper.ZKServerTool  
starting master, logging to /opt/hadoop/zookeeper-3.4.10/logs/hbase-root-master-node01.out  
nice: /opt/hadoop/zookeeper-3.4.10/bin/hbase: No such file or directory  
cat: /opt/hadoop/zookeeper-3.4.10/conf/regionservers: No such file or directory  
cat: /opt/hadoop/zookeeper-3.4.10/conf/regionservers: No such file or directory  

参考文章:

  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    86 引用 • 122 回帖 • 624 关注
  • HBase

    HBase 是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了 Google 文件系统所提供的分布式数据存储一样,HBase 在 Hadoop 之上提供了类似于 Bigtable 的能力。

    17 引用 • 6 回帖 • 76 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...