0

0

HBase Java编程示例_PHP教程

php中文网

php中文网

发布时间:2016-07-12 08:57:20

|

1507人浏览过

|

来源于php中文网

原创

PaperFake
PaperFake

AI写论文

下载

hbase java编程示例

HBase Java编程示例_PHP教程helloworld.zip
  1. package elementary;

  2. import java.io.ioexception;
  3. import java.text.simpledateformat;
  4. import java.util.arraylist;
  5. import java.util.date;
  6. import java.util.list;
  7. import java.util.concurrent.atomic.atomicinteger;
  8. import java.util.concurrent.executorservice;
  9. import java.util.concurrent.executors;
  10. import java.util.concurrent.timeunit;

  11. import org.apache.hadoop.conf.configuration;
  12. import org.apache.hadoop.hbase.cell;
  13. import org.apache.hadoop.hbase.hbaseconfiguration;
  14. import org.apache.hadoop.hbase.hcolumndescriptor;
  15. import org.apache.hadoop.hbase.htabledescriptor;
  16. import org.apache.hadoop.hbase.masternotrunningexception;
  17. import org.apache.hadoop.hbase.tablename;
  18. import org.apache.hadoop.hbase.zookeeperconnectionexception;
  19. import org.apache.hadoop.hbase.client.delete;
  20. import org.apache.hadoop.hbase.client.get;
  21. import org.apache.hadoop.hbase.client.admin;
  22. import org.apache.hadoop.hbase.client.bufferedmutator;
  23. import org.apache.hadoop.hbase.client.bufferedmutatorparams;
  24. import org.apache.hadoop.hbase.client.connection;
  25. import org.apache.hadoop.hbase.client.connectionfactory;
  26. import org.apache.hadoop.hbase.client.table;
  27. import org.apache.hadoop.hbase.client.put;
  28. import org.apache.hadoop.hbase.client.result;
  29. import org.apache.hadoop.hbase.client.resultscanner;
  30. import org.apache.hadoop.hbase.client.scan;
  31. import org.apache.hadoop.hbase.util.bytes;
  32. import org.apache.hadoop.util.threadutil;

  33. public class helloworld {
  34. private static configuration conf = null;
  35. private static connection conn = null;
  36. private static admin admin = null;
  37. public static atomicinteger count = new atomicinteger();

  38. /**
  39. * 初始化配置
  40. */
  41. static {
  42. conf = hbaseconfiguration.create();
  43. //如果沒有配置文件,一定要記得手動宣告

  44. conf.set("hbase.zookeeper.quorum", "10.148.137.143");
  45. conf.set("hbase.zookeeper.property.clientport", "2181");
  46. }

  47. static {
  48. try {
  49. conn = connectionfactory.createconnection();
  50. admin = conn.getadmin();
  51. } catch (ioexception e) {
  52. e.printstacktrace();
  53. }
  54. }

  55. static public class mythread extends thread
  56. {
  57. int _start;
  58. string _tablename;
  59. connection conn;
  60. //bufferedmutator table;
  61. table table;

  62. public mythread(int start, string tablename) {
  63. _start = start;
  64. _tablename = tablename;
  65. }

  66. public void run() {
  67. string tablename = _tablename;
  68. thread current = thread.currentthread();
  69. long thread_id = current.getid();
  70. system.out.printf("thread[%d] run\n", thread_id);

  71. try {
  72. conn = connectionfactory.createconnection();
  73. //bufferedmutatorparams params = new bufferedmutatorparams(tablename.valueof(tablename));
  74. //params.writebuffersize(1024 * 4);
  75. //table = conn.getbufferedmutator(params);
  76. table = conn.gettable(tablename.valueof(tablename));

  77. for (int j=_start; j
  78. for (int i=0; i
  79. // zkb_0_0
  80. string zkb = "zkb_" + string.valueof(_start) + "_" + string.valueof(i);
  81. put put = new put(bytes.tobytes(zkb));
  82. put.addcolumn(bytes.tobytes("grade"),bytes.tobytes("field1"),bytes.tobytes(string.valueof(i+0)));
  83. put.addcolumn(bytes.tobytes("grade"),bytes.tobytes("field2"),bytes.tobytes(string.valueof(i+1)));
  84. put.addcolumn(bytes.tobytes("grade"),bytes.tobytes("field3"),bytes.tobytes(string.valueof(i+2)));
  85. put.addcolumn(bytes.tobytes("grade"),bytes.tobytes("field4"),bytes.tobytes(string.valueof(i+3)));
  86. put.addcolumn(bytes.tobytes("grade"),bytes.tobytes("field5"),bytes.tobytes(string.valueof(i+4)));
  87. put.addcolumn(bytes.tobytes("grade"),bytes.tobytes("field6"),bytes.tobytes(string.valueof(i+5)));
  88. put.addcolumn(bytes.tobytes("grade"),bytes.tobytes("field7"),bytes.tobytes(string.valueof(i+6)));
  89. put.addcolumn(bytes.tobytes("grade"),bytes.tobytes("field8"),bytes.tobytes(string.valueof(i+7)));
  90. put.addcolumn(bytes.tobytes("grade"),bytes.tobytes("field9"),bytes.tobytes(string.valueof(i+8)));
  91. put.addcolumn(bytes.tobytes("grade"),bytes.tobytes("field10"),bytes.tobytes(string.valueof(i+9)));
  92. put.addcolumn(bytes.tobytes("grade"),bytes.tobytes("field11"),bytes.tobytes(string.valueof(i+10)));
  93. put.addcolumn(bytes.tobytes("grade"),bytes.tobytes("field12"),bytes.tobytes(string.valueof(i+11)));
  94. put.addcolumn(bytes.tobytes("grade"),bytes.tobytes("field13"),bytes.tobytes(string.valueof(i+12)));
  95. put.addcolumn(bytes.tobytes("grade"),bytes.tobytes("field14"),bytes.tobytes(string.valueof(i+13)));
  96. put.addcolumn(bytes.tobytes("grade"),bytes.tobytes("field15"),bytes.tobytes(string.valueof(i+14)));
  97. //table.mutate(put);
  98. table.put(put);

  99. int m = helloworld.count.incrementandget();
  100. if (m % 10000 == 0) {
  101. date dt = new date();
  102. simpledateformat sdf = new simpledateformat("yyyy-mm-dd hh:mm:ss aa");
  103. string now = sdf.format(dt);
  104. system.out.printf("[%s] thread[%d] m=%d, j=%d, i=%d\n", now, thread_id, m, j, i);
  105. }
  106. }
  107. }

  108. system.out.printf("thread[%d] over\n", thread_id);
  109. }
  110. catch (exception e) {
  111. e.printstacktrace();
  112. }
  113. }
  114. }

  115. /**
  116. * 建立表格
  117. * @param tablename
  118. * @param cfs
  119. */
  120. public static void createtable(string tablename, string[] cfs){
  121. try {
  122. if (admin.tableexists(tablename.valueof(tablename))) {
  123. system.out.println("table already exists!");
  124. } else {
  125. htabledescriptor tabledesc = new htabledescriptor(tablename.valueof(tablename));
  126. for (int i = 0; i
  127. hcolumndescriptor desc = new hcolumndescriptor(cfs[i]);
  128. desc.setmaxversions(3650);
  129. tabledesc.addfamily(desc);
  130. }

  131. byte[][] splitkeys = new byte[][] {
  132. bytes.tobytes("zkb_0_0"),
  133. bytes.tobytes("zkb_10_0"),
  134. bytes.tobytes("zkb_20_0"),
  135. bytes.tobytes("zkb_30_0"),
  136. bytes.tobytes("zkb_40_0"),
  137. bytes.tobytes("zkb_50_0"),
  138. bytes.tobytes("zkb_60_0"),
  139. bytes.tobytes("zkb_70_0"),
  140. bytes.tobytes("zkb_80_0"),
  141. bytes.tobytes("zkb_90_0"),
  142. bytes.tobytes("zkb_100_0")
  143. };
  144. admin.createtable(tabledesc, splitkeys);
  145. admin.close();
  146. system.out.println("create table " + tablename + " ok.");
  147. }
  148. } catch (masternotrunningexception e) {
  149. e.printstacktrace();
  150. } catch (zookeeperconnectionexception e) {
  151. e.printstacktrace();
  152. } catch (ioexception e) {
  153. e.printstacktrace();
  154. }
  155. }

  156. /**
  157. * 刪除表格
  158. * @param tablename
  159. */
  160. public static void deletetable(string tablename){
  161. try {
  162. //connection conn = connectionfactory.createconnection();
  163. //admin admin = conn.getadmin();
  164. admin.disabletable(tablename.valueof(tablename));
  165. admin.deletetable(tablename.valueof(tablename));
  166. system.out.println("delete table " + tablename + " ok.");
  167. } catch (ioexception e) {
  168. e.printstacktrace();
  169. }
  170. }

  171. /**
  172. * 刪除一筆資料
  173. * @param tablename
  174. * @param rowkey
  175. */
  176. public static void delrecord (string tablename, string rowkey){
  177. try {
  178. table table = conn.gettable(tablename.valueof(tablename));

  179. list list = new arraylist();
  180. delete del = new delete(rowkey.getbytes());
  181. list.add(del);
  182. table.delete(list);
  183. system.out.println("del recored " + rowkey + " ok.");
  184. } catch (ioexception e) {
  185. e.printstacktrace();
  186. }
  187. }

  188. /**
  189. * 取得一筆資料
  190. * @param tablename
  191. * @param rowkey
  192. */
  193. public static void getonerecord (string tablename, string rowkey){
  194. try {
  195. table table = conn.gettable(tablename.valueof(tablename));

  196. get get = new get(rowkey.getbytes());
  197. result rs = table.get(get);
  198. list list = rs.listcells();
  199. for(cell cell:list){
  200. system.out.print(new string(cell.getrowarray(),cell.getrowoffset(),cell.getrowlength()) + " " );
  201. system.out.print(new string(cell.getfamilyarray(),cell.getfamilyoffset(),cell.getfamilylength()) + ":" );
  202. system.out.print(new string(cell.getqualifierarray(),cell.getqualifieroffset(),cell.getqualifierlength()) + " " );
  203. system.out.print(cell.gettimestamp() + " " );
  204. system.out.print(new string(cell.getvaluearray(),cell.getvalueoffset(),cell.getvaluelength()) + " " );
  205. system.out.println("");
  206. }
  207. } catch (ioexception e) {
  208. e.printstacktrace();
  209. }
  210. }

  211. /**
  212. * 取得所有資料
  213. * @param tablename
  214. */
  215. public static void getallrecord (string tablename) {
  216. try{
  217. //connection conn = connectionfactory.createconnection();
  218. table table = conn.gettable(tablename.valueof(tablename));

  219. scan scan = new scan();
  220. resultscanner resultscanner = table.getscanner(scan);
  221. for(result rs:resultscanner){
  222. list list = rs.listcells();
  223. for(cell cell:list){
  224. system.out.print(new string(cell.getrowarray(),cell.getrowoffset(),cell.getrowlength()) + " " );
  225. system.out.print(new string(cell.getfamilyarray(),cell.getfamilyoffset(),cell.getfamilylength()) + ":" );
  226. system.out.print(new string(cell.getqualifierarray(),cell.getqualifieroffset(),cell.getqualifierlength()) + " " );
  227. system.out.print(cell.gettimestamp() + " " );
  228. system.out.print(new string(cell.getvaluearray(),cell.getvalueoffset(),cell.getvaluelength()) + " " );
  229. system.out.println("");
  230. }
  231. }
  232. } catch (ioexception e){
  233. e.printstacktrace();
  234. }
  235. }

  236. /**
  237. * 取得family清單
  238. * @param tablename
  239. * @return
  240. */
  241. public static arraylist getallfamilyname(string tablename) {
  242. arraylist familyname_list = new arraylist();
  243. try{
  244. //connection conn = connectionfactory.createconnection();
  245. table table = conn.gettable(tablename.valueof(tablename));

  246. htabledescriptor htabledescriptor = table.gettabledescriptor();
  247. hcolumndescriptor[] hdlist = htabledescriptor.getcolumnfamilies();
  248. for(int i=0;i
  249. hcolumndescriptor hd = hdlist[i];
  250. familyname_list.add(hd.getnameasstring());
  251. }
  252. } catch (ioexception e){
  253. e.printstacktrace();
  254. }
  255. return familyname_list;
  256. }

  257. // java -cp helloworld.jar:`ls lib/*.jar|awk '{printf("%s:", $0)}'` elementary.helloworld 5
  258. public static void main(string[] args) {
  259. system.out.println("helloworldx");
  260. if (args.length > 0)
  261. system.out.println(args[0]);

  262. int start = 0;
  263. if (args.length > 1)
  264. start = integer.valueof(args[1]);
  265. if (start
  266. start = 0;

  267. int num_threads = 16;
  268. if (args.length > 2)
  269. num_threads = integer.valueof(args[2]);

  270. try {
  271. string tablename = "scores";
  272. string[] familys = {"grade", "course"};
  273. helloworld.createtable(tablename, familys);

  274. //executorservice thread_pool = executors.newsinglethreadexecutor();
  275. executorservice thread_pool = executors.newfixedthreadpool(num_threads);
  276. thread[] pool = new helloworld.mythread[80];
  277. for (int i=0; i
  278. pool[i] = new helloworld.mythread(i, tablename);
  279. thread_pool.execute(pool[i]);
  280. }

  281. thread_pool.shutdown();
  282. system.out.println("over");
  283. }
  284. catch (exception e) {
  285. e.printstacktrace();
  286. }
  287. }

  288. }

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1109310.htmlTechArticleHBase Java编程示例 HelloWorld.zip package elementary; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import j...

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

26

2026.03.13

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

46

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

178

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

51

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

92

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

102

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

227

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

532

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

171

2026.03.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 21.2万人学习

Java 教程
Java 教程

共578课时 | 81.5万人学习

Uniapp从零开始实现新闻资讯应用
Uniapp从零开始实现新闻资讯应用

共64课时 | 7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号