Hbase初探

背景

由于项目需求数据本地话保存,而且数据主要为json格式的大块非结构化数据,并且线上情况以每日50G的速度在增长,所以数据本地话保存的需求也是比较紧急,为方面以后大数据方面的计算与分析,数据本地化将采用HBase存储。
在实际部署应用过程中,遇到不少坑,加上网上资料也比较旧,更多的是针对旧版的介绍,所以折腾了两天才成功部署了单机版的HBase,特此记录。

安装前介绍

环境依赖

  • Java 1.5.x+,必须安装,建议选择Sun公司发行的Java版本。
  • ssh 必须安装并且保证 sshd一直运行,以便用Hadoop 脚本管理远端Hadoop守护进程。
  • hadoop。

系统准备

  • 本例子使用centos 7,直接在虚拟机上安装好之后进入系统。(系统安装教程自行百度)
  • 修改 /etc/hosts 文件,定义master为本机的局域网ip
    192.168.116.133 master
    
  • 免密码登录设置

useradd hadoop
su username
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
ssh localhost #确认能否不输入口令就用ssh登录localhost


### 安装java

直接使用yum安装,版本为1.8.0。

```shell
yum install java
yum install java-1.8.0-openjdk-devel.x86_64

安装hadoop

1.下载

获取Hadoop的发行版,从Apache的某个镜像服务器上下载最近的 稳定发行版
本次采用的版本为2.7.3。
下载完的安装包解压放到/usr/local/hadoop中

2.运行Hadoop的准备工作

  • 设置hadoop
    可以通过附加下面的命令在 〜/ .bashrc文件中以设置 Hadoop 环境变量。

export HADOOP_HOME=/usr/local/hadoop
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_INSTALL=$HADOOP_HOME


现在,应用所有更改到当前正在运行的系统。

source ~/.bashrc

- Hadoop配置

找到位于 “$HADOOP_HOME/etc/hadoop” 目录下所有的Hadoop配置文件。根据需要Hadoop将配置文件中的内容作修改。

cd $HADOOP_HOME/etc/hadoop


为了使用Java开发Hadoop程序,必须用java在系统中的位置来替换 hadoop-env.sh文件中的 java环境变量JAVA_HOME的值。

```python
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.131-3.b12.el7_3.x86_64/jre #yum 安装的路径查方式自行百度。
  • 编辑以下文件来配置Hadoop。
    • core-site.xml

      core-site.xml文件中包含,如:用于Hadoop实例的端口号,分配给文件系统,存储器限制用于存储数据存储器和读/写缓冲器的大小的信息。

      <configuration>
          <property>
              <name>fs.default.name</name>
              <value>hdfs://master:9000</value>
          </property>
          <property>
              <name>hadoop.tmp.dir</name>
              <value>file:/home/hadoop/hadoop_tmp</value>
          </property>
      </configuration>
      
    • hdfs-site.xml

      hdfs-site.xml文件中包含,如:复制数据的值,NameNode的路径,本地文件系统,要存储Hadoop基础架构的Datanode路径的信息。

      <configuration>
          <property>
              <name>dfs.replication</name>
              <value>1</value>
          </property>
          <property>
              <name>dfs.namenode.http-address</name>
              <value>master:50070</value>
          </property>
          <property>
              <name>dfs.namenode.name.dir</name>
              <value>file:/home/hadoop/tmp/dfs/name</value>
          </property>
          <property>
              <name>dfs.datanode.data.dir</name>
              <value>file:/home/hadoop/tmp/dfs/data</value>
          </property>
      </configuration>
      

