文档章节

Apache Slider + Hbase

Yulong_
 Yulong_
发布于 2016/09/08 17:15
字数 1158
阅读 164
收藏 2

#Apache Slider + Hbase

##系统环境

安装如下组件,部署可用环境

Apache Hbase配置相关目录及环境变量,不启动服务,主要作用为client连接slider hbase需要使用

Apache Slider部署参照Apache Slider编译安装

##Hbase App Package编译

###下载Hbase可执行包 Apache Hbase 0.98.21-hadoop Apache Hbase Download 下载软件包hbase-0.98.21-hadoop2-bin.tar.g至/home/hadoop/Downloads目录下,重命名为hbase-0.98.21-hadoop2.tar.gz。

cd /home/hadoop/Downloads
mv hbase-0.98.21-hadoop2-bin.tar.gz hbase-0.98.21-hadoop2.tar.gz

###编译环境

Slider编译环境参照Apache Slider编译安装

Hbase编译命令

mvn clean package -DskipTests -Phbase-app-package -Dhbase.version=0.98.21-hadoop2 -Dpkg.version=0.98.21-hadoop2 -Dpkg.name=hbase-0.98.21-hadoop2.tar.gz -Dpkg.src=/home/hadoop/Downloads

生成Slider-hbase-app-package-${version}.zip。

${BUILD_DIR}/apache-slider-0.91.0-incubating/app-packages/hbase/target/slider-hbase-app-package-0.98.21-hadoop2.zip

##创建package 创建package

slider package --install --name HBASE --package slider-hbase-app-package-0.98.21-hadoop2.zip

查看package是否已经上传

hadoop fs -ls /user/hadoop/.slider/package/HBASE/slider-hbase-app-package-0.98.21-hadoop2.zip

替换新的package

slider package --install  --name HBASE --package slider-hbase-app-package-0.98.21-hadoop2.zip --relpacepkg

删除package

slider package --delete --name HBASE 

##创建slider app ###slider app配置文件 需要配置如下两个配置文件

${BUILD_DIR}/apache-slider-0.91.0-incubating1/app-packages/hbase/appConfig-default.json
${BUILD_DIR}/apache-slider-0.91.0-incubating1/app-packages/hbase/resources-default.json

拷贝以供修改使用

cd ${BUILD_DIR}/apache-slider-0.91.0-incubating1/app-packages/hbase
cp appConfig-default.json appConfig.json
cp resources-default.json resources.json

####appConfig.json appConfig.json配置为Hbase相关服务的参数配置,可以理解为通过此文件生成服务启动时的hbase-site.xml和hbase-env.sh

#####默认配置如下

{
    "schema": "http://example.org/specification/v2.0.0",
    "metadata": {
    },
    "global": {
        "application.def": ".slider/package/HBASE/slider-hbase-app-package-${pkg.version}.zip",
        "create.default.zookeeper.node": "true",
        "java_home": "/usr/jdk64/jdk1.7.0_67",
        "system_configs": "core-site",

        "site.global.app_user": "yarn",
        "site.global.app_version": "${hbase.version}",
        "site.global.app_root": "${AGENT_WORK_ROOT}/app/install/hbase-${hbase.version}",

        "site.global.metric_collector_host": "${NN_HOST}",
        "site.global.metric_collector_port": "6188",
        "site.global.metric_collector_lib": "",

        "site.global.hbase_instance_name": "instancename",
        "site.global.hbase_root_password": "secret",
        "site.global.user_group": "hadoop",
        "site.global.monitor_protocol": "http",
        "site.global.hbase_thrift_port": "${HBASE_THRIFT.ALLOCATED_PORT}",
        "site.global.hbase_thrift2_port": "${HBASE_THRIFT2.ALLOCATED_PORT}",
        "site.global.hbase_rest_port": "${HBASE_REST.ALLOCATED_PORT}",

        "site.hbase-env.hbase_master_heapsize": "1024m",
        "site.hbase-env.hbase_regionserver_heapsize": "1024m",

        "site.hbase-site.hbase.rootdir": "${DEFAULT_DATA_DIR}/data",
        "site.hbase-site.hbase.superuser": "${USER_NAME}",
        "site.hbase-site.hbase.tmp.dir": "${AGENT_WORK_ROOT}/work/app/tmp",
        "site.hbase-site.hbase.local.dir": "${hbase.tmp.dir}/local",
        "site.hbase-site.hbase.zookeeper.quorum": "${ZK_HOST}",
        "site.hbase-site.zookeeper.znode.parent": "${DEFAULT_ZK_PATH}",
        "site.hbase-site.hbase.regionserver.info.port": "0",
        "site.hbase-site.hbase.bulkload.staging.dir": "/user/${USER_NAME}/hbase-staging",
        "site.hbase-site.hbase.coprocessor.region.classes": "org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint",
        "site.hbase-site.hbase.master.info.port": "${HBASE_MASTER.ALLOCATED_PORT}",
        "site.hbase-site.hbase.regionserver.port": "0",
        "site.hbase-site.hbase.master.port": "0"
    },
    "components": {
        "slider-appmaster": {
            "jvm.heapsize": "1024M"
        }
    }
}

