栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【无标题】Java连接hbase

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【无标题】Java连接hbase

在hbase中添加测试数据
见《实验3-Hbase安装及配置》的5、Hbase的基本使用
添加一张student表
修改配置文件
登录centos,用hadoop用户登录
①修改hadoop核心配置
sudo vi /usr/local/hadoop/etc/hadoop/core-site.xml
结果如下
IP地址要根据自己的情况改成自己的centos系统IP地址。

保存退出(esc键,输入:wq)
②修改hbase核心配置文件hbase-site.xml
sudo vi /usr/local/hbase/conf/hbase-site.xml
IP地址要根据自己的情况改成自己的centos系统IP地址。

修改centos主机名
hostnamectl set-hostname hbasehost
bash  #及时生效

将配置文件拷贝出来
将hadoop的hdfs-site.xml、core-site.xml和hbase的hbase-site.xml拷贝出来,将来放到java项目中。
启动hadoop和hbase
ssh localhost
①启动hadoop
cd /usr/local/hadoop
./sbin/start-dfs.sh

查看是否启动完成
jps

②启动hbase
cd /usr/local/hbase
./bin/start-hbase.sh

查看是否启动成功

进入shell界面
bin/hbase shell
在shell模式下输入help可以查看Hbase相关的命令。
Hbase中用create命令创建表,具体如下
create 'student','Sname','Ssex','Sage','Sdept','course'

此时,即创建了一个“student”表,属性有:Sname,Ssex,Sage,Sdept,course。因为Hbase的表中会有一个系统默认的属性作为主键,故主键无需自行创建。创建完“student”表后,可通过describe命令查看“student”表的基本信息。
设置防火墙
Hbase启动后会占用60010端口,需要防火墙规则放过该端口,也可以暂时关闭防火墙(实际生产中这是很危险的)
查看防火墙状态
systemctl status firewalld.service

Ctrl+c
关闭防火墙
systemctl stop firewalld.service

修改windows的hosts
本次实验是在windows10中安装VMware虚拟机,建立了centos8的虚拟机,而后用windows版的idea建立java项目连接centos中的hbase,因此还需要修改hosts文件
C:WindowsSystem32driversetc
用文本编辑器打开该文件,在文件的最后添加:
192.168.1.5 hbasehost-server hbasehost
IP地址要根据自己的情况改成自己的centos系统IP地址。
建立maven项目
①设置Idea
拷贝settings.xml(该文件是Apache maven的配置文件可以自行下载,也可以拷贝老师的),修改settings.xml,
修改本地库存放路径
E:\Program Files\apache-maven-3.6.3\repository

标签中添加下面内容
 
      alimaven
      aliyun maven
      http://maven.aliyun.com/nexus/content/groups/public/
      central        
   

 

如图:


在idea的设置中选择该文件:


②建立项目

③建立源代码目录和资源文件目录


将从虚拟机中拷贝出来的三个配置文件复制到resource目录下


修改pom.xml
在项目的配置文件中添加项目依赖库
在如下位置添加内容(阴影部分)

 
    junit
    junit
    4.11
    test
 

 
    org.apache.hbase
    hbase-client
    2.0.5
 

 
    com.alibaba
    fastjson
    1.2.75
 

编写程序
public class Main {
    public static void main(String[] args) {
        try {
            List tables= getTables();
            for(String table:tables){
                System.out.println(table);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
   
    public static Configuration initConfig(){
        Configuration config = new Configuration();
        //记住  写服务名  192.168.1.5 hbasehost-server hbasehost
        config.set("hbase.zookeeper.quorum","hbasehost");
        return config;
    }
   
    public static Admin getAdmin() throws IOException {
        Configuration conf = initConfig();
        Connection connection = ConnectionFactory.createConnection(conf);
        Admin admin = connection.getAdmin();
        return admin;
    }

   
    public static void isAvailable() throws IOException {
        Configuration conf = initConfig();
        HbaseAdmin.available(conf);
    }
   
    public  static List getTables() throws IOException {
        Admin admin = getAdmin();
//获取hbase中所有的表名
        TableName[] tableNames = admin.listTableNames();
        List tables = new ArrayList();
        for(TableName tableName:tableNames){
            tables.add(tableName.getNameAsString());
        }
        return tables;
    }
}

运行结果:显示出里hbase中所有表
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/710122.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号