Hadoop集群(三) Hbase搭建

时间:2022-10-29 07:29:46

前面已经完成Zookeeper和HDFS的安装,本文会详细介绍Hbase的安装步骤。以及安装过程中遇到问题的汇总。

系列文章:

 

Hadoop集群(一) Zookeeper搭建

Hadoop集群(二) HDFS搭建

Hadoop集群(四) Hadoop升级

 

下面开始Hbase的安装。

Hbase的服务器规划

192.168.67.101 c6701 --Master + regionserver192.168.67.102 c6702 --Master(standby)+regionserver192.168.67.103 c6703 --regionserver

---在c6701上安装Hbase

1. 创建hbase用户,及创建相关目录

su - root

useradd hbase

echo "hbase:hbase" | chpasswd

mkdir -p /data/zookeeper

mkdir -p /data/hbase/tmp

mkdir -p /data/hbase/logs

chown -R hbase:hbase /data/hbase

chown -R a+rx /home/hdfs      <<<<<<<<<<<<<让hadoop目录,其他人可以用读和执行--很重要hbase需要访问

2. 解压软件

su - hbase

cd /tmp/software

tar -zxvf hbase-1.1.3.tar.gz -C /home/hbase/

3. 设置hbase-site.xml的参数

[hbase@c6701 conf]$ more hbase-site.xml <configuration>

<property>

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

<value>/data/hbase/tmp</value>

</property>

<property>

<name>hbase.rootdir</name>

<value>hdfs://ns/hbase</value>  <<<<<<<<<<<<<<<<<这里要注意,ns是namenode的名字,Hbase可以访问很多HDFS,在这里标注namenode,才是指定访问这个namenode,实际在hdfs看到是/hbase的目录,不会看到ns的。

</property>

<property>

<name>hbase.cluster.distributed</name>

<value>true</value>

</property>

<property>

<name>hbase.master</name>

<value>60000</value>

</property>

<property>

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

<value>c6701,c6702,c6703</value>

</property>

<property>

<name>hbase.zookeeper.property.clientPort</name>

<value>2181</value>

</property>

<property>

<name>hbase.zookeeper.property.dataDir</name>

<value>/data/zookeeper</value>

</property></configuration>

4. 设置hbase-env.sh的参数

[hbase@c6701 conf]$ cat hbase-env.sh |grep -v "^#"

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

export HBASE_CLASSPATH=$HADOOP_HOME/etc/hadoop/

export HBASE_HEAPSIZE=500M

export HBASE_OPTS="-XX:+UseConcMarkSweepGC"

export HBASE_REGIONSERVER_OPTS="-Xmx1g -Xms400m -Xmn128m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70"

export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS  -Xmx1g -Xms400m -XX:PermSize=128m -XX:MaxPermSize=128m"

export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"

export HBASE_LOG_DIR=/data/hbase/logs

export HBASE_PID_DIR=/data/hbase/hadoopPidDir

export HBASE_MANAGES_ZK=true

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HBASE_HOME/lib/:/usr/lib64/

export HBASE_LIBRARY_PATH=$HBASE_LIBRARY_PATH:$HBASE_HOME/lib/:/usr/lib64/

5. 注意一下内存设置,由于是测试环境,设置过大,导致内存不足,无法启动问题

export HBASE_REGIONSERVER_OPTS="-Xmx1g -Xms400m -Xmn128m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70"

export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS  -Xmx1g -Xms400m -XX:PermSize=128m -XX:MaxPermSize=128m"

内存不足的错误

[hbase@c6701 bin]$ ./hbase-daemon.sh start masterstarting master, logging to /data/hbase/logs/hbase-hbase-master-c6701.python279.org.out

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000006c5330000, 2060255232, 0) failed; error='Cannot allocate memory' (errno=12)## There is insufficient memory for the Java Runtime Environment to continue.# Native memory allocation (mmap) failed to map 2060255232 bytes for committing reserved memory.# An error report file with more information is saved as:# /home/hbase/hbase-1.1.3/bin/hs_err_pid7507.log

