首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Win10 IDEA远程连接HBase

Win10 IDEA远程连接HBase

作者头像
超级小的大杯柠檬水
发布于 2024-11-21 04:42:56
发布于 2024-11-21 04:42:56
19800
代码可运行
举报
文章被收录于专栏:CYCY
运行总次数:0
代码可运行

Win10 IDEA远程连接HBase

Win10 IDEA连接虚拟机中的Hadoop(HDFS)

关闭Hadoop和Hbase

如果已经关闭不需要走这一步

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /usr/local/hbase
bin/stop-hbase.sh
cd /usr/local/hadoop
./sbin/stop-dfs.sh

获取虚拟机的ip

虚拟机终端输入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ip a

关闭虚拟机防火墙

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo ufw disable

修改Hadoop的core-site.xml文件

将IP修改成自己的IP

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 位置可能不一样,和Hadoop安装位置有关
cd /usr/local/hadoop/etc/hadoop
vim core-site.xml
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.111.135:9000</value>
    </property>
    <property>
        <name>hadoop.proxyuser.hadoop.hosts</name>
        <value>*</value>
    </property>
    <property>
            <name>hadoop.proxyuser.hadoop.groups</name>
            <value>*</value>
    </property>
</configuration>

修改Hbase的hbase-site.xml

将IP修改成自己的IP

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 位置可能不一样,和Hbase安装位置有关
cd /usr/local/hbase
vim /usr/local/hbase/conf/hbase-site.xml
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<configuration>
  <property>
                <name>hbase.rootdir</name>
                <value>hdfs://192.168.111.135:9000/hbase</value>
        </property>
        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>
        <property>
                <name>hbase.unsafe.stream.capability.enforce</name>
                <value>false</value>
        </property>
	<property>
    <name>hbase.wal.provider</name>
    <value>filesystem</value>
  </property>
      <property>
        <name>hbase.zookeeper.quorum</name>
        <value>192.168.111.135:2181</value>
    </property>
    <property>
		<name>hbase.master.ipc.address</name>
		<value>0.0.0.0</value>
	</property>
	<property>
		<name>hbase.regionserver.ipc.address</name>
		<value>0.0.0.0</value>
	</property>
</configuration>

打开Hadoop和Hbase

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cd /usr/local/hadoop
./sbin/start-dfs.sh
cd /usr/local/hbase
bin/start-hbase.sh
jps

IDEA 连接

创建Maven项目

IDEA自带Maven,如果需要自己安装Maven可以参考安装Maven

创建项目,选择Maven,模板选择第一个maven-archetype-archetype

添加依赖(pom.xml)

记得修改自己hbase的版本,我的是2.5.4

设置好后Reload一下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  <dependencies>
    <dependency>
      <groupId>org.apache.hbase</groupId>
      <artifactId>hbase-client</artifactId>
      <version>2.5.4</version>
    </dependency>
  </dependencies>
创建Java文件并运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import java.io.IOException;

public class Test01 {
    public static Configuration configuration;
    public static Connection connection;
    public static Admin admin;

    public static void init(){
        System.setProperty("HADOOP_USER_NAME","hadoop");
        configuration  = HBaseConfiguration.create();
        // IP 需要修改
        configuration.set("hbase.zookeeper.quorum", "192.168.111.135");
        configuration.set("hbase.zookeeper.property.clientPort", "2181");
        // IP 需要修改
        configuration.set("hbase.rootdir","hdfs://192.168.111.135:9000/hbase");
        try{
            connection = ConnectionFactory.createConnection(configuration);
            admin = connection.getAdmin();
        }catch (IOException e){
            e.printStackTrace();
        }
    }

    /*
    * 打印所有表名称
    * */
    public static  void  tableListPrint() throws IOException {
        TableName[] tableNames = admin.listTableNames();
        for(TableName tableName : tableNames){
            System.out.println(tableName.getNameAsString());
        }
    }


