本博客是在VMware15.5pro、hadoop-2.7.5、jdk1.8.0、hbase-1.2.10,下进行的
hbase-1.2.10-bin.tar.gz下载地址:Index of /dist/hbase
怎样下载,同志们可以百度,这里不加以赘述。(这里不懂一些基础命令的可以参考之前的博客,这个与hadoop伪分布式的搭建类似)
(12条消息) hadoop的伪分布环境搭建(hadoop-2.7.5)_qq_45672631的博客-CSDN博客
下载好hbase-1.2.10-bin.tar.gz,利用Xftp(或其他文件传送工具),将其传送至/usr/local/tmp(tmp是我自己创建的一个临时文件夹,用来存放这些压缩包,与临时文件)
在当前目录下通过命令
tar -zxf hbase-1.2.10-bin.tar.gz
进行解压
然后通过命令(../后面可以跟已有文件夹名,如果没有认为是重命名)
mv hbase-1.2.10 ../hbase
移动到/usr/local 下
配置环境变量
vim /etc/profile
Hbase_HOME后面跟hbase的安装路径
重启配置服务
source /etc/profile
然后查看版本号
hbase version
开始配置hbase伪分布式(这里只需要配置两个文件(在conf下),然后将hadoop/etc/hadoop下的core-site.xml与hdfs-site.xml复制到conf下)
cp core-site.xml ../../../hbase/conf
cp hdfs-site.cml ../../../hbase/conf
这里../,表示当前主体文件所要复制到目的地的层数(我这里的hadoop,与hbase是在同一路径下的(/usr/local)core-site.xml与hdfs-site.xml文件是在hadoop/etc/hadoop下的所以这里先回到local下,然后找hbase下的conf),在GUI版的可以直接鼠标操作,不在赘述。
编辑hbase-env.shvim hbase-env.sh
按i进入编辑模式,用方向键下移到26行,将27行修改,并添加(按下图,第一个声明jdk路径,第二个声明使用hbase内置的zookeeper)ESC退出编辑模式
:wq保存并退出。
2.编辑hbase-site.xml文件命令
vim hbase-site.xml
第一个标签按照你的hadoop的core-site.xml 文件来配置(端口号后面加上/hbase)。
第二个标签指定hbase是否为伪分布式。
配置完成退出
启动hadoop、hbase(这里不需要yarn,在hadoop配置过免密登录的这里就不用配置)
命令
start-dfs.sh
start-hbase.sh
通过主机名(ip):16010访问hbase
lcy-1:16010
Hbase的安装、配置与实践 - 顾北清歌寒。 - 博客园 (cnblogs.com)
根据上面的博客熟悉hbase shell命令(这里不在演示,而是运行该博客的一个实例)
1.linux上的eclipse本地连接hbase这个hbase依附于hadoop,只要之前hadoop,在eclipse上创建的连接没问题就行(hdfs中会多一个hbase的文件夹)。
创建一个Java Project(java的项目)File->New->Project(选择Java Project)点击Next
Java Project (Project name(随便创),选择JRE旁的J2SE-1.5(点击那个倒三角符号选择J2SE-1.5))。
外部导入jar包(右击工程,Build Path->configure Build Path)
将hbase的lib下的jar全部导入Liberaries。
点击上图右边的 Add Extermal JARs...。(注意是全部的jar)
点击Apply and Colse
在src下创建一个java包 (右击Project,New->Package,名字任取),然后在Java包下创建一个java类(右击java包,New->Class,名字任取)。
将上述博客中的代码copy一下(注意主类名与包名,建议分开复制(避免修改主类名,与java包名))。
同样,也需要将log4j.properties搞到src下。
在代码没问题后,需要修改源代码中创建连接的一个地方(修改成自己的主机名(ip),按照hbase-site.xml文件)。
然后按照主类中的注释开始运行代码
a.创建一个表,表名为Score,列族为sname,course
b.在Score表中插入一条数据,其行键为95001,sname为Mary(因为sname列族下没有子列所以第四个参数为空)
c.在Score表中插入一条数据,其行键为95001,course:Math为88(course为列族,Math为course下的子列)
d.在Score表中插入一条数据,其行键为95001,course:English为85(course为列族,English为course下的子列)
e.删除Score表中指定列数据,其行键为95001,列族为course,列为Math
f.删除Score表中指定列族数据,其行键为95001,列族为course(95001的Math和English的值都会被删除)
g .删除Score表
这里删除就将指定的内容删掉了(原博客也只是介绍不同的写法),这个实例遇到的问题则是在连接上。
2.windows上的eclipse远程连接hbase同理,在windows上建立远程连接,将有可能遇到一个问题(这里,老方法,将linux上的hbase拷到windows上,导入jar包时就能(也可以试试自己将lib解压使用,因为之前一直报错,我以为是,hbase不完整,后面发现在windows上创建连接需要修改原博客中的代码(创建连接哪里)))
按照下图添加(如果仔细观察代码运行时控制台会先连接zookeeper端口就是2181)
之前我以为是用户(ASUS)的问题(在GUI上的这里显示的root用户,所以我感觉是不是hbase不完整(因为之前导入jar时我只解压了lib,当时直接百度这个问题,当时说修改conf.set(一时没反应过来,我以为是hbase中的配置文件,没找到就忽略了,害!)))
这个问题代码运行时会一直去连接zookeeper,时间也挺长,代码运行时很快的。(看到create table success)
这里的是配置了一个基于服务开发的linux(centos)
后面的就不再操作了。本篇博客中,有些命令的操作并没有加以强调(到这里,其实也差不多了,也挺详细的,毕竟都到这步了,那些什么ls这类的也没必要),GUI的配置也和这个一样。



