有人说过“让Hadoop开发像家庭作业一样简单”,容器技术的出现让这成为可能,可以用Docker封装HBase运行环境,通过统一的接口来运行。本文将介绍如何在十分钟内跑起你的HBase应用。

首先,我们需要安装HBase集群来开发和测试,下载HBase源码运行单机版固然可以,前提是你已经安装配置好Java和Maven环境,或者你可以运行命令docker run -d --net=host tobegit3hub/standalone-hbase-0.94

这个命令会下载名为standalone-hbase-0.94的Docker镜像,以Daemon形式运行。具体它做了什么呢?可以查看它的Dockerfile,原来就是安装Java7、下载HBase源码、然后编译和运行单机版HBase。如果镜像已经下载,只需几秒钟就可以创建干净的HBase开发环境了。

然后,我们可以编写HBase应用了,我已经开发了一个smoke-hbase的程序,它会在本地的HBase集群创建表、插入数据、读数据、删除数据和删除表。怎么运行呢?也是一行命令docker run -i -t --net=host tobegit3hub/smoke-hbase

运行结果如下,不管你在什么系统执行,Docker可以保证运行结果是Repeatable和Predictable的。

不管你对Docker是否感冒,强烈建议运行上面两条命令,你只需安装Docker就可以了。Ubuntu通过apt-get install docker.io安装,CentOS可以执行yum install docker,Mac用户只要下载boot2docker即可。

最后还有一个问题,如何修改应用的代码?一种方式是直接进入Docker容器修改,这样就只能在tty(命令行)操作了,另一种方式是使用Docker的volume特性。例如执行docker run -i -t --net=host --privileged -v /:/host tobegit3hub/jde,这会创建一个安装好Java7和Maven的开发环境,你使用IDE修改完代码后,Docker容器能直接读本地文件系统的代码,然后在容器内运行你的应用就可以了。

HBase应用快速开发的更多相关文章

  1. arcpy+PyQt+py2exe快速开发桌面端ArcGIS应用程序

    前段时间有一个项目,大体是要做一个GIS数据处理工具. 一般的方法是基于ArcObjects来进行开发,因为我对ArcObjects不太熟悉,所以就思考有没有其他简单快速的方法来做. 在查看ArcGI ...

  2. 快速开发Grunt插件----压缩js模板

    前言 Grunt是一款前端构建工具,帮助我们自动化搭建前端工程.它可以实现自动对js.css.html文件的合并.压缩等一些列操作.Grunt有很多插件,每一款插件实现某个功能,你可以通过npm命名去 ...

  3. winform快速开发平台->让有限的资源创造无限的价值!

    最近一直在维护一套自己的快速开发平台. 主要应对针对C/S架构下的项目.然而对winform这快,还真没有看到过相对好的快速开发平台, 何为快速,在博客园逛了了好久, 预览了很多通用权限管理系统. 确 ...

  4. winform快速开发平台 -> 通用权限管理之动态菜单

    这几个月一直忙APP的项目,没来得及更新项目,想想该抽出时间整理一下开发思路,跟大家分享,同时也希望得到宝贵的建议. 先说一下我们的权限管理的的设计思路,首先一个企业信息化管理系统一定会用到权限管理, ...

  5. winform快速开发平台 -> 工作流组件(仿GooFlow)

    对于web方向的工作流,一直在用gooflow对于目前我的winform开发平台却没有较好的工作流组件.  针对目前的项目经验告诉我们.一个工作流控件是很必要的. 当然在winform方面的工作流第三 ...

  6. winform快速开发平台 -> 快速绑定ComboBox数据控件

    通常我们在处理编辑窗体时.往往会遇到数据绑定.例如combobox控件绑定数据字典可能是我们经常用到的.然而在我的winform快速开发平台中我是如何处理这个频繁的操作呢? 首先,我们要绑定combo ...

  7. winform快速开发平台 -> 基础组件之分页控件

    一个项目控件主要由及部分的常用组件,当然本次介绍的是通用分页控件. 处理思想:我们在处理分页过程中主要是针对数据库操作. 一般情况主要是传递一些开始位置,当前页数,和数据总页数以及相关关联的业务逻辑. ...

  8. 使用GizwitsOpenAPI,快速开发轻应用

    导读:使用机智云提供的Open API(Http / WebSocket),可以快速开发网页或微信应用等基于html的轻应用,用于管理和控制智能设备.机智云 Open API 主要帮助开发者通过 HT ...

  9. CYQ.Data 快速开发EasyUI

    EasyUI: 前端UI框架之一, 相对ExtJs来说,算是小了,这两天,抽空看了下EasyUI的相关知识,基本上可以和大伙分享一下: 官网: http://www.jeasyui.com/ 学习的话 ...

随机推荐

  1. java使用格式String型转成Date型

    public class TimeTwo { public static void main(String[] args) throws ParseException{ String s = &quo ...

  2. 小谈对Python的认知与期望

    18级新生,在大学之前并未接触过程序语言编程,在众多语言编程中只对C语言有个名字上认知.在上个学期初次了解到Python语言,计算机老师表示Python是现在编程语言中如雨后春笋般的发展飞速的计算机语 ...

  3. SoapUI之http接口测试

    SoapUI是一个开源测试工具,可以进行webservice/http协议的功能.负载.安全性测试.SoapUI pro是SoapUI的商业非开源版本,实现的功能会更多一点.一般的测试场景,用开源版本 ...

  4. PHP取凌晨时间戳

    百度出来的没一个正确答案 在此纠正 strtotime('today midnight'); // 今天凌晨时间戳 strtotime('+1 day midnight'); // 明天凌晨时间戳

  5. vue+uwsgi+nginx部署前后端分离项目

    前后端分离,vue前端提供静态页面,且可以向后台发起get,post等restful请求. django后台提供数据支撑,返回json数据,返回给vue,进行数据页面渲染 后端 创建虚拟环境 解决dj ...

  6. python之路-python2.x与python3.x区别

    Python崇尚优美.清晰.简单,是一个优秀并广泛使用的语言. Python2.x 与 Python3.x的区别: python2.x:源码混乱,重复代码较多,冗余. python3.x:源码规范,崇 ...

  7. [Oracle][DATAGUARD] PHYSICAL STANDBY环境里,使用CATALOG管理Primary和Standby

    1.先使用控制文件构筑好PHYSICAL STANDBY环境(Primary:Single 11.2.0.4,Standby Single 11.2.0.4) 2.构筑好Catalog用的服务器(Ca ...

  8. 使用该方法在ubuntu下安装flashplayer的rpm包

    Ubuntu的软件包格式是deb,如果要安装rpm的包,则要先用alien把rpm转换成deb. sudo apt-get install alien #alien默认没有安装,所以首先要安装它 su ...

  9. DataGridView中的DataGridViewComboBoxColumn 让其值改变联动

    在工作中自己也遇到过这类问题, 最近也有很多人问我这个问题, 就此机会写出来记录一下. 首先,顾名思义,值改变事件我们会想到 dataGridView1_CellValueChanged 这个事件,想 ...

  10. centos7 下zookeeper 部署 单机多实例模式

    centos7 下zookeeper 部署 本文参考https://www.linuxidc.com/Linux/2016-09/135052.htm 1.创建/usr/local/zookeeper ...