热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

eclipse+HBASE开发环境搭建(已实践)

开发准备:jdk1.8.45hbase-1.2.2(windows下和linux个留一份)hadoop-2.7.2(linu

开发准备:

  jdk1.8.45

  hbase-1.2.2(windows下和linux个留一份)

  hadoop-2.7.2(linux一份)

  Linux系统(centos或其它)

  Hadoop安装环境

  HBase安装环境

 

具体操作步骤如下:

1. Eclipse中新建Maven项目, type为maven-archetype-quickstart,工程名为MyHBase

2. 将hadoop集群和hbase集群的配置文件放到如下路径:

/src/main/resources/hadoop
/src/main/resources/hbase
3. 将配置路径加入到classpath中:

4. 最终的目录结构

 

5. 编辑hbase-site.xml文件内容为:

  

6. 将Linux下部署的HBase集群下的lib目录拷贝到Windows下,并在eclipse中将lib(里面的hadoop库可能与安装的hadoop版本不一致,后续可以考虑版本统一)下的所有库添加到工程:

7. 新建类HBaseTest ,内容如下:

package com.hbase.demo;
//package com.eric.hbase;import java.io.IOException;
import java.util.ArrayList;
import java.util.List;import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.MasterNotRunningException;
import org.apache.hadoop.hbase.ZooKeeperConnectionException;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HBaseAdmin;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.util.Bytes;public class HBaseTest {private static final String TABLE_NAME = "demo_table";public static Configuration conf = null;public HTable table = null;public HBaseAdmin admin = null;static {conf = HBaseConfiguration.create();System.out.println(conf.get("hbase.zookeeper.quorum"));}/*** 创建一张表*/public static void creatTable(String tableName, String[] familys)throws Exception {HBaseAdmin admin = new HBaseAdmin(conf);if (admin.tableExists(tableName)) {System.out.println("table already exists!");} else {HTableDescriptor tableDesc = new HTableDescriptor(tableName);for (int i = 0; i ) {tableDesc.addFamily(new HColumnDescriptor(familys[i]));}admin.createTable(tableDesc);System.out.println("create table " + tableName + " ok.");}}/*** 删除表*/public static void deleteTable(String tableName) throws Exception {try {HBaseAdmin admin = new HBaseAdmin(conf);admin.disableTable(tableName);admin.deleteTable(tableName);System.out.println("delete table " + tableName + " ok.");} catch (MasterNotRunningException e) {e.printStackTrace();} catch (ZooKeeperConnectionException e) {e.printStackTrace();}}/*** 插入一行记录*/public static void addRecord(String tableName, String rowKey,String family, String qualifier, String value) throws Exception {try {HTable table = new HTable(conf, tableName);Put put = new Put(Bytes.toBytes(rowKey));put.add(Bytes.toBytes(family), Bytes.toBytes(qualifier),Bytes.toBytes(value));table.put(put);System.out.println("insert recored " + rowKey + " to table "+ tableName + " ok.");} catch (IOException e) {e.printStackTrace();}}/*** 删除一行记录*/public static void delRecord(String tableName, String rowKey)throws IOException {HTable table = new HTable(conf, tableName);List list = new ArrayList();Delete del = new Delete(rowKey.getBytes());list.add(del);table.delete(list);System.out.println("del recored " + rowKey + " ok.");}/*** 查找一行记录*/public static void getOneRecord(String tableName, String rowKey)throws IOException {HTable table = new HTable(conf, tableName);Get get = new Get(rowKey.getBytes());Result rs = table.get(get);for (KeyValue kv : rs.raw()) {System.out.print(new String(kv.getRow()) + " ");System.out.print(new String(kv.getFamily()) + ":");System.out.print(new String(kv.getQualifier()) + " ");System.out.print(kv.getTimestamp() + " ");System.out.println(new String(kv.getValue()));}}/*** 显示所有数据*/public static void getAllRecord(String tableName) {try {HTable table = new HTable(conf, tableName);Scan s = new Scan();ResultScanner ss = table.getScanner(s);for (Result r : ss) {for (KeyValue kv : r.raw()) {System.out.print(new String(kv.getRow()) + " ");System.out.print(new String(kv.getFamily()) + ":");System.out.print(new String(kv.getQualifier()) + " ");System.out.print(kv.getTimestamp() + " ");System.out.println(new String(kv.getValue()));}}} catch (IOException e) {e.printStackTrace();}}public static void main(String[] args) {// TODO Auto-generated method stubtry {String tablename = "scores";String[] familys = { "grade", "course" };HBaseTest.creatTable(tablename, familys);// add record zkbHBaseTest.addRecord(tablename, "zkb", "grade", "", "5");HBaseTest.addRecord(tablename, "zkb", "course", "", "90");HBaseTest.addRecord(tablename, "zkb", "course", "math", "97");HBaseTest.addRecord(tablename, "zkb", "course", "art", "87");// add record baoniuHBaseTest.addRecord(tablename, "baoniu", "grade", "", "4");HBaseTest.addRecord(tablename, "baoniu", "course", "math", "89");System.out.println("===========get one record========");HBaseTest.getOneRecord(tablename, "zkb");System.out.println("===========show all record========");HBaseTest.getAllRecord(tablename);System.out.println("===========del one record========");HBaseTest.delRecord(tablename, "baoniu");HBaseTest.getAllRecord(tablename);System.out.println("===========show all record========");HBaseTest.getAllRecord(tablename);} catch (Exception e) {e.printStackTrace();}}}

8. 如果报错查看日志,修改C:\Windows\System32\drivers\etc\HOSTS:

  112.120.41.159 hadoop

9. 右键-->Run as -->java application.

 


转:https://www.cnblogs.com/foreverstars/p/5818015.html



推荐阅读
  • 本文详细介绍了如何在Java Web服务器上部署音视频服务,并提供了完整的验证流程。以AnyChat为例,这是一款跨平台的音视频解决方案,广泛应用于需要实时音视频交互的项目中。通过具体的部署步骤和测试方法,确保了音视频服务的稳定性和可靠性。 ... [详细]
  • HBase Java API 进阶:过滤器详解与应用实例
    本文详细探讨了HBase 1.2.6版本中Java API的高级应用,重点介绍了过滤器的使用方法和实际案例。首先,文章对几种常见的HBase过滤器进行了概述,包括列前缀过滤器(ColumnPrefixFilter)和时间戳过滤器(TimestampsFilter)。此外,还详细讲解了分页过滤器(PageFilter)的实现原理及其在大数据查询中的应用场景。通过具体的代码示例,读者可以更好地理解和掌握这些过滤器的使用技巧,从而提高数据处理的效率和灵活性。 ... [详细]
  • 在搭建Hadoop集群以处理大规模数据存储和频繁读取需求的过程中,经常会遇到各种配置难题。本文总结了作者在实际部署中遇到的典型问题,并提供了详细的解决方案,帮助读者避免常见的配置陷阱。通过这些经验分享,希望读者能够更加顺利地完成Hadoop集群的搭建和配置。 ... [详细]
  • Hadoop 2.6 主要由 HDFS 和 YARN 两大部分组成,其中 YARN 包含了运行在 ResourceManager 的 JVM 中的组件以及在 NodeManager 中运行的部分。本文深入探讨了 Hadoop 2.6 日志文件的解析方法,并详细介绍了 MapReduce 日志管理的最佳实践,旨在帮助用户更好地理解和优化日志处理流程,提高系统运维效率。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 本文介绍了如何使用Flume从Linux文件系统收集日志并存储到HDFS,然后通过MapReduce清洗数据,使用Hive进行数据分析,并最终通过Sqoop将结果导出到MySQL数据库。 ... [详细]
  • com.sun.javadoc.PackageDoc.exceptions()方法的使用及代码示例 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • Spark与HBase结合处理大规模流量数据结构设计
    本文将详细介绍如何利用Spark和HBase进行大规模流量数据的分析与处理,包括数据结构的设计和优化方法。 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • PHP与MySQL的Web应用开发技术深入解析
    PHP与MySQL的Web应用开发技术深入解析 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • 如何在Linux服务器上配置MySQL和Tomcat的开机自动启动
    在Linux服务器上部署Web项目时,通常需要确保MySQL和Tomcat服务能够随系统启动而自动运行。本文将详细介绍如何在Linux环境中配置MySQL和Tomcat的开机自启动,以确保服务的稳定性和可靠性。通过合理的配置,可以有效避免因服务未启动而导致的项目故障。 ... [详细]
author-avatar
mobiledu2502858393
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有