    public static void close(){
        try{
            if(admin != null){admin.close();}
            if(null != connection){connection.close();}
        }catch (IOException e){
            e.printStackTrace();
        }
    }


    public static void main(String[] args) throws IOException {
        init();
        tableListPrint();
        close();
    }
}

其他

HBase Shell命令
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 进入shell
bin/hbase shell
# 列出HBase中所有的表
list 
# 创建一个新表,表名为StudentInfo,包含两个列族Personal和Grades。
create 'StudentInfo', 'Personal', 'Grades' 
# 向StudentInfo表中插入一条记录,RowKey为2023001,Personal:Name列的值为张三,Grades:Math列的值为90。
put 'StudentInfo','2023001', 'Personal:Name','张三'
put 'StudentInfo','2023001', 'Grades:Math', 90
# 查询RowKey为2023001的所有信息。
get 'StudentInfo','2023001'
# 修改2023001的Grades:Math列的值为95。
put 'StudentInfo', '2023001', 'Grades:Math', '95'
# 删除2023001的Personal:Name列。
delete 'StudentInfo', '2023001', 'Personal:Name'
# 扫描StudentInfo表,查看所有记录。
scan 'StudentInfo'
Java API
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.*;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;
import java.io.IOException;


public class Work01 {
    public static Configuration configuration;
    public static Connection connection;
    public static Admin admin;

    public static void main(String[] args) throws IOException {
        init();
        // 删除表 第一次运行请注释
//        deleteTable("EmployeeRecords");
        tableListPrint();
        createTable("EmployeeRecords",new String[]{"Info","Salary"});
        tableListPrint();
        insertData("EmployeeRecords","606","Info","Name","CY");
        insertData("EmployeeRecords","606","Info","Department","现代信息产业学院");
        insertData("EmployeeRecords","606","Info","Monthly","50000");
        getData("EmployeeRecords","606");
        updateData("EmployeeRecords","606","60000");
        getData("EmployeeRecords","606");
        deleteData("EmployeeRecords","606");
        close();
    }


    public static void init(){
        System.setProperty("HADOOP_USER_NAME","hadoop");
        configuration  = HBaseConfiguration.create();
        configuration.set("hbase.zookeeper.quorum", "192.168.111.135");
        configuration.set("hbase.zookeeper.property.clientPort", "2181");
        configuration.set("hbase.rootdir","hdfs://localhost:9000/hbase");
        // 避免乱码问题
        configuration.set("hbase.client.encoding.fallback", "UTF-8");
        try{
            connection = ConnectionFactory.createConnection(configuration);
            admin = connection.getAdmin();
        }catch (IOException e){
            e.printStackTrace();
        }
    }

    /*
     * 打印所有表名称
     * */
    public static  void  tableListPrint() throws IOException {
        TableName[] tableNames = admin.listTableNames();
        System.out.print("所有表:");
        for(TableName tableName : tableNames){
            System.out.print(tableName.getNameAsString() + "\t");
        }
        System.out.println();
    }

    public static void createTable(String myTableName,String[] colFamily) throws IOException {
        TableName tableName = TableName.valueOf(myTableName);
        if(admin.tableExists(tableName)){
            System.out.println("talbe is exists!");
        }else {
            TableDescriptorBuilder tableDescriptor = TableDescriptorBuilder.newBuilder(tableName);
            for(String str:colFamily){
                ColumnFamilyDescriptor family =
                        ColumnFamilyDescriptorBuilder.newBuilder(Bytes.toBytes(str)).build();
                tableDescriptor.setColumnFamily(family);
            }
            admin.createTable(tableDescriptor.build());
        }
    }

    public static void deleteTable(String myTableName) throws IOException {
        TableName tableName = TableName.valueOf(myTableName);
        admin.disableTable(tableName);
        admin.deleteTable(tableName);
    }

