指导手册06:HBase安装部署
指导手册06:HBase安装部署
配置环境
1.参考文件:
https://www.cnblogs.com/lzxlfly/p/7221890.html
https://www.cnblogs.com/sixiweb/archive/2013/02/20/2919305.html
2.操作系统:centos
3.四台虚拟机:master :10.0.2.4, slave1:10.0.2.5,slave2:10.0.2.6,slave3:10.0.2.7
4.Hadoop系统己安装完成。
5.Java环境己配置,输入命令,source /etc/profile 使配置生效
分别输入命令,java 、 javac 、 java -version,查看jdk环境变量是否配置成功
Part 1:安装HBase
1. HBase下载
网址:http://hbase.apache.org/downloads.html建议下载稳定版本hbase-1.2.6.1-bin.tar.gz
稳定版下载地址:http://archive.apache.org/dist/hbase/stable/
2.Hbase安装步骤:
(1)安装Hadoop:
tar –zxf /opt/hbase-1.2.6.1-bin.tar.gz -C /opt
[root@master local]mv hbase-1.2.6.1 hbase-1.2.6
(2)在Hadoop配置的基础上,配置环境变量HBASE_HOME、hbase-env.sh
编辑 vim /etc/profile 加入
export HBASE_HOME=/opt/hbase-1.2.6
export PATH=$HBASE_HOME/bin:$PATH
编辑vim /opt/hbase-1.2.6/conf/hbase-env.sh 加入
export JAVA_HOME=/usr/java/jdk1.7.0_80(jdk安装路径)
去掉注释 # export HBASE_MANAGES_ZK=true,使用hbase自带zookeeper。
(3) 配置hbase-site.xml文件
<configuration>
<property>
<name>hbase.rootdir</name> <!-- hbase存放数据目录 -->
<value>hdfs://master:8020/hbase/hbase_db</value>
<!-- 端口要和Hadoop的fs.defaultFS端口一致-->
</property>
<property>
<name>hbase.cluster.distributed</name> <!-- 是否分布式部署 -->
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name> <!-- list of zookooper -->
<value>master,slave1,slave2</value>
</property>
<property><!--zookooper配置、日志等的存储位置 -->
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/hbase/zookeeper</value>
<!—如果目录不存在,需创建并给权限 -->
</property>
</configuration>
(4) 配置regionservers
编辑 vim /opt/hbase-1.2.6/conf/regionservers 去掉默认的localhost,
加入slave1、slave2,slave3保存退出 (因为用name出错,我改用了IP地址)。
然后把在master上配置好的hbase,通过远程复制命令
scp -r /opt/hbase-1.2.6 10.0.2.5/7:/opt/hbase-1.2.6
复制到slave1、slave2、slave3的位置
(5) 各节点关闭防火墙
Service iptables stop
(6) 启动与停止Hbase
(6.1)在Hadoop已经启动成功的基础上,输入start-hbase.sh。
输入jps命令查看进程是否启动成功,若 master上出现HMaster、HQuormPeer,
slave上出现HRegionServer、HQuorumPeer,就是启动成功了。
(6.2)输入hbase shell 命令 进入hbase命令模式
输入status命令可以看到如下内容,1个master,2 servers,3机器全部成功启动。
1 active master, 0 backup masters, 2 servers, 0 dead, 2.0000 average load
如果报slf4j-log4j12-1.7.5冲突错误,请删除/hbase-1.2.6.1/lib目录下的slf4j-log4j12-1.7.5包。原因:该包和hadoop下面的包冲突了。删掉一个即可。
(6.3)修改配置本地hosts。
编辑 etc\hosts文件,加入
127.0.0.1 localhost (需添加)
10.0.2.4 master master.centos.com
10.0.2.5 slave1 slave1.centos.com
10.0.2.6 slave2 slave2.centos.com
10.0.2.7 slave3 slave3.centos.com
在浏览器中输入http://master:16010就可以在界面上看到hbase的配置了
(6.4)当要停止hbase时输入stop-hbase.sh,过几秒后hbase就会被停止了。
注意:如果在操作HBase的过程中发生错误,可以通过{HBASE_HOME}目录(/usr/local/hbase)下的logs子目录中的日志文件查看错误原因。
这里启动关闭Hadoop和HBase的顺序一定是:
启动Hadoop—>启动HBase—>关闭HBase—>关闭Hadoop
3.调试
(1) /bin/java 没有那个文件或目录 hbase
今天在启动HBase时发现如下错误:/bin/java: No such file or directory6/bin/../bin/hbase: line 412: /usr/local/jdk1.8.0_152/bin/java,而在我的hbase-env.sh中又JAVA_HOME,路径也是正确的,可为什么还会报这个错误呢?后来我才发现是因为我使用的hbase-env.sh文件是我自己创建的,而不是hbase目录中本身存在的那个配置文件,hbase不认可这种自己创建的配置文件因此才报错。
(2)启动hadoop时候报错:localhost: ssh: Could not resolve hostname localhost: Temporary failure in name resolution”
在hosts文件中添加
127.0.0.1 localhost
(3)出错时日志查看:hbase/logs
(4) HBase集群部署,创建表错误(Master is initializing),
http://blog.sina.com.cn/s/blog_af5a109b01018ezy.html
(5) 关于从节点的HRegionServer启动不起来的解决办法
启动时间同步
(6) hbase数据库错误——ERROR: Can't get master address from ZooKeeper; znode data == null
https://blog.csdn.net/u010022051/article/details/44176931
需新建一个zookeeper目录
Part 2: Hbase Shell操作
1. HBase中创建表
HBase中用create命令创建表,具体如下:
create 'student','name','sex','age','dept','course'
命令执行截图如下:
此时,即创建了一个“student”表,属性有:name,sex,age,dept,course。因为HBase的表中会有一个系统默认的属性作为行键,无需自行创建,默认为put命令操作中表名后第一个数据。创建完“student”表后,可通过describe命令查看“student”表的基本信息。命令执行截图如下:
2. HBase数据库基本操作
练习HBase的增、删、改、查操作。在添加数据时,HBase会自动为添加的数据添加一个时间戳,故在需要修改数据时,只需直接添加数据,HBase即会生成一个新的版本,从而完成“改”操作,旧的版本依旧保留,系统会定时回收垃圾数据,只留下最新的几个版本,保存的版本数可以在创建表的时候指定。
(1)添加数据
HBase中用put命令添加数据,注意:一次只能为一个表的一行数据的一个列,也就是一个单元格添加一个数据,所以直接用shell命令插入数据效率很低,在实际应用中,一般都是利用编程操作数据。
当运行命令:put ‘student’,’18001’,’name’,’zhangsan’时,即为student表添加了学号为18001,名字为zhangsan的一行数据,其行键为18001。shell命令为:
put 'student','18001','name','zhangsan
命令执行截图如下,即为student表添加了学号为18001,名字为zhangsan的一行数据,其行键为18001。
Shell命令:
put 'student','18001','course:math','80'
即为18001行下的course列族的math列添加了一个数据。截图如下:
继续添加数据:
put 'student','18001','dept','software’
put 'student', '18001','age','18'
put 'student', '18001','sex','male'
(2)查看数据
HBase中有两个用于查看数据的命令:
- get命令,用于查看表的某一行数据;
- scan命令用于查看某个表的全部数据
(2.1). get命令
get 'student','18001'
命令执行截图如下, 返回的是‘student’表‘18001’行的数据。
(2.2) scan命令
scan 'student'
命令执行截图如下, 返回的是‘student’表的全部数据。
(3)删除数据
在HBase中用delete以及deleteall命令进行删除数据操作,它们的区别是:1. delete用于删除一个数据,是put的反向操作;2. delete all操作用于删除一行数据。
(3.1) delete命令
delete 'student','18001','sex'
命令执行截图如下, 即删除了student表中95001行下的sex列的所有数据。
(3.2) deleteall命令
deleteall 'student','18001'
命令执行截图如下,即删除了student表中的18001行的全部数据。
(4)删除表
删除表有两步,第一步先让该表不可用,第二步删除表。删除表之前,可以使用list命令查看所有表。命令:
list
disable 'student'
drop 'student'
命令执行截图如下:
(5)查询表历史数据
查询表的历史版本,需要两步。
(5.1)在创建表的时候,指定保存的版本数(假设指定为5)
create 'teacher',{NAME=>'username',VERSIONS=>5}
(5.2)插入数据然后更新数据,使其产生历史版本数据,注意:这里插入数据和更新数据都是用put命令
put 'teacher','81001','username','zhangsan'
put 'teacher','81001','username','lisi'
put 'teacher','81001','username','wangwu'
put 'teacher','81001','username','zhaoliu'
put 'teacher','81001','username','xiaoming'
put 'teacher','81001','username','xiaoli'
(5.3) 查询时,指定查询的历史版本数。默认会查询出最新的数据。(有效取值为1到5)
get 'teacher','81001',{COLUMN=>'username',VERSIONS=>5}
查询结果截图如下:
(6)退出HBase数据库操作
最后退出数据库操作,输入exit命令即可退出,注意:这里退出HBase数据库是退出对数据库表的操作,而不是停止启动HBase数据库后台运行。
Shell 命令:exit
指导手册06:HBase安装部署的更多相关文章
- 指导手册01:安装Hadoop
指导手册01:安装Hadoop Part 1:安装及配置虚拟机 1.安装Linux. (1)打开VMvirtualBox (2) 控制->新建虚拟机,输入虚拟机名称“marst+学号” 类型: ...
- Hadoop第12周练习—HBase安装部署
1 1.1 1.2 :安装HBase 2.1 内容 运行环境说明 1.1 硬软件环境 线程,主频2.2G,6G内存 l 虚拟软件:VMware® Workstation 9.0.0 build-8 ...
- hbase安装部署
hbase的安装 ①cp /mnt/hgfs/xiazai/hbase-1.2.5-bin.tar.gz /data tar -xzvf hbase-1.2.5-bin.tar.gz ②环境 sud ...
- Hadoop+Hbas完全分布式安装部署
Hadoop安装部署基本步骤: 1.安装jdk,配置环境变量. jdk可以去网上自行下载,环境变量如下: 编辑 vim /etc/profile 文件,添加如下内容: export JAVA_HO ...
- Hadoop2.7.3+Hbase-1.2.6+spark2.1.2完全分布式安装部署
https://www.cnblogs.com/lzxlfly/p/7221890.html 总的下载地址: http://mirror.bit.edu.cn/apache/ hadoop下 ...
- 指导手册 07 安装配置HIVE
指导手册 07 安装配置HIVE 安装环境及所需安装包: 1.操作系统:centos6.8 2.四台虚拟机:master :10.0.2.4, slave1:10.0.2.5,slave2:10. ...
- Hbase单机安装部署
Hbase单机安装部署 http://blogxinxiucan.sh1.newtouch.com/2017/07/27/Hbase单机安装部署/ 下载Hbase Hbase官网下载地址 http:/ ...
- HBase集群安装部署
0x01 软件环境 OS: CentOS6.5 x64 java: jdk1.8.0_111 hadoop: hadoop-2.5.2 hbase: hbase-0.98.24 0x02 集群概况 I ...
- Linux下安装部署Samba共享盘的操作手册
简述 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的 ...
随机推荐
- python-request-各方法使用及格式
Request库方法介绍 方法 说明 requests.request() 构造一个请求,支撑一下各方法的基础方法 requests.get() 获取HTML网页的主要方法,对应于HTTP的GET ...
- MySQL 存储过程的变量
MySQL 存储过程的变量 变量是一个命名数据对象,变量的值可以在存储过程执行期间更改.我们通常使用存储过程中的变量来保存直接/间接结果. 这些变量是存储过程的本地变量. 注意:变量必须先声明后,才 ...
- English trip V2 - 4. Really Wild Teacher:Maple Key:Adjectives of feeling
In this lesson you will learn how to recognize animals and describe feeling. 课上内容(Lesson) 词汇(Key Wor ...
- 还能不能愉快地起一个web服务啦?——1st Step!白话http和代码交互的那点儿事儿~
学写python的时候,我们多多少少都接触到了web程序,然而你有没有想过,当浏览器发送了一个http请求时,等待接收这个请求的后端代码是一种什么样的思想感情? 就像下面这张图里画的一样,后端也许是一 ...
- 【javascript】数据类型中的一些小知识点
1. undefined 和 null undefined是一个变量而不是一个关键字,所以可以被重新赋值.为了避免歧义,一般推荐用void 0 来获取undefined: null是一个关键字,所以可 ...
- 按照固定字符数切割字符串 基于python的re正则表达式
def cut_text(text,lenth): textArr = re.findall('.{'+str(lenth)+'}', text) textArr.append(text[(len(t ...
- 给MS的意见
2017-02-27 WPF的中文注释文档翻译得很烂.太多了,列举不过来. 这个是 System.Threading.Tasks.Task.Exception: 获取导致 System.Aggrega ...
- day1扩展作业
作业一:博客作业二:编写登陆接口,●输入用户名密码(有文件存储用户名,命名)●认证成功后显示欢迎信息●输错三次后锁定(再次运行程序,还是输入上次输入的就显示已被锁定)作业三:多级菜单●三级菜单 ●可依 ...
- [luogu P2391] 白雪皑皑
[luogu P2391] 白雪皑皑 题目背景 “柴门闻犬吠,风雪夜归人”,冬天,不期而至.千里冰封,万里雪飘.空中刮起了鸭毛大雪.雪花纷纷,降落人间. 美能量星球(pty 在 spore 上的一个殖 ...
- 国外服务器:org.xml.sax.SAXParseException
改为: xsi:schemaLocation="http://www.springframework.org/schema/beans classpath:org/springframewo ...