#####根据测试集群调整配置如下

{
    "schema": "http://example.org/specification/v2.0.0",
    "metadata": {
    },
    "global": {
        "application.def": ".slider/package/HBASE/slider-hbase-app-package-${pkg.version}.zip",
        "create.default.zookeeper.node": "true",
        "java_home": "/opt/beh/core/jdk",
        "system_configs": "core-site",

        "site.global.app_user": "hadoop",
        "site.global.app_version": "${pkg.version}",
        "site.global.app_root": "${AGENT_WORK_ROOT}/app/install/hbase-${pkg.version}",

        "site.global.metric_collector_host": "${NN_HOST}",
        "site.global.metric_collector_port": "6188",
        "site.global.metric_collector_lib": "",

        "site.global.hbase_instance_name": "instancename",
        "site.global.hbase_root_password": "secret",
        "site.global.user_group": "hadoop",
        "site.global.monitor_protocol": "http",
        "site.global.hbase_thrift_port": "${HBASE_THRIFT.ALLOCATED_PORT}",
        "site.global.hbase_thrift2_port": "${HBASE_THRIFT2.ALLOCATED_PORT}",
        "site.global.hbase_rest_port": "${HBASE_REST.ALLOCATED_PORT}",

        "site.hbase-env.hbase_master_heapsize": "1024m",
        "site.hbase-env.hbase_regionserver_heapsize": "1024m",

        "site.hbase-site.hbase.rootdir": "${DEFAULT_DATA_DIR}/data",
        "site.hbase-site.hbase.superuser": "hadoop",
        "site.hbase-site.hbase.tmp.dir": "${AGENT_WORK_ROOT}/work/app/tmp",
        "site.hbase-site.hbase.local.dir": "/opt/beh/data/hbase/local",
        "site.hbase-site.hbase.zookeeper.quorum": "breath",
        "site.hbase-site.zookeeper.znode.parent": "${DEFAULT_ZK_PATH}",
        "site.hbase-site.hbase.regionserver.info.port": "0",
        "site.hbase-site.hbase.bulkload.staging.dir": "/user/${USER_NAME}/hbase-staging",
        "site.hbase-site.hbase.coprocessor.region.classes": "org.apache.hadoop.hbase.security.access.SecureBulkLoadEndpoint",
        "site.hbase-site.hbase.master.info.port": "${HBASE_MASTER.ALLOCATED_PORT}",
        "site.hbase-site.hbase.regionserver.port": "0",
        "site.hbase-site.hbase.master.port": "0",
        "site.hbase-site.hbase.cluster.distributed": "true"
    },
    "components": {
        "slider-appmaster": {
            "jvm.heapsize": "1024M"
        }
    }
}