    public static void insertData(String tableName,String rowKey,String colFamily,String col,String val) throws IOException {
        Table table = connection.getTable(TableName.valueOf(tableName));
        Put put = new Put(rowKey.getBytes());
        put.addColumn(colFamily.getBytes(),col.getBytes(), val.getBytes());
        table.put(put);
        table.close();
    }

    public static void updateData(String tableName,String rowKey,String val) throws IOException {
        Table table = connection.getTable(TableName.valueOf(tableName));
        Put put = new Put(rowKey.getBytes());
        put.addColumn("Info".getBytes(),"Monthly".getBytes(), val.getBytes());
        table.put(put);
        table.close();
    }


    public static void getData(String tableName,String rowKey)throws  IOException{
        Table table = connection.getTable(TableName.valueOf(tableName));
        Get get = new Get(rowKey.getBytes());
        Result result = table.get(get);
        Cell[] cells = result.rawCells();
        System.out.print("行键:"+rowKey);
        for (Cell cell : cells) {
            //获取列名
            String colName = Bytes.toString(cell.getQualifierArray(),cell.getQualifierOffset(),cell.getQualifierLength());
            String value = Bytes.toString(cell.getValueArray(), cell.getValueOffset(), cell.getValueLength());
            System.out.print("\t"+colName+":"+value);
        }
        System.out.println();
        table.close();
    }

    public static void deleteData(String tableName,String rowKey)throws  IOException{
        Table table = connection.getTable(TableName.valueOf(tableName));
        Delete delete = new Delete(rowKey.getBytes());
        table.delete(delete);
        System.out.println("删除成功");
    }

