fesh个人实践,欢迎经验交流!Blog地址:http://www.cnblogs.com/fesh/p/3804072.html

  本文有点简单,详细版本请参见《分布式Hbase-0.98.4在Hadoop-2.2.0集群上的部署

  Hbase是一个分布式,版本化(versioned),构建在 Apache Hadoop和 Apache ZooKeeper上的列数据库.本文使用默认的Zookeeper,构造HDFS基础上的分布式Hbase。

1 安装环境

操作系统:Ubuntu-14.04

JDK版本:jdk1.8.0_11

计算机台数:3 (master:192.168.44.130   slave1:192.168.44.131   slave2:192.168.44.132)

2 预安装配置

安装Hadoop-2.2.0集群 ,参见《Ubuntu12.04-x64编译Hadoop2.2.0和安装Hadoop2.2.0集群

安装SSH及设置SSH免密码登录

配置/etc/hosts 及/etc/hostname

3 启动停止Hbase

启动

bin/start-hbase.sh

停止

bin/stop-hbase.sh

4 环境变量

在文件$HBASE_HOME/conf/hbase-env.sh中加入

export JAVA_HOME=/usr/lib/jvm/jdk1..0_11
export HADOOP_CONF_DIR=/home/hadoop-2.2.0/etc/hadoop
export HBASE_HEAPSIZE=4096

 5 设置ulimit 和 nproc

HBase是数据库,会在同一时间使用很多的文件句柄。大多数linux系统使用的默认值1024是不能满足的,会导致FAQ: Why do I see "java.io.IOException...(Too many open files)" in my logs?异常。所以你需要修改你的最大文件句柄限制。可以设置到10k. 你还需要修改 hbase 用户的 nproc,如果过低会造成OutOfMemoryError异常。

在文件 /etc/security/limits.conf (其中hadoop是运行Hbase和Hadoop的用户)添加一行

hadoop - nofile 32768

hadoop soft/hard nproc 32000

另外,在 /etc/pam.d/common-session 加上这一行

session required pam_limits.so

否则在 /etc/security/limits.conf上的配置不会生效.还有注销再登录,这些配置才能生效!

6 配置

  除非运行在实现了持久化同步(sync)的HDFS上,HBase 将丢失所有数据。Sync必须显式开启。即 dfs.support.append 同时在客户端和服务器端设为真,客户端: hbase-site.xml ,服务器端: hdfssite.

xml。修改后必须重启集群。

  一个 Hadoop HDFS Datanode 有一个同时处理文件的上限. 这个参数叫 xcievers (Hadoop的作者把这个单词拼错了).配置这个文件conf/hdfs-site.xml里面的xceivers参数,至少要有4096。

hbase-site.xml

<property>
  <name>hbase.rootdir</name>
  <value>hdfs://master:9000/hbase</value>
</property>

<property>
<name>dfs.support.append</name>
<value>true</value>
</property>

<property>
  <name>hbase.cluster.distributed</name>
  <value>true</value>
  <description>The mode the cluster will be in. Possible values are
  false: standalone and pseudo-distributed setups with managed Zookeeper
  true: fully-distributed with unmanaged Zookeeper Quorum (see hbase-env.sh)
  </description>
</property>

hdfs-site.xml

<property>
<name>dfs.support.append</name>
<value>true</value>
</property>

<property>
  <name>dfs.datanode.max.xcievers</name>
  <value>4096</value>
</property>

完全分布式模式的还需要修改conf/regionservers,一行写一个host (就像Hadoop里面的 slaves 一样). 列在这里的server会随着集群的启动而启动,集群的停止而停止.

在hbase-env.sh里将HBASE_CLASSPATH环境变量加上HADOOP_CONF_DIR。

7 分发

scp -r hbase-0.98.3-hadoop2 slave1:~/

8 运行和确认你的安装

首先确认你的HDFS是运行着的。你可以运行HADOOP_HOME中的 bin/start-hdfs.sh 来启动HDFS.你可以通过put命令来测试放一个
文件,然后有get命令来读这个文件。通常情况下Hbase是不会运行mapreduce的。所以比不需要检查这些。
如果你自己管理ZooKeeper集群,你需要确认它是运行着的。如果是Hbase托管,ZoopKeeper会随Hbase启动。

一旦Hbase启动,可以建表,插入数据,scan你的表,还有disable这个表,最后把它删掉。

