千家信息网

hbase 基本开发-插入表

发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,创建maven项目pom.xml文件内容: 3个依赖包 hbase-client hadoop-hdfs jdk.tools4.0.0mjj.hbasetest-100.0.1-SNAPSHOTorg
千家信息网最后更新 2025年12月04日hbase 基本开发-插入表

创建maven项目

pom.xml文件内容: 3个依赖包 hbase-client hadoop-hdfs jdk.tools


4.0.0

mjj.hbase

test-10

0.0.1-SNAPSHOT

org.apache.hbase

hbase-client

2.0.0

org.apache.hadoop

hadoop-hdfs

2.8.0

jdk.tools

jdk.tools

1.8

system

C:\Program Files\Java\jdk1.8.0_151\lib\tools.jar


连接hbase的两种方法:

配置法(不一定要按图配置,程序会默认去读classpath下的配置文件,可以通过System.out.println(ClassLoader.getSystemResource("").toString());获取)

1 在main文件夹下,建立resources文件夹,在resources文件夹下建立hbase文件,hbase文件夹下放hbase-site.xml配置文件(主要用到里面的zookeeper配置信息)

配置文件主要内容如下:

hbase-site.xml

hbase.zookeeper.quorum

192.168.50.1071

hbase.zookeeper.property.clientPort

2181


代码:

package myHbase;


import java.io.IOException;


import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.Cell;

import org.apache.hadoop.hbase.Cell.Type;

import org.apache.hadoop.hbase.CellBuilder;

import org.apache.hadoop.hbase.CellBuilderFactory;

import org.apache.hadoop.hbase.CellBuilderType;

import org.apache.hadoop.hbase.HBaseConfiguration;

import org.apache.hadoop.hbase.TableName;

import org.apache.hadoop.hbase.client.Connection;

import org.apache.hadoop.hbase.client.ConnectionFactory;

import org.apache.hadoop.hbase.client.HBaseAdmin;

import org.apache.hadoop.hbase.client.Put;

import org.apache.hadoop.hbase.client.Table;

import org.apache.hadoop.hbase.util.Bytes;


public class SimpleTest {


public static void main(String[] args) throws IOException {

// TODO Auto-generated method stub

Configuration hBaseConfig = HBaseConfiguration.create();

HBaseAdmin.available(hBaseConfig);

Connection connection = ConnectionFactory.createConnection(hBaseConfig);


TableName table1 = TableName.valueOf("test");

Table table = connection.getTable(table1);


CellBuilder cb = CellBuilderFactory.create(CellBuilderType.SHALLOW_COPY);

cb.setRow(Bytes.toBytes("row3"));

cb.setFamily(Bytes.toBytes("cf"));

cb.setQualifier("qualifier1".getBytes());

cb.setValue(Bytes.toBytes("mjj2"));

cb.setType(Type.Put);

Cell cell = cb.build();


Put p = new Put(Bytes.toBytes("row3"));

p.add(cell);

table.put(p);


connection.close();

}


}


配置不正确报错(zookeeper的连接丢失):

Exception in thread "main" org.apache.hadoop.hbase.MasterNotRunningException: org.apache.hadoop.hbase.MasterNotRunningException: java.io.IOException: org.apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase/master


代码里设定zookeeper:

package myHbase;


import java.io.IOException;


import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.Cell;

import org.apache.hadoop.hbase.Cell.Type;

import org.apache.hadoop.hbase.CellBuilder;

import org.apache.hadoop.hbase.CellBuilderFactory;

import org.apache.hadoop.hbase.CellBuilderType;

import org.apache.hadoop.hbase.HBaseConfiguration;

import org.apache.hadoop.hbase.TableName;

import org.apache.hadoop.hbase.client.Connection;

import org.apache.hadoop.hbase.client.ConnectionFactory;

import org.apache.hadoop.hbase.client.HBaseAdmin;

import org.apache.hadoop.hbase.client.Put;

import org.apache.hadoop.hbase.client.Table;

import org.apache.hadoop.hbase.util.Bytes;


public class SimpleTest {


public static void main(String[] args) throws IOException {

// TODO Auto-generated method stub

Configuration hBaseConfig = HBaseConfiguration.create();

hBaseConfig.set("hbase.zookeeper.quorum", "192.168.50.107");

hBaseConfig.set("hbase.zookeeper.property.clientPort", "2181");

HBaseAdmin.available(hBaseConfig);

Connection connection = ConnectionFactory.createConnection(hBaseConfig);


TableName table1 = TableName.valueOf("test");

Table table = connection.getTable(table1);


CellBuilder cb = CellBuilderFactory.create(CellBuilderType.SHALLOW_COPY);

cb.setRow(Bytes.toBytes("row3"));

cb.setFamily(Bytes.toBytes("cf"));

cb.setQualifier("qualifier1".getBytes());

cb.setValue(Bytes.toBytes("mjj2"));

cb.setType(Type.Put);

Cell cell = cb.build();


Put p = new Put(Bytes.toBytes("row3"));

p.add(cell);

table.put(p);


connection.close();

}


}


重要: windows上一定要配置/etc/hosts. 添加一条 192.168.50.107 rhel -------其中rhel 为 hbase机子的主机名。原因未知。

否则报错:

Exception in thread "main" org.apache.hadoop.hbase.MasterNotRunningException: org.apache.hadoop.hbase.MasterNotRunningException: java.net.UnknownHostException: can not resolve rhel,16000,1530027948780



文件 配置 文件夹 代码 内容 重要 主机 信息 原因 可以通过 方法 机子 程序 项目 上一 加一 开发 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 华东理工大学知网数据库采购费用 河北数据软件开发服务价钱 为什么网站分离数据库 球球英雄各种服务器 纯软件开发专业 安徽潮流软件开发检测中心 软件开发面试常见错误 共青团网络安全宣传图片 楚雄州天气预报软件开发 网上云数据库 浦东新区媒体数据库服务销售 管家婆系统数据库账号不能登录 诛仙3游戏服务器列表失败 养老项目的数据库营销案例分析 吃鸡战场服务器分配 如何数据库跟踪 宜信财富软件开发工资高吗 网络安全数据传输的基本要求 h3c软件开发面试 网页前端数据怎么存到数据库中 主播都在哪个服务器玩逃离塔科夫 北大纵横网络技术有限公司 腾讯服务器会保存微信支付帐单吗 高端服务器芯片a股 牛dbsnp数据库的利用 培训学软件开发怎么样 数据库乐观锁怎么办成悲观锁 云服务器修改管理员密码 江苏营销网络技术服务费 国家网络安全永久大会
0