其中测试时如下几项修改比较重要:

  • JAVA_HOME
    "java_home": "/opt/beh/core/jdk",

  • Zookeeper集群主机列表,主机名逗号隔开
    "site.hbase-site.hbase.zookeeper.quorum": "breath",

  • hbase.local.dir参数设置,默认参数若不能使用导致服务不能启动 "site.hbase-site.hbase.local.dir": "/opt/beh/data/hbase/local"

  • hbase.cluster.distributed必须设置为true,表示为分布式,否则local模式导致hbase启动minizookeepercluster,与目前的zookeeper集群端口产生冲突。
    "site.hbase-site.hbase.cluster.distributed": "true"

####resource.json resource.json的配置主要是设置Hbase中不同服务启动时的container相关参数

#####默认配置如下

{
  "schema": "http://breath/specification/v2.0.0",
  "metadata": {
  },
  "global": {
    "yarn.log.include.patterns": "",
    "yarn.log.exclude.patterns": "",
    "yarn.component.instances": "1",
    "yarn.vcores": "1"
  },
  "components": {
    "slider-appmaster": {
      "yarn.memory": "1024"
    },
    "HBASE_MASTER": {
      "yarn.role.priority": "1",
      "yarn.component.instances": "1",
      "yarn.placement.escalate.seconds": "10",
      "yarn.memory": "1500"
    },
    "HBASE_REGIONSERVER": {
      "yarn.role.priority": "2",
      "yarn.component.instances": "2",
      "yarn.memory": "1500",
      "yarn.container.failure.threshold": "15",
      "yarn.placement.escalate.seconds": "60"
    },
    "HBASE_REST": {
      "yarn.role.priority": "3",
      "yarn.component.instances": "1",
      "yarn.component.placement.policy": "1",
      "yarn.memory": "556"
    },
    "HBASE_THRIFT": {
      "yarn.role.priority": "4",
      "yarn.component.instances": "1",
      "yarn.component.placement.policy": "1",
      "yarn.memory": "556"
    },
    "HBASE_THRIFT2": {
      "yarn.role.priority": "5",
      "yarn.component.instances": "1",
      "yarn.component.placement.policy": "1",
      "yarn.memory": "556"
    }
  }
}

###通过slider启动hbase 此处cl1为为启动的slider-hbase的一个实例名称。后文用${slider_application_name}表示

  • 创建

    slider create cl1 --template appConfig.json --resources resources.json

  • 启动

    slider start cl1

  • 关闭

    slider stop cl1

  • 摧毁

    slider destroy --force cl1

###通过YARN WEB端页面查看应用是否正常启动

输入图片说明

输入图片说明

输入图片说明

###登录Slider Hbase ####客户端程序 解压slider-hbase-app-package-0.98.21-hadoop2.zip包含两个python脚本,可以将这两个脚本放置在$HBASE_HOME/bin或者$SLIDER_HOME/bin

hbase-slider.py
hbase-slider

#####client端配置 配置默认加载为${USER_HOME}/{slider_application_name}/conf 将$HBASE_HOME/conf拷贝至此.

输入图片说明

输入图片说明

将此配置文件覆盖${USER_HOME}/{slider_application_name}/conf/hbase-site.xml

[hadoop[@ breath] ~]$ tree $HOME/cl1
/home/hadoop/cl1
└── conf
    ├── hadoop-metrics2-hbase.properties
    ├── hbase-env.cmd
    ├── hbase-env.sh
    ├── hbase-policy.xml
    ├── hbase-site.xml
    ├── log4j.properties
    └── regionservers

1 directory, 7 files

#####hbase-slider测试

[hadoop[@ breath] ~]$ hbase-slider cl1
/home/hadoop/cl1/conf/hbase-site.xml is -0.0106352635887 hours old
Running: hbase --config /home/hadoop/cl1/conf shell
16/09/08 16:23:41 INFO Configuration.deprecation: hadoop.native.lib is deprecated. Instead, use io.native.lib.available
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.98.14-hadoop2, r4e4aabb93b52f1b0fef6b66edd06ec8923014dec, Tue Aug 25 22:35:44 PDT 2015

