HBase集群搭建记录 | 云计算[CentOS8] | Maven项目访问HBase(下)

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: step3. 使用eclipse打开maven项目并配置step4. 项目访问HBase

step3. 使用eclipse打开maven项目并配置


我们需要在项目根目录下执行mvn clean进行项目的清理

b7a20665a03643dd9572f415cf957741.png

上图提示正在删除target文件夹


然后给本地仓库加权限:

cd ~/.m2

chmod 777 repository

我们打开eclipse,依次点击:

window → \to→ prefiences → \to→ maven → \to→ user settings

cb0367def3bd4606866ba18641ad4d13.png


浏览选中我们设置的conf/settings.xml文件

然后点击Apply

然后选择:

8697e6b16aa445d1adb360c0dbc8c754.png


在弹出的框中,选择我们安装Maven的路径:

cb0367def3bd4606866ba18641ad4d13.png


然后点击finish完成操作并一路确认回去

就会在界面显示有我们安装的maven:

6798de6614344f8a958445b65079b0c2.png


勾选之后点击apply and close

然后给App.java加权限:

0d31933955de4a89b5eac5e785d1a692.png


step4. 项目访问HBase


在这里,我们将会在项目根目录之下添加HBase目录并加载jar包

创建HBase目录:

cp -a /usr/local/hbase ~/workspace/source/maven_hello/HBase/


打开项目:

4414913c7274490b930fcbf81f8ce632.png


d336b4065f4e483892e31ac4e5e4caaf.png


打开刚才的项目之后,然后添加jar包:

依次点击

58f2625ef79d4c18ad5cb04f1e0a9b89.png


1d3065b2dd68494b8806fd7722d8c8f4.png


弹框中选择/root/workspace/source/maven_hello/Hbase/hbase/lib下所有jar包

然后配置项目:

cp -a ~/workspace/source/maven_hello/HBase/hbase/conf/hbase-site.xml ~/workspace/source/maven_hello/conf/


在Eclipse菜单中选择Project → \to→ Properties → \to→ java build path→ \to→Libraries→ \to→Add Class Folder,将刚刚增加的conf目录加入到Libraries中

然后给pom.xml添加权限和依赖:

chmod 777 ~/workspace/source/maven_hello/pom.xml

71dadf91bb2440738d341cefa832a98e.png


加入:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.25</version>
    <scope>compile</scope>
</dependency>


然后打开App.java,写入代码:

记得将里面的主机名等修改为自己的,切勿盲目CV

import java.io.IOException;
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.TableName;
import org.apache.hadoop.hbase.client.Admin;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.regionserver.BloomType;
import org.apache.hadoop.hbase.util.Bytes;
public class App 
{
  static Configuration conf=HBaseConfiguration.create();  
  static Connection connection;
  public static void main( String[] args )
  {      String tablename="hbase_tb";                 
          try { 
            App.getConnect();    
            App.createTable(tablename);   
            App.addData(tablename);
              }
          catch (Exception e) { e.printStackTrace();  }      
   }
  public static void getConnect() throws IOException
   {
    conf.set("hbase.zookeeper.quorum", "master315");
    conf.set("hbase.zookeeper.property.clientPort", "2181");
    //conf.set("zookeeper.znode.parent", "/hbase");
     try{ connection=ConnectionFactory.createConnection(conf);  }
    catch(IOException e){     }    
   }
  //创建一张表,通过HBaseAdmin HTableDescriptor来创建  
   public static void createTable(String tablename) throws Exception 
   {     
     TableName tableName= TableName.valueOf(tablename);
     Admin admin = connection.getAdmin();  
        if (admin.tableExists(tableName)) {
         admin.disableTable(tableName);
         admin.deleteTable(tableName);
         System.out.println(tablename + " table Exists, delete ......");  
      }  
            @SuppressWarnings("deprecation")
            HTableDescriptor desc = new HTableDescriptor(tableName);  
            @SuppressWarnings("deprecation")
            HColumnDescriptor colDesc = new HColumnDescriptor("cf1");
            colDesc.setBloomFilterType(BloomType.ROWCOL);
            desc.addFamily(colDesc);  
            desc.addFamily(new HColumnDescriptor("cf2"));  
            admin.createTable(desc);     admin.close();
            System.out.println("create table success!");  
  }  
   public static void addData(String tablename) throws Exception {  
        HTable table = (HTable)connection.getTable( TableName.valueOf(tablename));
        Put p1=new Put(Bytes.toBytes("row1")); //row key  
        p1.addColumn(Bytes.toBytes("cf1"), Bytes.toBytes("name"), Bytes.toBytes("Tom")); 
        p1.addColumn(Bytes.toBytes("cf1"), Bytes.toBytes("age"), Bytes.toBytes("12"));  
        p1.addColumn(Bytes.toBytes("cf2"), Bytes.toBytes("math"), Bytes.toBytes("80")); 
        p1.addColumn(Bytes.toBytes("cf2"), Bytes.toBytes("english"), Bytes.toBytes("90"));  
        table.put(p1);
        table.close();
  } 
}


记得将里面的主机名等修改为自己的,切勿盲目CV

记得打开hadoop,zookeeper,hbase

start-all.sh
zkServer.sh start
start-hbase.sh


点击运行,则会看到:

6bac3928abd14819a587c2e17fab2d4c.png


表创建成功~

进入HBase的shell,手动查询插入的信息:

08d033780693472eb1ad6d57d4b17dd5.png


显然数据插入成功~

eclipse使用maven项目访问HBase

相关实践学习
云数据库HBase版使用教程
&nbsp; 相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情:&nbsp;https://cn.aliyun.com/product/hbase &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
1月前
|
Java Maven
手把手教你搭建Maven项目
手把手教你搭建Maven项目
31 0
|
2月前
|
Java Maven
java修改当前项目的maven仓库地址为国内
修改当前项目的maven仓库地址为国内
|
3月前
|
Dubbo Java 应用服务中间件
微服务框架(十)Maven Archetype制作Dubbo项目原型
  此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。   本文为Maven Archetype的制作及使用,使用archetype插件制作Dubbo项目原型
|
3月前
|
前端开发 Java Maven
IEAD MAVEN创建springboot 项目
IEAD MAVEN创建springboot 项目
29 0
|
3月前
|
Java 测试技术 应用服务中间件
使用Maven构建一个项目时,通常按照以下六个步骤的顺序进行
使用Maven构建一个项目时,通常按照以下六个步骤的顺序进行
103 0
|
2月前
|
JavaScript Java 应用服务中间件
centos部署vue项目(java,tomcat环境的搭建)
centos部署vue项目(java,tomcat环境的搭建)
42 0
|
3月前
|
Java API Maven
JFinal5+Jetty2009+IDEA2020+Java8的非Maven-Demo项目
JFinal5+Jetty2009+IDEA2020+Java8的非Maven-Demo项目
22 1
|
26天前
|
Java Maven 开发工具
maven导入项目出现Unable to import maven project: See logs for details
maven导入项目出现Unable to import maven project: See logs for details
11 0
maven导入项目出现Unable to import maven project: See logs for details
|
3月前
|
前端开发 IDE Java
基于Springboot+MYSQL+Maven实现的宠物医院管理系统(源码+数据库+运行指导文档+项目运行指导视频)
基于Springboot+MYSQL+Maven实现的宠物医院管理系统(源码+数据库+运行指导文档+项目运行指导视频)
164 0
|
25天前
|
Java Maven
maven项目导出可执行jar
maven项目导出可执行jar
28 0