本文目录
写在前面
本系列文章索引以及一些默认好的条件在 传送门
默认使用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添加权限和依赖:
chmod777 ~/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
importjava.io.IOException;importorg.apache.hadoop.conf.Configuration;importorg.apache.hadoop.hbase.HBaseConfiguration;importorg.apache.hadoop.hbase.HColumnDescriptor;importorg.apache.hadoop.hbase.HTableDescriptor;importorg.apache.hadoop.hbase.TableName;importorg.apache.hadoop.hbase.client.Admin;importorg.apache.hadoop.hbase.client.Connection;importorg.apache.hadoop.hbase.client.ConnectionFactory;importorg.apache.hadoop.hbase.client.HTable;importorg.apache.hadoop.hbase.client.Put;importorg.apache.hadoop.hbase.regionserver.BloomType;importorg.apache.hadoop.hbase.util.Bytes;publicclassApp{staticConfiguration conf=HBaseConfiguration.create();staticConnection connection;publicstaticvoidmain(String[] args ){String tablename="hbase_tb";try{App.getConnect();App.createTable(tablename);App.addData(tablename);}catch(Exception e){ e.printStackTrace();}}publicstaticvoidgetConnect()throwsIOException{
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来创建 publicstaticvoidcreateTable(String tablename)throwsException{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 =newHTableDescriptor(tableName);@SuppressWarnings("deprecation")HColumnDescriptor colDesc =newHColumnDescriptor("cf1");
colDesc.setBloomFilterType(BloomType.ROWCOL);
desc.addFamily(colDesc);
desc.addFamily(newHColumnDescriptor("cf2"));
admin.createTable(desc); admin.close();System.out.println("create table success!");}publicstaticvoidaddData(String tablename)throwsException{HTable table =(HTable)connection.getTable(TableName.valueOf(tablename));Put p1=newPut(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
版权归原作者 PushyTao 所有, 如有侵权,请联系我们删除。