    public static void close(){
        try{
            if(admin != null){admin.close();}
            if(null != connection){connection.close();}
        }catch (IOException e){
            e.printStackTrace();
        }
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-10-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
全网最全Linux 运行jar包的几种方式[通俗易懂]
最常用的启动jar包命令,特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出
全栈程序员站长
2022/11/10
6.2K0
全网最全Linux 运行jar包的几种方式[通俗易懂]
nohup基本使用
兮动人
2024/02/07
5620
Linux系统:第十一章:常用命令
whereis搜索redis服务执行文件:whereis redis-server
Java廖志伟
2021/02/02
8650
Linux系统:第十一章:常用命令
关于 Linux后台运行进程
最近在搭建kafka的过程中,发现启动相关服务后,终端界面无法再进行操作。每次都需要开启多个终端界面,实在是特别麻烦。于是就研究了下Linux后台启动程序的方法,并整理了如下的笔记。
用户8710643
2021/06/11
2.6K0
linux nohup.out文件过大解决方法
在一般使用时,默认的是标准输出,即1.当我们需要特殊用途时,可以使用其他标号。例如,将某个程序的错误信息输出到log文件中:./program 2>log。这样标准输出还是在屏幕上,但是错误信息会输出到log文件中。 另外,也可以实现0,1,2之间的重定向。2>&1:将错误信息重定向到标准输出。 Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。
似水的流年
2021/10/12
6K0
部署jar项目服务命令
查看 ps aux | grep 服务关键字 关闭进程,否则启动的时候报错:java.net.BindException: Address already in use kill -9 12148 重启服务 nohup java -jar 微服务.jar &
oktokeep
2024/10/09
1650
linux下的java部署
注:在运行 JAR 包之前,确保你的 JAR 文件是可执行的,并且包含了正确的类和依赖项。如果 JAR 包依赖于其他库或配置文件,确保它们也在正确的位置可用。
Kiba518
2024/03/06
3080
linux下的java部署
linux的nohup命令
在应用Unix/Linux时,我们一般想让某个程序在后台运行,于是我们将常会用 & 在程序结尾来让程序自动运行。比如我们要运行mysql在后台: /usr/local/mysql/bin/mysqld_safe –user=mysql &。可是有很多程序并不想mysqld一样,这样我们就需要nohup命令,怎样使用nohup命令呢?这里讲解nohup命令的一些用法。
全栈程序员站长
2022/11/15
1.8K0
【Java专题_09】生产环境Jvm参数设置
最近公司有个独立的小模块是我这边负责开发上线,涉及到jvm参数调整方面,主要是根据服务器的配置4C16G配置了以下的参数,程序单纯只是接口查询redis以及信息上报,数据量大概是每天3000万!
夏之以寒
2024/03/04
2730
Linux命令之nohup
语法:nohup Command [ Arg ... ] [ & ] 描述:nohup 命令运行由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。
AsiaYe
2019/11/06
2.4K0
一、问题
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/265
joshua317
2022/09/08
1.4K0
linux 后台运行进程:& , nohup
当我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件。对于密集访问磁盘的进程,我们更希望它能够在每天的非负荷高峰时间段运行(例如凌晨)。为了使这些进程能够在后台运行,也就是说不在终端屏幕上运行,有几种选择方法可供使用。
DevOps在路上
2023/05/16
5.5K0
linux 后台运行进程:& , nohup
nohup command > out.file 2>&1 & 命令详解
hup是hang up的缩写,是挂断、挂起的意思,而顾名思义,nohup就是不挂断、不挂起的意思。在 Unix 的早期版本中,每个终端都会通过modem和系统通讯。当用户 logout 时,modem就会挂断(hang up)。并且,当modem和系统断开连接时,就会给系统发送hangup信号来通知其关闭该终端打开的所有进程。 而nohup命令的用途就是让该终端提交的命令忽略该hangup信号,从而能够在系统中继续执行。
saintyyu
2021/11/22
4.4K0
Linux编辑启动停止重启springboot jar包脚本
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null" 2 表示stderr标准错误
陈灬大灬海
2019/03/21
4.9K0
Linux编辑启动停止重启springboot jar包脚本
Linux之nohup命令
原文链接:https://rumenz.com/rumenbiji/linux-nohup.html
入门笔记
2021/08/25
1.9K0
Frp命令大全
说明: 其中,>为输出重定向符号,>/dev/null 2>&1。这条命令其实分为两命令,一个是>/dev/null,另一个是2>&1。 1. >/dev/null 这条命令的作用是将标准输出1重定向到/dev/null中。/dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。 2. 2>&1 这条命令用到了重定向绑定,采用&可以将两个输出绑定在一起。这条命令的作用是错误输出将和标准输出同用一个文件描述符,说人话就是错误输出将会和标准输出输出到同一个地方。 linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令,所以>/dev/null 2>&1的作用就是让标准输出重定向到/dev/null中(丢弃标准输出),然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。执行了这条命令之后,该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到文件中。
Dabenshi
2023/05/26
2.1K0
shell脚本 >/dev/null 2>&1
1:> 代表重定向到哪里,例如:echo "123" > /home/123.txt
week
2018/08/27
4910
Linux 常用命令
这条命令的作用是将标准输出1重定向到/dev/null中。 /dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。
茶半香初
2021/11/26
4610
Linux 常用命令
nohup java -jar 启动java项目
nohup是一个常用的Unix命令,用于在忽略挂起信号(SIGHUP)的情况下运行指定的命令或进程。当用户注销或关闭终端时,通常后台运行的进程会收到SIGHUP信号而终止。使用nohup可以避免这种情况,使得进程即使在用户注销后也能继续运行。
王也518
2024/04/25
1.5K0
015 Linux 标准输入输出、重定向、管道和后台启动进程命令
IO 重定向是为了改变默认输入、输出的位置,如默认情况下标准输出(STDOUT),标准错误输出(STDERR)都是输出到显示终端,如对标准输出、标准错误输出改变其默认输出位置,可重定向输出到指定的文件中(实际工作中经常这么使用),要重定向就要配合一些语法符号。
落寞的鱼丶
2022/02/21
2.1K0
相关推荐
全网最全Linux 运行jar包的几种方式[通俗易懂]
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验