一脸懵逼学习HBase的搭建(注意HBase的版本)

1:Hdfs分布式文件系统存的文件,文件存储。
2:Hbase是存储的数据,海量数据存储,作用是缓存的数据,将缓存的数据满后写入到Hdfs中。
3:hbase集群中的角色:
  (1)、一个或者多个主节点,Hmaster;
  (2)、多个从节点,HregionServer;

 1:由于HBase依赖hdfs,所以下载的时候注意HBase的版本:

  注:我使用的是hadoop2.4版本的,所以HBase选择支持2版本的:hbase-0.96.2-hadoop2-bin.tar.gz

2:上传hbase安装包,上传到一台机器即可:

  建议:自己规划一下自己的机器,最好是独立的,再搞两台机器最好,

     如果不想搞更多的机器,这里放到启动yarn进程的机器上:

       如我的slaver5,slaver6(master节点,slaver1节点,slaver2节点安装Region Server,slaver5,slaver6安装Master ),

       这样负载比较好点,自己电脑吃得消;

过程省略,上传结果如下所示;

2:解压缩刚才上传的hbase-0.96.2-hadoop2-bin.tar.gz:

[root@slaver5 hadoop]# tar -zxvf hbase-0.96.2-hadoop2-bin.tar.gz

 

3:配置HBase集群,要修改3个文件(首先Zookeeper集群已经安装好了哟):

  注意:要把hadoop的hdfs-site.xml和core-site.xml 放到HBase/conf下;

[root@slaver5 conf]# cp /home/hadoop/hadoop-2.4.1/etc/hadoop/{core-site.xml,hdfs-site.xml} ./

 开始修改配置文件:

  3.1:修改hbase-env.sh:

修改如下所示:

//自己的jdk路径
export JAVA_HOME=/usr/java/jdk1.7.0_55//hadoop配置文件的位置export HBASE_CLASSPATH=/home/hadoop/hadoop-2.4.1/conf 
//告诉hbase使用外部的zk,export HBASE_MANAGES_ZK=true   #如果使用独立安装的zookeeper这个地方就是false
export HBASE_MANAGES_ZK=false

 演示操作如下所示:

 

可以使用命令查看jdk的路径:

[root@slaver6 hadoop]# echo $JAVA_HOME
/home/hadoop/jdk1.7.0_65
[root@slaver6 hadoop]#

按ESC进入命令行模式:

搜索内容如下所示:

改成如下内容,使用外部的Zookeeper管理HBase:

 

  3.2:修改hbase-site.xml,vim hbase-site.xml:

修改内容如下所示:

<configuration>
    <!-- 指定hbase在HDFS上存储的路径 -->
        <property>
                <name>hbase.rootdir</name>
                <value>hdfs://ns1/hbase</value>
        </property>
        <!-- 指定hbase是分布式的 -->
        <property>
                <name>hbase.cluster.distributed</name>
                <value>true</value>
        </property>
        <!-- 指定zk的地址,多个用“,”分割 -->
        <property>
                <name>hbase.zookeeper.quorum</name>
             <value>master:2181,slaver1:2181,slaver2:2181</value>
        </property>
</configuration>
        

配置或如下所示,下面的配置仅仅做一下参考,不是此篇博客配置的:

 1 <configuration>
 2   <property>
 3   <!--hbasemaster的主机和端口-->
 4   <name>hbase.master</name>
 5   <value>master1:60000</value>
 6   </property>
 7   <property>
 8   <!--时间同步允许的时间差-->
 9   <name>hbase.master.maxclockskew</name>
10   <value>180000</value>
11   </property>
12   <property>
13   <name>hbase.rootdir</name>
14   <!--hbase共享目录,持久化hbase数据-->
15   <value>hdfs://hadoop-cluster1/hbase</value>
16   </property>
17   <property>
18   <!--是否分布式运行,false即为单机-->
19   <name>hbase.cluster.distributed</name>
20   <value>true</value>
21   </property>
22   <property>
23   <!--zookeeper地址-->
24   <name>hbase.zookeeper.quorum</name>
25   <value>slave1, slave2,slave3</value>
26   </property>
27   <property>
28   <!--zookeeper配置信息快照的位置-->
29   <name>hbase.zookeeper.property.dataDir</name>
30   <value>/home/hadoop/hbase/tmp/zookeeper</value>
31   </property>
32 </configuration>

 修改操作如下所示:

[root@slaver5 conf]# vim hbase-site.xml

 

演示操作如下所示:

  3.3:修改regionservers,vim regionservers:

因为master节点,slaver1节点,slaver2节点安装Region Server,所以这里配置一下,slaver5,slaver6安装Master就可以找到Region Server了;

 4:然后将部署好的HBase传到其他几个节点上面(拷贝里面有html文档,拷贝起来有点慢,可以删除doc文档):

  注:将配置好的HBase拷贝到每一个节点并同步时间。

[root@slaver5 hadoop]# scp -r hbase-0.96.2-hadoop2/ master:/home/hadoop/
[root@slaver5 hadoop]# scp -r hbase-0.96.2-hadoop2/ slaver1:/home/hadoop/
[root@slaver5 hadoop]# scp -r hbase-0.96.2-hadoop2/ slaver2:/home/hadoop/
[root@slaver5 hadoop]# scp -r hbase-0.96.2-hadoop2/ slaver6:/home/hadoop/

5:现在可以启动HBase了,不过启动HBase之前需要将HDFS启动起来(hdfs启动过程省略,之前启动好多次了),因为HBase在hdfs下面创建一个目录叫做hbase,自己配置的:

  注:如果浏览器访问不了,记得关防火墙:service iptables stop,service iptables status;

启动所有的hbase
    1:分别启动zk
        ./zkServer.sh start
    2:启动hbase集群
        start-dfs.sh
    3:启动hbase,在主节点上运行:
        start-hbase.sh

启动完hdfs之后启动HBase:

 

可以查看这几个节点的进程的启动情况:

现在呢,一个HBase已经启动起来了,如果想启动两个HBase,第一个HBase启动不会自动启动第二个HBase,所以现在手动启动第二个HBase,操作如下所示:

  注:为保证集群的可靠性,要启动多个HMaster

6:通过浏览器访问hbase管理页面
    192.168.3.134:60010

可以看到三台master节点,slaver1节点,slaver2节点安装Region Server;slaver6是安装的备份的Master;

7:自己可以测试一下,杀死一个HMaster(slaver5节点的),另一个HMaster立马顶上去了,很强悍,依赖着Zookeeper,爽到爆啊。(kill -9 进程号,-9是强制杀死):

1 添加Hbase节点,删除的话直接kill:
2 [root@slaver6 hadoop]# hbase-daemon.sh start regionserver

 8:使用HBase的命令行客户端操作一下HBase(测试使用,真实环境使用Java操作):

1 进入hbase的shell:hbase shell
2 退出hbase的shell:quit
3 页面:http://ip地址:60010/ 

 由于HBase是非关系型数据库,可以查看一下help看看都有啥命令,然后再操作:

可以查看一些基本的命令:



HBase的一些基本命令(如果在hbase shell客户端,打错了,可按ctrl+BackSpace进行删除):

#创建HBase数据表
create 'myTables',{NAME => 'base_info',VERSIONS => 3},{NAME => 'extra_info'}

hbase(main):016:0> create 'user','info01','info02'

#查看有什么表
list

#查看表结构
describe 'myTables'

#禁用表
disable 'myTables'

#删除表,删除之前要先禁用表
drop 'myTables'

#插入数据,插入一个表的一行的一列的一个值,最后一个字段不带
#不带分号
#put '表名称','行','base_info/extra_info:列名称','列值'
put 'myTables','0001','base_info:name','张三'
put 'myTables','0001','base_info:age','22'
put 'myTables','0001','base_info:sex','男'
put 'myTables','0001','extra_info:addr','河南省'

#查询数据,查询某一行。
get 'myTables','0001'

get 'myTables','0001',{COLUMN => 'base_info:name',VERSION => 10}

scan 'myTables'

#修改值操作,默认不显示历史值
put 'myTables','0001','base_info:name','李四'



 可以去Zookeeper查看hbase的一些信息:

 1 [root@master sbin]# cd /home/hadoop/zookeeper-3.4.5/
 2 [root@master zookeeper-3.4.5]# ls
 3 bin          conf     dist-maven       ivy.xml      NOTICE.txt            recipes              zookeeper-3.4.5.jar.asc
 4 build.xml    contrib  docs             lib          README_packaging.txt  src                  zookeeper-3.4.5.jar.md5
 5 CHANGES.txt  data     ivysettings.xml  LICENSE.txt  README.txt            zookeeper-3.4.5.jar  zookeeper-3.4.5.jar.sha1
 6 [root@master zookeeper-3.4.5]# cd bin/
 7 [root@master bin]# ls
 8 README.txt  zkCleanup.sh  zkCli.cmd  zkCli.sh  zkEnv.cmd  zkEnv.sh  zkServer.cmd  zkServer.sh  zookeeper.out
 9 [root@master bin]# ./zkCli.sh
