HBase应用快速开发
有人说过“让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应用快速开发的更多相关文章
- arcpy+PyQt+py2exe快速开发桌面端ArcGIS应用程序
前段时间有一个项目,大体是要做一个GIS数据处理工具. 一般的方法是基于ArcObjects来进行开发,因为我对ArcObjects不太熟悉,所以就思考有没有其他简单快速的方法来做. 在查看ArcGI ...
- 快速开发Grunt插件----压缩js模板
前言 Grunt是一款前端构建工具,帮助我们自动化搭建前端工程.它可以实现自动对js.css.html文件的合并.压缩等一些列操作.Grunt有很多插件,每一款插件实现某个功能,你可以通过npm命名去 ...
- winform快速开发平台->让有限的资源创造无限的价值!
最近一直在维护一套自己的快速开发平台. 主要应对针对C/S架构下的项目.然而对winform这快,还真没有看到过相对好的快速开发平台, 何为快速,在博客园逛了了好久, 预览了很多通用权限管理系统. 确 ...
- winform快速开发平台 -> 通用权限管理之动态菜单
这几个月一直忙APP的项目,没来得及更新项目,想想该抽出时间整理一下开发思路,跟大家分享,同时也希望得到宝贵的建议. 先说一下我们的权限管理的的设计思路,首先一个企业信息化管理系统一定会用到权限管理, ...
- winform快速开发平台 -> 工作流组件(仿GooFlow)
对于web方向的工作流,一直在用gooflow对于目前我的winform开发平台却没有较好的工作流组件. 针对目前的项目经验告诉我们.一个工作流控件是很必要的. 当然在winform方面的工作流第三 ...
- winform快速开发平台 -> 快速绑定ComboBox数据控件
通常我们在处理编辑窗体时.往往会遇到数据绑定.例如combobox控件绑定数据字典可能是我们经常用到的.然而在我的winform快速开发平台中我是如何处理这个频繁的操作呢? 首先,我们要绑定combo ...
- winform快速开发平台 -> 基础组件之分页控件
一个项目控件主要由及部分的常用组件,当然本次介绍的是通用分页控件. 处理思想:我们在处理分页过程中主要是针对数据库操作. 一般情况主要是传递一些开始位置,当前页数,和数据总页数以及相关关联的业务逻辑. ...
- 使用GizwitsOpenAPI,快速开发轻应用
导读:使用机智云提供的Open API(Http / WebSocket),可以快速开发网页或微信应用等基于html的轻应用,用于管理和控制智能设备.机智云 Open API 主要帮助开发者通过 HT ...
- CYQ.Data 快速开发EasyUI
EasyUI: 前端UI框架之一, 相对ExtJs来说,算是小了,这两天,抽空看了下EasyUI的相关知识,基本上可以和大伙分享一下: 官网: http://www.jeasyui.com/ 学习的话 ...
随机推荐
- 数据类型、运算符及Scanner类练习
数字加密.要求输入一个四位的正整数,每位数字加5再除以10取余,并替换该数字,再千位数与个位数互换,十位数与百位数互换. import java.util.Scanner;/** * 加密数字问题 * ...
- Intellij 代理抛出异常错误: java.rmi.server.ExportException: Port already in use: 1099,端口被占用
代理抛出异常错误: java.rmi.server.ExportException: Port already in use: 1099 端口被占用 解决方案: 1.查找出占用进程id 2.杀死进程 ...
- docker开发实践
一:docker的定义和使用场景: Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VM ...
- 开发一个简单的chrome插件-解析本地markdown文件
准备软件环境 1. 软件环境 首先,需要使用到的软件和工具环境如下: 一个最新的chrome浏览器 编辑器vscode 2. 使用的js库 代码高亮库:prismjs https://prismjs. ...
- Html骨架、基本语法
万丈高楼平地起,勿贪快,脚踏实地,才能仰望星空 一.HTML骨架 标准骨架 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitio ...
- Git 工具 - 储藏(Stashing)
储藏(Stashing) 经常有这样的事情发生,当你正在进行项目中某一部分的工作,里面的东西处于一个比较杂乱的状态,而你想转到其他分支上进行一些工作.问题是,你不想提交进行了一半的工作,否则以后你无法 ...
- java项目 在 linux ubuntu 上的部署相关
--------------------JDK在linux ubuntu上的安装------------------------------------------------------------ ...
- Java中java.util.concurrent包下的4中线程池代码示例
先来看下ThreadPool的类结构 其中红色框住的是常用的接口和类(图片来自:https://blog.csdn.net/panweiwei1994/article/details/78617117 ...
- Python条件判断 if-else for循环 while循环 break continue
条件判断 if-else if-else语句是通过if 后面的是否为真,当为True,就执行if代码块后面的,如果为False,同时又有else语句,执行else后面的内容.没有else,什么都不执行 ...
- 类 Arrays StringBuilder 跟 StringBuffer 的异同 SimpleDateFormat
类 String 同:起连接字符串类型作用 异: StringBuffer //线程安全 效率慢 StringBuilder //线程不安全 效率快 类 Arrays copyOf ( ...