注:上面的文件,所有的属性值是用户定义的,可以根据自己的Hadoop的基础架构进行更改。

  • yarn-site.xml

    此文件用于配置成yarn在Hadoop中。打开yarn-site.xml文件,并在<configuration><configuration>标签之前添加以下属性到这个文件中。

    <configuration>
    
    <!-- Site specific YARN configuration properties -->
      <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
       </property>
        <property>
            <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
        <property>
            <name>yarn.resourcemanager.address</name>
            <value>master:8032</value>
        </property>
        <property>
            <name>yarn.resourcemanager.scheduler.address</name>
            <value>master:8030</value>
        </property>
        <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
            <value>master:8031</value>
        </property>
        <property>
            <name>yarn.resourcemanager.admin.address</name>
            <value>master:8033</value>
        </property>
        <property>
            <name>yarn.resourcemanager.webapp.address</name>
            <value>master:8088</value>
        </property>
    
    </configuration>
    
    
  • mapred-site.xml

    此文件用于指定MapReduce框架以使用。默认情况下Hadoop包含yarn-site.xml模板。首先,它需要从mapred-site.xml复制模板到mapred-site.xml文件,使用下面的命令来。

    cp mapred-site.xml.template mapred-site.xml
    

    打开 mapred-site.xml 文件,并在<configuration> 和 </configuration>标签之间添加以下属性。

    <configuration>
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
    </configuration>
    
  • 验证Hadoop安装

    1.名称节点设置

    设置名称节点使用“hdfs namenode -format”命令如下

    cd ~
    hdfs namenode -format
    

    预期的结果如下。

6/27/17 16:30:55 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = master/192.168.116.133
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 2.7.3
...
...
6/27/17 16:30:56 INFO common.Storage: Storage directory
/home/hadoop/hadoopinfra/hdfs/namenode has been successfully formatted.
6/27/17 16:30:56 INFO namenode.NNStorageRetentionManager: Going to
retain 1 images with txid >= 0
6/27/17 16:30:56 INFO util.ExitUtil: Exiting with status 0
6/27/17 16:30:56 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at master/192.168.116.133
************************************************************/


2.验证Hadoop DFS

下面的命令用来启动DFS。执行这个命令将启动Hadoop文件系统。

```shell
start-dfs.sh

3.验证Yarn脚本

下面的命令用来启动yarn脚本。执行此命令将启动yarn守护进程。

```shell

start-yarn.sh


4.访问Hadoop上的浏览器

访问Hadoop的默认端口号为50070。使用以下网址,以获取Hadoop服务在浏览器中。

![hadoop web](http://upload-images.jianshu.io/upload_images/5359141-730475d08a9ce430.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

5.验证集群中的所有应用程序

访问群集的所有应用程序的默认端口号为8088。使用以下URL访问该服务。


![hadoop web](http://upload-images.jianshu.io/upload_images/5359141-96a43dfc946a4acb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


### 安装HBase

1.下载

选择最新的 [稳定发行版]() 。 
本次采用的版本为1.2.6。
下载完的安装包解压放到`/usr/local/HBase中`。

2.在单机模式下配置HBase

- **hbase-env.sh**

为HBase设置Java目录,并从conf文件夹打开hbase-env.sh文件。编辑JAVA_HOME环境变量,改变路径到当前JAVA_HOME变量,如上述设置hadoop一样。

- **hbase-site.xml**

这是HBase的主配置文件。通过在 `/usr/local/HBase` 打开`HBase`主文件夹,设置数据目录到合适的位置。在 conf 文件夹里面有几个文件,现在打开`hbase-site.xml`文件,如下代码。

```xml
  <configuration>
      <property>
          <name>hbase.rootdir</name>
          <value>hdfs://master:9000/hbase</value>
      </property>
      <property>
          <name>hbase.master</name>
          <value>hdfs://master:6000</value>
      </property>
      <property>
          <name>hbase.zookeeper.property.dataDir</name>
          <value>/home/hadoop/data/zookeeper</value>
      </property>
      <property>
          <name>hbase.cluster.distributed</name>
          <value>true</value>
      </property>
      <property>
          <name>hbase.zookeeper.quorum</name>
          <value>master</value>
      </property>
  </configuration>

到此 HBase 的安装配置已成功完成。可以通过使用 HBase 的 bin 文件夹中提供 start-hbase.sh 脚本启动 HBase。为此,打开HBase 主文件夹,然后运行 HBase 启动脚本。

./bin/start-hbase.sh

如果一切顺利,当运行HBase启动脚本,它会提示一条消息:

starting master, logging to /usr/local/HBase/bin/../logs/hbase-tpmaster-localhost.localdomain.out

3.最后查看进程情况

正常运行则会有以下进程

[root@hadoop ~]# jps
3074 ResourceManager
8418 HRegionServer
4870 NameNode
4554 SecondaryNameNode
3180 NodeManager
7612 HMaster
4413 DataNode
9695 Jps
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容