10 Connecting to localhost:2181
11 2017-12-18 17:08:22,357 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.5-1392090, built on 09/30/2012 17:52 GMT
12 2017-12-18 17:08:22,383 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=master
13 2017-12-18 17:08:22,383 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.7.0_65
14 2017-12-18 17:08:22,383 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
15 2017-12-18 17:08:22,385 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/home/hadoop/jdk1.7.0_65/jre
16 2017-12-18 17:08:22,385 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/home/hadoop/zookeeper-3.4.5/bin/../build/classes:/home/hadoop/zookeeper-3.4.5/bin/../build/lib/*.jar:/home/hadoop/zookeeper-3.4.5/bin/../lib/slf4j-log4j12-1.6.1.jar:/home/hadoop/zookeeper-3.4.5/bin/../lib/slf4j-api-1.6.1.jar:/home/hadoop/zookeeper-3.4.5/bin/../lib/netty-3.2.2.Final.jar:/home/hadoop/zookeeper-3.4.5/bin/../lib/log4j-1.2.15.jar:/home/hadoop/zookeeper-3.4.5/bin/../lib/jline-0.9.94.jar:/home/hadoop/zookeeper-3.4.5/bin/../zookeeper-3.4.5.jar:/home/hadoop/zookeeper-3.4.5/bin/../src/java/lib/*.jar:/home/hadoop/zookeeper-3.4.5/bin/../conf:
17 2017-12-18 17:08:22,385 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/i386:/lib:/usr/lib
18 2017-12-18 17:08:22,386 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
19 2017-12-18 17:08:22,387 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
20 2017-12-18 17:08:22,396 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
21 2017-12-18 17:08:22,397 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=i386
22 2017-12-18 17:08:22,397 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=2.6.32-358.el6.i686
23 2017-12-18 17:08:22,398 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root
24 2017-12-18 17:08:22,428 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root
25 2017-12-18 17:08:22,470 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/home/hadoop/zookeeper-3.4.5/bin
26 2017-12-18 17:08:22,472 [myid:] - INFO  [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@1238fa5
27 Welcome to ZooKeeper!
28 2017-12-18 17:08:22,994 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@966] - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)
29 JLine support is enabled
30 2017-12-18 17:08:23,281 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@849] - Socket connection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
31 2017-12-18 17:08:24,145 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1207] - Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x16068706a9b0008, negotiated timeout = 30000
32
33 WATCHER::
34
35 WatchedEvent state:SyncConnected type:None path:null
36 [zk: localhost:2181(CONNECTED) 0] ls /
37 [hadoop-ha, hbase, admin, zookeeper, consumers, config, 20171011, storm, yarn-leader-election, brokers, controller_epoch]
38 [zk: localhost:2181(CONNECTED) 3] get /hbase
39
40 cZxid = 0xc00000007
41 ctime = Wed Oct 25 17:29:19 CST 2017
42 mZxid = 0xc00000007
43 mtime = Wed Oct 25 17:29:19 CST 2017
44 pZxid = 0xf0000004a
45 cversion = 23
46 dataVersion = 0
47 aclVersion = 0
48 ephemeralOwner = 0x0
49 dataLength = 0
50 numChildren = 15
51 [zk: localhost:2181(CONNECTED) 4] ls /
52 [hadoop-ha, hbase, admin, zookeeper, consumers, config, 20171011, storm, yarn-leader-election, brokers, controller_epoch]
53 [zk: localhost:2181(CONNECTED) 5] ls /hbase
54 [meta-region-server, backup-masters, region-in-transition, draining, table, table-lock, running, master, namespace, hbaseid, online-snapshot, replication, recovering-regions, splitWAL, rs]
55 [zk: localhost:2181(CONNECTED) 6] ls /hbase/table
56 [hbase:meta, hbase:namespace, user]
57 [zk: localhost:2181(CONNECTED) 7] 

待续......

时间: 2024-09-20 00:44:43

一脸懵逼学习HBase的搭建(注意HBase的版本)的相关文章

一脸懵逼学习Storm的搭建--(一个开源的分布式实时计算系统)

Storm的官方网址:http://storm.apache.org/index.html 1:集群部署的基本流程(基本套路): 集群部署的流程:下载安装包.解压安装包.修改配置文件.分发安装包.启动集群;  1:安装一个zookeeper集群,之前已经部署过,这里省略,贴一下步骤: 安装配置zooekeeper集群:        1.1:解压            tar -zxvf zookeeper-3.4.5.tar.gz        1.2:修改配置            cd /

一脸懵逼学习Hadoop中的序列化机制——流量求和统计MapReduce的程序开发案例——流量求和统计排序

一:序列化概念 序列化(Serialization)是指把结构化对象转化为字节流.反序列化(Deserialization)是序列化的逆过程.即把字节流转回结构化对象.Java序列化(java.io.Serializable) 二:Hadoop序列化的特点 (1):序列化格式特点: 紧凑:高效使用存储空间. 快速:读写数据的额外开销小. 可扩展:可透明地读取老格式的数据. 互操作:支持多语言的交互. (2):Hadoop的序列化格式:Writable接口 三:Hadoop序列化的作用: (1):

一脸懵逼学习KafKa集群的安装搭建--(一种高吞吐量的分布式发布订阅消息系统)

1:KafKa的官方网址:http://kafka.apache.org/ 开发流程图,如: 2:KafKa的基础知识: 2.1:kafka是一个分布式的消息缓存系统2.2:kafka集群中的服务器都叫做broker2.3:kafka有两类客户端,一类叫producer(消息生产者),一类叫做consumer(消息消费者),客户端和broker服务器之间采用tcp协议连接2.4:kafka中不同业务系统的消息可以通过topic进行区分,而且每一个消息topic都会被分区,以分担消息读写的负载2.

一脸懵逼学习基于CentOs的Hadoop集群安装与配置(三台机器跑集群)

1:Hadoop分布式计算平台是由Apache软件基金会开发的一个开源分布式计算平台.以Hadoop分布式文件系统(HDFS)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构.  注意:HADOOP的核心组件有: 1)HDFS(分布式文件系统) 2)YARN(运算资源调度系统) 3)MAPREDUCE(分布式运算编程框架)       Hadoop 中的分布式文件系统 HDFS 由一个管理结点 ( NameNode

一脸懵逼学习Struts数据校验以及数据回显,模型驱动,防止表单重复提交的应用。

1:Struts2表单数据校验: (1)前台校验,也称之为客户端校验,主要是通过Javascript编程的方式进行数据的验证. (2)后台校验,也称之为服务器校验,这里指的是使用Struts2通过xml配置的方式进行表单数据的校验. (3)代码方式验证Action中所有的方法:代码方式验证Action中指定的方法:xml方式验证Action中所有的方法:xml方式验证Action中指定的方法: 2:代码方式验证Action中所有的方法(自己记得导jar包和我配置web.xml文件,自己脑补吧):

一脸懵逼学习Hadoop分布式集群HA模式部署(七台机器跑集群)

1)集群规划:主机名        IP      安装的软件                     运行的进程master    192.168.199.130   jdk.hadoop                     NameNode.DFSZKFailoverController(zkfc)slaver1    192.168.199.131    jdk.hadoop                       NameNode.DFSZKFailoverController(

一脸懵逼学习Hadoop中的MapReduce程序中自定义分组的实现

1:首先搞好实体类对象: write 是把每个对象序列化到输出流,readFields是把输入流字节反序列化,实现WritableComparable,Java值对象的比较:一般需要重写toString(),hashCode(),equals()方法 1 package com.areapartition; 2 3 import java.io.DataInput; 4 import java.io.DataOutput; 5 import java.io.IOException; 6 7 im

一脸懵逼学习Hive的安装(将sql语句翻译成MapReduce程序的一个工具)

Hive只在一个节点上安装即可: 1.上传tar包:这个上传就不贴图了,贴一下上传后的,看一下虚拟机吧: 2.解压操作: [root@slaver3 hadoop]# tar -zxvf hive-0.12.0.tar.gz 解压后贴一下图:  3:解压缩以后启动一下hive:  4:开始操作sql: 好吧,开始没有启动集群,输入mysql创建数据库命令,直接不屌我,我也是苦苦等待啊: 5:启动我的集群,如下所示,这里最后帖一遍部署以后集群关了,重新开启集群的步骤,不能按照部署集群的时候进行格式

一脸懵逼学习Hive的使用以及常用语法(Hive语法即Hql语法)

Hive官网(HQL)语法手册(英文版):https://cwiki.apache.org/confluence/display/Hive/LanguageManual  Hive的数据存储 1.Hive中所有的数据都存储在 HDFS 中,没有专门的数据存储格式(可支持Text,SequenceFile,ParquetFile,RCFILE等) 2.只需要在创建表的时候告诉 Hive 数据中的列分隔符和行分隔符,Hive 就可以解析数据. 3.Hive 中包含以下数据模型:DB.Table,Ex