hbase(main):001:0> list
TABLE                                                                                                                                                                            
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/beh/core/hbase/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/beh/core/hadoop/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.
0 row(s) in 5.8140 seconds

=> []
hbase(main):002:0> create 'testtable','info'
0 row(s) in 1.0310 seconds

hbase(main):004:0> put 'testtable','1','info:name','zyl'
0 row(s) in 0.6850 seconds

hbase(main):006:0> scan 'testtable'
ROW                                           COLUMN+CELL                                                                                                                        
 1                                            column=info:name, timestamp=1473323556298, value=zyl                                                                               
1 row(s) in 0.0760 seconds

© 著作权归作者所有

Yulong_
粉丝 10
博文 131
码字总数 235862
作品 0
朝阳
部门经理
私信 提问
Apache Slider编译安装

Apache Slider 简介 Apache Slider目前是Apache二级孵化项目,主要用途是在YARN上部署用户已有的服务或者组件,如:hbase,storm,kafka. 下载地址:Apache Slider Download,目前最新0.91.0版本 ...

Yulong_
2016/09/08
0
0
Hbase 中文参考指南 3.0 校对活动发车了~

参与方式:github.com/apachecn/hb… 整体进度:github.com/apachecn/hb… 项目仓库:github.com/apachecn/hb… 整体进度 章节 贡献者 进度 Preface @xixici 100% Getting Started @xixici 1......

ApacheCN_飞龙
03/22
0
0
HBase 参考指南 3.0 翻译活动期待大家的参与

参与方式:github.com/apachecn/hb… 整体进度:github.com/apachecn/hb… 项目仓库:github.com/apachecn/hb… 贡献指南 请您勇敢地去翻译和改进翻译。虽然我们追求卓越,但我们并不要求您做...

ApacheCN_飞龙
02/15
0
0
hbase单机模式的安装及启动

从apache官网上下载hbase的稳定版本:http://mirror.bit.edu.cn/apache/hbase/stable/hbase-1.1.2-bin.tar.gz 解压到本机上的任何一个目录,在我的电脑上是/home/jason/hbase:tar xvfz hbas...

z_jordon
2015/11/04
0
0
Apache HBase 1.2.5 发布,分布式数据库

Apache HBase 1.2.5 发布了,HBase 1.2.5 是 HBase 1.2 系列的最新维护版本,主要是为 Hadoop 和 NoSQL 社区带来稳定可靠的数据库。此版本包含自 1.2.4 版本发布以来的 50 多个已解决的问题。...

局长
2017/03/28
892
1

没有更多内容

加载失败,请刷新页面

加载更多

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。

import java.util.Arrays; public class Solution { public int MoreThanHalfNum_Solution(int [] array) { Arrays.sort(array); int count=0; for(int i=0;i<array.le......

南桥北木
33分钟前
2
0
关于FLAG_ACTIVITY_NEW_TASK的使用

参考文章: https://blog.csdn.net/u010389391/article/details/78558475 Context调用startActivity, 有部分情况会报出如下错误: Caused by: android.util.AndroidRuntimeException: Calli......

Gemini-Lin
49分钟前
1
0
Python开发工具:Webware for Python

原文来之:https://www.oschina.net/p/webware+for+python 前言 Webware for Python 是一组 Python 包和工具用来开发面向对象的 Web 应用。良好的设计模式,包含一个快速的应用服务器、Servl...

A_裙232550246
58分钟前
2
0
高并发场景下的缓存有哪些常见的问题?

一、缓存一致性问题 当数据时效性要求很高时,需要保证缓存中的数据与数据库中的保持一致,而且需要保证缓存节点和副本中的数据也保持一致,不能出现差异现象。 这就比较依赖缓存的过期和更新...

别打我会飞
今天
3
0
List list = new ArrayList()为何父类引用指向子类对象(多态)

态:要有继承,方法的重写,父类引用指向子类对象 疑问一:父类引用指向子类对象 与指向父类对象 Animal cat = new Cat(); //向上转型。 父类引用指向子类对象,该引用不能再访问子类新增加的...

architect刘源源
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部