HBase集群搭建记录

2023-10-31

写在前面

本系列文章索引以及一些默认好的条件在 传送门

默认使用master节点并用root用户登录终端进行操作
默认在操作本篇博客时HBase已经配置完毕

step1 Maven的下载与配置

1. 下载解压

博主使用的是经典maven3.6.3版本,和学习Java EE的时候用的版本是相同的
要是有需要可以通过链接下载
博主下载的版本为:
在这里插入图片描述
下载后,我们将该文件放在/usr/local/maven/之下
若没有该目录,首先需要创建该目录:mkdir -p /usr/local/maven
将下载之后的文件拖到/usr/local/maven/之后,通过命令解压该文件:
tar -zxvf apache-maven-3.6.3-bin.tar.gz

2. 环境变量设置

然后就需要配置环境变量了:
vim /etc/profile
只需要加入:
根据自己实际版本添加,切勿盲目CV

MAVEN_HOME=/usr/local/maven/apache-maven-3.6.3
PATH=$PATH:$MAVEN_HOME/bin
export PATH MAVEN_HOME

然后source一下使其生效:
source /etc/profile

3. 查看安装

在我们输入mvn -version之后,我们查看是否能够正常显示我们下载安装的maven版本信息:
在这里插入图片描述
发现能够正常显示,配置maven 成功~

4. 设置阿里云镜像[加速jar包下载]

编辑maven的conf下的settings.xml文件:
cd /usr/local/maven/apache-maven-3.6.3/conf/
vim settings.xml
mirrors标签对内加入
在这里插入图片描述

<mirror>
  <id>aliyunmaven</id>
  <mirrorOf>*</mirrorOf>
  <name>阿里云公共仓库</name>
  <url>https://maven.aliyun.com/repository/public</url>
</mirror>

加入以上的内容之后便会加速一些[ jar包/插件] 的下载

step2 Maven项目的创建

1.创建项目

我们在这一步将通过maven的相关命令行来创建maven项目,加入我们将该项目创建到该系统目前登陆用户的工作目录下,可以首先创建一个workspace放置源代码:
mkdir -p ~/workspace/source
然后切换到该目录下进行操作:
cd ~/workspace/source
然后可以通过命令创建项目:

mvn archetype:generate \ 
-DgroupId=com.hello \
-DartifactId=maven_hello \
-DarchetypeArtifactId=maven-archetype-quickstart

上面的命令需要手动写入或者是一行一行cv进命令行终端
如果说首次安装,会下载一些jar
下载完成后,如下图:
在这里插入图片描述

在这个里,我们可以直接回车,回车后如下图:
在这里插入图片描述

如果不再修改,我们输入y,然后打回车,然后:
在这里插入图片描述

以上绿色的字体提示我们构建成功,然后查看当前目录下的内容,会发现多了一个文件夹:
在这里插入图片描述
正是与我们的命令行中的这一行是相同:
在这里插入图片描述

2. 编译项目

跳转到maven_hello之下:cd maven_hello
然后执行:mvn compile

在这里插入图片描述
提示我们已经构建成功了,再次查看该目录下的文件:
在这里插入图片描述
这就是编译后生成的target,进去一看的话,就会看到:
在这里插入图片描述
这里面放着编译好的字节码文件

3.测试项目

切换到项目根目录下之后,我们执行mvn test来测试maven项目:
在这里插入图片描述
会发现多了一个test-classes
在这里插入图片描述

4.打包项目

我们需要用到命令:mvn package
同样在项目根目录下执行,会看到:
在这里插入图片描述
提示生成了一个jar包,在target下:
在这里插入图片描述

5.安装项目

需要用到命令:mvn install
同样在项目根目录下执行:
在这里插入图片描述
给出的提示便是安装到的路径

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

我们需要在项目根目录下执行mvn clean进行项目的清理
在这里插入图片描述
上图提示正在删除target文件夹