分布式HBase-0.98.4环境搭建的更多相关文章

  1. Hbase 0.98集群搭建的详细步骤

    准备工作 Hbase的搭建是依赖于Hadoop的,Hbase的数据文件实际上存储在HDFS文件系统中,所以我们需要先搭建hadoop环境,之前的博文中已经搭建过了(详见http://www.cnblo ...

  2. 大数据应用之Windows平台Hbase客户端Eclipse开发环境搭建

    大数据应用之Windows平台Hbase客户端Eclipse开发环境搭建 大数据应用之Windows平台Hbase客户端Eclipse环境搭建-Java版 作者:张子良 版权所有,转载请注明出处 引子 ...

  3. hbase 0.98.1集群安装

    本文将基于hbase 0.98.1解说其在linux集群上的安装方法,并对一些重要的设置项进行解释,本文原文链接:http://blog.csdn.net/bluishglc/article/deta ...

  4. [精华]Hadoop,HBase分布式集群和solr环境搭建

    1. 机器准备(这里做測试用,目的准备5台CentOS的linux系统) 1.1 准备了2台机器,安装win7系统(64位) 两台windows物理主机: 192.168.131.44 adminis ...

  5. hbase 单机+伪分布环境搭建学习-1

    1.单机模式: (1)编辑hbase-env.sh user@EBJ1023.local:/usr/local/flume_kafka_stom/hbase_1.1.2> vim conf/hb ...

  6. Spark 1.1.0 编译(为了支持hbase 0.98.6)

    为了支持hbase0.98.6,需要重新编译spark 1. 下载spark 1.1.0源代码,以及 scala-2.10.4的bin包. 将环境变量 SCALA_HOME 设置为 scala-2.1 ...

  7. (转)微信公众平台开发之基于百度 BAE3.0 的开发环境搭建(采用 Baidu Eclipse)

    原文传送门(http://blog.csdn.net/bingtianxuelong/article/details/17843111) 版本说明:     V1:         2014-2-13 ...

  8. Hbase0.98的环境搭建

    0 安装前提: jDK7 ,hadoop1.1.2 1 下载与hadoop对应的hbase版本: http://mirror.bit.edu.cn/apache/hbase/hbase-0.98.12 ...

  9. 阿里云ECS+CentOS 7.0+Docker+Redmine环境搭建

    前言 搭建Redmine环境可以选择使用分别安装Ruby+Rails+Redmine+MySQL的方式, 但是过程中需要解决各种扰人的依赖问题.Docker为我们提供的Plan B,方便,快捷. 安装 ...

随机推荐

  1. C#中的GDI+图形绘制方法

    GDI+图形绘制方法 1.首先对于绘制图形,必须的先将命名空间导入:using System.Drawing.Drawing2D; 2.然后在一个事件中写入程序 首先先将Graphics这个对象实例化 ...

  2. php部分---注册审核

    用户界面: 1.登录界面,用户填写相关信息 <form action="dengluchuli.php" method="post"> <di ...

  3. android的ArrayMap类

    运行的时候出现: java.lang.NoClassDefFoundError: android.util.ArrayMap http://stackoverflow.com/questions/24 ...

  4. 封装对NPOIExcel的操作,方便的设置导出Excel的样式

    下载: http://pan.baidu.com/s/1boTpT5l 使用方法: 导入: 使用 ReadToDataTable方法 导出: NPOIExcel.ExcelManager manger ...

  5. python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix

    先手工生出一个数据框吧 import numpy as np import pandas as pd df = pd.DataFrame(np.arange(0,60,2).reshape(10,3) ...

  6. JSR 303 - Bean Validation 介绍及最佳实践

    JSR 303 - Bean Validation 介绍及最佳实践 JSR 303 – Bean Validation 是一个数据验证的规范,2009 年 11 月确定最终方案.2009 年 12 月 ...

  7. php分10个不同等级压缩优化图片

    今天找到一个php写的压缩图片程序,可以分10个等级(0-9)来压缩,0等级时压缩比率不是很大,图片不会失真:随着压缩等级不断增大,图片会变得越来越不清晰,通常压缩后图片大小可以减少到原来的50%,压 ...

  8. Hadoop学习12-配置集群环境

    由于之前虚拟机都是用的桥接方式,有时候没有网络可用,想学习的时候,就狠不方便. 于是研究了一下,希望搭建一个多台虚机组成一个局域网的集群,即host-only方式 1.安装VM,网络选择“host-o ...

  9. iOS Storyboard全解析

    来源:http://iaiai.iteye.com/blog/1493956 Storyboard)是一个能够节省你很多设计手机App界面时间的新特性,下面,为了简明的说明Storyboard的效果, ...

  10. c#lock语句及在单例模式中应用

    C#中的lock语句是怎么回事,有什么作用? C#中的lock语句将lock中的语句块视为临界区,让多线程访问临界区代码时,必须顺序访问.他的作用是在多线程环境下,确保临界区中的对象只被一个线程操作, ...