6. 增加hadoop的参数到/etc/profile中,后面hbase运行,需要知道hadoop_home

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

export JRE_HOME=/usr/local/jdk1.8.0_144/jre

export PATH=$JAVA_HOME/bin:$PATH:/home/hbase/hbase-1.1.3/bin

export HADOOP_HOME=/home/hdfs/hadoop-2.6.0-EDH-0u2

export HADOOP_INSTALL=$HADOOP_HOME

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_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"

---安装c6702的hbase

7. 创建hbase用户

ssh c6702 "useradd hbase;echo "hbase:hbase" | chpasswd"

8. 为hbase用户ssh免密

ssh-copy-id  hbase@c6702

9. 拷贝软件,创建目录,解压软件

scp -r /tmp/software/hbase-1.1.3.tar.gz root@c6702:/tmp/software/.

ssh c6702 "chmod 777 /tmp/software/*;mkdir -p /data/zookeeper;mkdir -p /data/hbase/tmp;mkdir -p /data/hbase/logs;chown -R hbase:hbase /data/hbase"

ssh c6702 "chmod -R a+rx /home/hdfs"

ssh hbase@c6702 "tar -zxvf /tmp/software/hbase-1.1.3.tar.gz -C /home/hbase"

10.复制配置文件

scp -r /etc/profile root@c6702:/etc/profile

scp -r /home/hbase/hbase-1.1.3/conf/hbase-site.xml hbase@c6702:/home/hbase/hbase-1.1.3/conf/.

scp -r /home/hbase/hbase-1.1.3/conf/hbase-env.sh hbase@c6702:/home/hbase/hbase-1.1.3/conf/.

---安装c6703的hbase

8. 创建hbase用户

ssh c6703 "useradd hbase;echo "hbase:hbase" | chpasswd"

9. 为hbase用户ssh免密

ssh-copy-id  hbase@c6703

10. 拷贝软件,创建目录,解压软件

scp -r /tmp/software/hbase-1.1.3.tar.gz root@c6703:/tmp/software/.

ssh c6703 "chmod 777 /tmp/software/*;mkdir -p /data/zookeeper;mkdir -p /data/hbase/tmp;mkdir -p /data/hbase/logs;chown -R hbase:hbase /data/hbase"

ssh c6703 "chmod -R a+rx /home/hdfs"

ssh hbase@c6703 "tar -zxvf /tmp/software/hbase-1.1.3.tar.gz -C /home/hbase"

11. 复制配置文件

scp -r /etc/profile root@c6703:/etc/profile

scp -r /home/hbase/hbase-1.1.3/conf/hbase-site.xml hbase@c6703:/home/hbase/hbase-1.1.3/conf/.

scp -r /home/hbase/hbase-1.1.3/conf/hbase-env.sh hbase@c6703:/home/hbase/hbase-1.1.3/conf/.

12. 启动Hbase master(在c6701和c6702)

hbase-daemon.sh start master

ssh -t -q c6702  sudo su -l hbase -c "/usr/local/hadoop/hbase-release/bin/hbase-daemon.sh\ start\ master"

13. 启动Hbase regionserver(在c6701和c6702和c6703)

hbase-daemon.sh start regionserver

ssh -t -q c6702  sudo su -l hbase -c "/usr/local/hadoop/hbase-release/bin/hbase-daemon.sh\ start\ regionserver"

ssh -t -q c6703  sudo su -l hbase -c "/usr/local/hadoop/hbase-release/bin/hbase-daemon.sh\ start\ regionserver"

HBASE安装过程,问题汇总

1. 首先Hbase-site.xml设置错误,ns是namenode的名字,Hbase可以访问很多HDFS,在这里标注namenode,才是指定访问这个namenode,实际在hdfs看到是/hbase的目录,不会看到ns的。

<name>hbase.rootdir</name><value>hdfs://ns/hbase</value>  <<<<<<<<<<<<<<<<<这里要注意