然后给本地仓库加权限:
cd ~/.m2
chmod 777 repository
我们打开eclipse,依次点击:
window → \to prefiences → \to maven → \to user settings
在这里插入图片描述
浏览选中我们设置的conf/settings.xml文件
然后点击Apply
然后选择:
在这里插入图片描述
在弹出的框中,选择我们安装Maven的路径:
在这里插入图片描述
然后点击finish完成操作并一路确认回去
就会在界面显示有我们安装的maven:
在这里插入图片描述
勾选之后点击apply and close
然后给App.java加权限:
在这里插入图片描述

step4. 项目访问HBase

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

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

打开项目:
在这里插入图片描述
在这里插入图片描述

打开刚才的项目之后,然后添加jar包:
依次点击
在这里插入图片描述
在这里插入图片描述

弹框中选择/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

在这里插入图片描述
加入:

<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

点击运行,则会看到:
在这里插入图片描述
表创建成功~
进入HBase的shell,手动查询插入的信息:

在这里插入图片描述

显然数据插入成功~

eclipse使用maven项目访问HBase

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HBase集群搭建记录 的相关文章

随机推荐

  • 岁月划过生命线(从阿里到微店)

    从阿里到微店 标签 程序人生 在 lt 2 5年 从0到阿里 gt 中提到过 当时面阿里云OS时预期的是进入虚拟机团队 结果后来被分到了高通平台参考设计团队 因此在阿里期间心情一直是比较低落的 写这篇博客主要是基于以下几个原因 前段时间跟大
  • 利用Matlab进行图像分割和边缘检测

    本文章包含以下内容 1 灰度阀值分割 1 单阈值分割图像 先将一幅彩色图像转换为灰度图像 显示其直方图 参考直方图中灰度的分布 尝试确定阈值 应反复调节阈值的大小 直至二值化的效果最为满意为止 给图像加上零均值的高斯噪声重复上述过程 注意阈
  • QT+VS 在项目中新建子窗体ui,生成h文件、cpp文件、moc文件

    1 绘制子窗体 在项目中新建子窗体ui文件 命名为testUi ui 2 新建上述窗体文件对应的ui类 建议将ui类与子窗体设置成相同的名字 testUi h testUi cpp 此时testUi还是一个只包含默认构造函数和析构函数的空类
  • gdal_makedata波段计算

    import os import gdal makeData import numpy as np from osgeo import gdal import cv2 as cv from PIL import Image from PIL
  • Android Studio:如何使用网格布局将整个界面等比分为三行三列

    刚开始接触android开发 还在摸索基础控件 老师说解决了一个问题就要记录下来以防以后遗忘 所以这里小小记录一下碰到的问题 课本上的一道题目 怎么将界面等比分为三行三列 显示一个红色的 十 字效果 如下图所示 采用线性布局非常简单 直接
  • Java从入门到入坟系列学习路线目录索引(持续更新中~~~)

    Java学习路线目录索引 一 Java基础 二 Java数据库 Mysql 三 Java设计模式 四 SSM等主流框架 五 MybatisPlus 六 SpringBoot 七 SpringCloud 微服务 八 Redis 九 Docke
  • 西门子S7-200SMART 通信组态

    这里主要说一下关于S7 200SMART通信组态的问题 S7 200 SMART 可实现 PLC 编程设备 工控机 电脑 和 HMI 之间的多种通信方式 以太网 实现工控机 普通PC和PLC之间通信 程序下载上载等 实现PLC和HMI之间通
  • 【核磁共振成像】磁共振成像基础

    目录 一 振幅 二 频率 三 相位 四 脉冲 1 脉冲定义 2 选择性脉冲和非选择性脉冲 3 带宽 五 MRI的基本硬件构成 1 主磁体 1 主磁体是产生磁场的装置 2 MRI按主磁场强度分类 3 优缺点 4 高度均匀的磁场 2 梯度系统
  • MVC开发模式

    总结 1 JSTL存在的目的和EL表达式一样为了减少JSP页面的脚本代码也就是java代码 JSTL的引入方式 1 导入jar包 1 jstl jar standard jar 2 在jsp页面导入包
  • MySQL8 提示1055 错误代码

    问题产生场景 今天使用Python3 PyMYSQL SQLAlchemy 执行分组查询提示如下错误信息 sqlalchemy exc OperationalError pymysql err OperationalError 1055 E
  • stm32+VL53L0x激光测距实验,keil5测试工程已经上传CSDN

    stm32 VL53L0x激光测距实验 连接方式 SCL PA3 SDA PA2 VCC 3 3V GND GND GPIO1 浮空 XSHUT PA5 这个其实是使能 0关闭 1启动 给大家看看我买的模块样子 串口助手上显示的内容 测量到
  • 解决div出现横向滚动条,背景色没铺满问题

    问题描述 如图 div等块级元素默认宽度为100 当页面渲染完后其宽度已经固定 这时候如果文字超出其宽度 如调用api后显示的结果 我们如果希望其出现滚动条 这时超过原宽度的部分背景可能跟文字背景不一样 如图 1 初始情况 2 点击菜单后出
  • 等保windows server安全策略三权分立设置

    三权的理解 配置 授权 审计 三员的理解 系统管理员 安全保密管理员 安全审计员 三员之三权 废除超级管理员 三员是三角色并非三人 安全保密管理员与审计员必须非同一个人 控制面板 计算机管理 本地用户和组 安全用户配置 审计用户配置
  • 群晖系统ftp服务器,群晖对接云服务器ftp

    群晖对接云服务器ftp 内容精选 换一换 用户可以在MRS Manager界面上配置监控指标数据对接参数 使集群内各监控指标数据通过FTP或SFTP协议保存到指定的FTP服务器 与第三方系统进行对接 FTP协议未加密数据可能存在安全风险 建
  • (unity)游戏中摇杆:控制角色移动

    摇杆其实挺简单的 只需要一个需要控制的角色target和控制其移动的方向传出去 调用角色的move函数就可以了 我是传出去使用的角度 基于摄像机当前前方向 摇杆上方向和摇杆当前到中心的向量之间的角度旋转 有点绕 如图所示 isDown是一个
  • 『phphot』【SD2.0大会】毛新生:“傻瓜”软件将成用户最爱

    原文链接 http blog csdn net phphot archive 2007 11 30 1909244 aspx作者 phphot phphot http blog csdn net phphot 中国最大的IT技术社区CSDN
  • JAVA使用mysql加密解密函数(AES_ENCRYPT/AES_DECRYPT)

    前言 最近大学做JavaWeb课设时发现 很多同学的有关于账号密码都是明文储存在mysql数据库中 其实这样做在实际应用中是非常不安全的 其实mysql最近本身就提供了非常好的两个函数来供我们去加密解密我们要存入的数据 下面我们就来介绍一下
  • JS中Array的forEach、map、filter方法区别?

    一 基本用法 1 forEach 函数用于对数组中的每个元素执行给定的函数 而它不返回任何值 它只是对每个元素调用传入的函数 这个函数可以接受三个参数 当前元素的值 当前元素的索引和整个数组 const arr 1 2 3 arr forE
  • 2023年第二届全国大学生数据统计与分析竞赛题目B:电影评分的大数据分析

    竞赛信息 在大数据时代背景下 统计学作为大数据分析领域的基础显得尤为重要 为了帮助学生更好的学习和应用数据统计与分析的知识 促进统计 计算机 数学等相关专业的发展 培养具有数据分析与应用型人才 经研究决定 中国国际经济技术合作促进会教育发展
  • HBase集群搭建记录

    本文目录 写在前面 step1 Maven的下载与配置 1 下载解压 2 环境变量设置 3 查看安装 4 设置阿里云镜像 加速jar包下载 step2 Maven项目的创建 1 创建项目 2 编译项目 3 测试项目 4 打包项目 5 安装项