• 分布式HBase-0.98.4环境搭建


      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.8.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这个表,最后把它删掉。

  • 相关阅读:
    用队列打印杨辉三角
    mysql允许远程连接
    window文件恢复工具
    android 虚拟机没有sd卡
    StringUtils 的填充方法
    plsql 中出现 Dynamic Performance Tables not accessible 问题解决
    oracle数据库服务介绍
    遮罩的使用
    <pre>标签
    总结五个小技巧定位数据库性能问题
  • 原文地址:https://www.cnblogs.com/fesh/p/3804072.html
Copyright © 2020-2023  润新知