2.通过hbase访问hdfs遇到问题,虽然也可以对hdfs操作,但是有warning

[root@c6701 home]# su - hbase

$ hdfs dfs -mkdir /hbase

$ hdfs dfs -ls /

Found 1 items

drwxrwx---   - hdfs hadoop          0 2017-10-25 10:18 /hbase

权限不对,需要hbase是owner才可以让hbase正常访问hdfs路径

$ hadoop fs -chown hbase:hbase /hbase

$ hdfs dfs -ls /

Found 1 items

drwxrwx---   - hbase hbase          0 2017-10-25 10:18 /hbase

已经修改成功[hbase@c6701 ~]$ hdfs dfs -ls /hbase/test17/09/27 07:45:59 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

最后注释掉/etc/profile中的CLASSPATH=解决的这个问题

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

export JRE_HOME=/usr/local/jdk1.8.0_144/jre#export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$PATH:/home/hbase/hbase-1.1.3/bin

3. 启动Hbase的时候,还遇到权限问题,无法找到hadoop。首先通过hbase用户检查hadoop访问权限

su - hbase/home/hdfs/hadoop-2.6.0-EDH-0u2/bin/hadoop version

如果权限有问题,需要增加hbase执行hadoop文件的权限

4. 启动过程中,遇到错误,是由于/home/hbase/hbase-1.1.3/lib/原有的一些jar包版本与hadoop不同,进而影响,删除即可。hbase会从hadoop中读取jar包

[hbase@c6702 ~]$ hbase-daemon.sh start regionserverstarting regionserver, logging to /data/hbase/logs/hbase-hbase-regionserver-c6702.python279.org.out

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0

SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found binding in [jar:file:/home/hbase/hbase-1.1.3/lib/kylin-jdbc-1.5.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found binding in [jar:file:/home/hbase/hbase-1.1.3/lib/kylin-job-1.5.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]

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

SLF4J: Found binding in [jar:file:/home/hdfs/hadoop-2.6.0-EDH-0u2/share/hadoop/common/lib/slf4j-log4j12-1.7.5.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]

至此Zookeeper+HDFS+Hbase安装全部完成,前面还是比较顺利的,但是在Hbase安装的过程中,由于与Hadoop的衔接上,出现一些问题,耗费一些时间分析解决。

后续会继续测试,hadoop升级的过程。

Hadoop集群(三) Hbase搭建的更多相关文章

  1. Hadoop集群&lpar;二&rpar; HDFS搭建

    HDFS只是Hadoop最基本的一个服务,很多其他服务,都是基于HDFS展开的.所以部署一个HDFS集群,是很核心的一个动作,也是大数据平台的开始. 安装Hadoop集群,首先需要有Zookeeper ...

  2. 大数据系列(1)——Hadoop集群坏境搭建配置

    前言 关于时下最热的技术潮流,无疑大数据是首当其中最热的一个技术点,关于大数据的概念和方法论铺天盖地的到处宣扬,但其实很多公司或者技术人员也不能详细的讲解其真正的含义或者就没找到能被落地实施的可行性方 ...

  3. hadoop集群环境的搭建

    hadoop集群环境的搭建 今天终于把hadoop集群环境给搭建起来了,能够运行单词统计的示例程序了. 集群信息如下: 主机名 Hadoop角色 Hadoop jps命令结果 Hadoop用户 Had ...

  4. hadoop 集群及hbase集群的pid文件存放位置

    一.当hbase集群和hadoop集群停了做一些配置调整,结果执行stop-all.sh的时候无法停止集群, 提示no datanode,no namenode等等之类的信息, 查看stop-all. ...

  5. Hadoop集群的hbase介绍、搭建、环境、安装

    1.hbase的介绍(自行百度hbase,比我总结的全面具体) HBase – Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC ...

  6. 搭建Hadoop集群 &lpar;三&rpar;

    通过 搭建Hadoop集群 (二), 我们已经可以顺利运行自带的wordcount程序. 下面学习如何创建自己的Java应用, 放到Hadoop集群上运行, 并且可以通过debug来调试. 有多少种D ...

  7. 基于Hadoop集群的HBase集群的配置

    一  Hadoop集群部署 hadoop配置 二 Zookeeper集群部署 zookeeper配置 三  Hbase集群部署 1.配置hbase-env.sh HBASE_MANAGES_ZK:用来 ...

  8. Hadoop集群三种作业调度算法介绍

    Hadoop集群中有三种作业调度算法,分别为FIFO,公平调度算法和计算能力调度算法 先来先服务(FIFO) Hadoop中默认的调度器FIFO,它先按照作业的优先级高低,再按照到达时间的先后选择被执 ...

  9. Hadoop集群中Hbase的介绍、安装、使用

    导读 HBase – Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群. 一.Hbase ...

随机推荐

  1. 获取在线APP的素材图片

    1.打开iTunes,搜索并下载APP 2.打开下载的APP的路径 4.对ipa包进行解压 5.找到app,右键"显示包内容"进行查看 6.结果

  2. 【教训】rm -fr &period;&sol;&ast; 教训

    昨晚犯了一个重大错误,运行了 rm -rf ./* 本来是要删除一个不重要的目录的,结果在它的父目录下运行了上面命令,结果...都没了... 幸好数据库文件没有被删掉,数据还在,网站程序被删掉了,不久 ...

  3. 详解CSS设置默认字体样式

    浏览器默认的样式往往在不同的浏览器.不同的语言版本甚至不同的系统版本都有不同的设置,这就导致如 果直接利用默认样式的页面在各个浏览器下显示非常不一致,于是就有了类似YUI的reset之类用来尽量重写浏 ...

  4. IIS系统短文件名漏洞猜解过程

    今天看教程的时候,老师关于后台管理说到了短文件名漏洞,我就随便找了个网站猜解,可能是运气太好了,有了这次实践的过程,因为这个漏洞是13年的时候比较火,现在差不多都修复了,抓到一条漏网之鱼, 短文件名漏 ...

  5. mac下mysql安装及配置启动

    ---恢复内容开始--- 原始链接:https://segmentfault.com/q/1010000000475470 按照如下方法成功安装并启动: mysql.server start//启动服 ...

  6. mysql 开发进阶篇系列 43 逻辑备份与恢复&lpar;mysqldump 的基于时间和位置的不完全恢复&rpar;

    一. 概述 在上篇讲到了逻辑备份,使用mysqldump工具来备份一个库,并使用完全恢复还原了数据库.在结尾也讲到了误操作是不能用完全恢复的.解决办法是:我们需要恢复到误操作之前的状态,然后跳过误操作 ...

  7. 【30集iCore3&lowbar;ADP出厂源代码&lpar;ARM部分&rpar;讲解视频】30-9底层驱动之USART

    视频简介:该视频介绍iCore3应用开发平台中RTC的基本配置方法以及在应用开发平台中RS-232, RS-485,RS-232的硬件实现方法. 源视频包下载地址:链接:http://pan.baid ...

  8. Floyd算法解说

    開始知道Floyd算法是在<大话数据结构>这本书的无向带权图求最短路径看到的, 可是第一次没怎么看懂,所以就不看了,后来又看了两遍还是没明确,我以为是我理解能力有问题 后来从百度百科上看了 ...

  9. 求连续出现5次以上的值,并且取第5次所在id

    关键字:求连续出现5次以上的值,并且取第5次所在id 关键字:求在某列连续出现N次值的的数据,并且取第M次出现所在行 需求,求连续出现5次以上的值,并且取第5次所在id SQL SERVER: --测 ...

  10. ZooKeeper server &amp&semi;&amp&semi;client

    写了一个关于zookeepeer应用的简单demo 服务端定时的向zookeeper集群注册,客户端监听zookeeper服务节点变化,一旦变化,立刻响应,更新服务端列表 服务端代码: #includ ...