《Hadoop生态系统及开发 实训手册 实训6 HBase安装与配置.docx》由会员分享,可在线阅读,更多相关《Hadoop生态系统及开发 实训手册 实训6 HBase安装与配置.docx(13页珍藏版)》请在第一文库网上搜索。
1、实训4.1 HBase安装与配置1.实训目的通过本实训任务,理解ZOOkeePer的概念、掌握ZOOkeePer完全分布式环境 搭建、认识HBase的基本架构、理解HBase的原理、完成HBase的安装与部署。 2.实训内容安装和配置Zookeeper,学会分布式Zookeeper的安装;安装HBase,配置 部署 HBase, WebUl 查看 HBase。3 .实训要求以小组为单元进行实训,每小组5人,小组自协商选一位组长,由组长安排 和分配实训任务,具体参考实训操作环节。4 .准备知识(1) Zookeeper的使用场景HA机制(高可用机制)适合于 HDFSHBase 等的 HA,如在前
2、面 HBase 的 master backup-master, 两台节点都去ZK里面创建持久节点,当一个节点创建成功,另外一个就会创建 失败。另外一种是创建临时顺序节点,比如说第一个连接的叫Znode1、第二个 连接的就会叫Znode2、第三个连接的就会叫znode3,连接的节点会按照名词排 序,此时我们定义节点最小的为master,当如果节点最小的节点(ZnodeI)宕机, 则znode2就是最小,此时,这个znode2所连接的服务器就切换成master角色了。配置文件同步分布式系统中会有很多台服务器,服务器的配置文件要一直,如果其中某个 配置发生了变化,那么每一台也应该改一样,操作起来十分
3、繁琐,此时我们可以 使用Zookeeper来同步配置。利用Zookeeper监控此配置文件,如果发生了变化, 则执行另外的同步配置的代码即可。分布式锁使用ZookeePer可以解决分布式环境下多个程序对一个共享资源的竞争的关 系,防止同一资源在同一时刻被多个程序更改,实现过程一样可以使用与HA相 类似的操作。(2) HBaseHBase的数据模型如表4-4所示。表4-4 HBaSe的数据模型Row KeyTimeStampCFlCF2CF3i4RKOOOOO ,TlCF2:ql=val3CF3:q2=val2T2CFlq3=val4T3CF2:q4=val5(3) Row Key与其它NOSq
4、l数据库一样,Row Key是用来检索记录的主键。访问HBase table 中的行,只有3种方式:通过单个Row Key访问通过Row Key的range全表扫描ROWKey行键(RoWKey)可以是任意字符串(最大长度是64KB,实际应 用中长度一般为Io-IOObytes),在HBaSe内部,ROWKey保存为字节数组。存储时,数据按照Row Key的字典序(byte order)排序存储。设计Key时, 要充分排序存储这个特性,将经常一起读取的行存储放到一起。注意:字典序对int排序的结果是:1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,.,9
5、,91,92,93,94,95,96,97,98,99。要保持整形的自然序,行键必须用0作左填充。行的一次读写是原子操作(不论一次读写多少列)。这个设计决策能够使用 户很容易的理解程序在对同一个行进行并发更新操作时的行为。(4)列族HBaSe表中的每个列,都归属与某个列族。列族是表的Chema的一部分(而 列不是),必须在使用表之前定义。列名都以列族作为前缀。例如,courses:history, ,courses:math都属于courses”这个歹IJ 族。访问控制、磁盘和内存的使用统计都是在列族层面进行的。实际应用中,列 族上的控制权限能帮助我们管理不同类型的应用:我们允许一些应用可以添
6、加新 的基本数据、一些应用可以读取基本数据并创建继承的列族、一些应用则只允许 浏览数据(甚至可能因为隐私的原因不能浏览所有数据)。(5)时间戳HBase中通过row和COIUmnS确定的为一个存贮单元称为cello每个cell都 保存着同一份数据的多个版本。版本通过时间戳来索引。时间戳的类型是64位 整型。时间戳可以由HBaSe (在数据写入时自动)赋值,此时时间戳是精确到 毫秒的当前系统时间。时间戳也可以由客户显式赋值。如果应用程序要避免数据 版本冲突,就必须自己生成具有唯一性的时间戳。每个Cen中,不同版本的数据 按照时间倒序排序,即最新的数据排在最前面。为了避免数据存在过多版本造成的的管
7、理(包括存贮和索引)负担,HBase 提供了两种数据版本回收方式。一是保存数据的最后n个版本,二是保存最近一 段时间内的版本(比如最近七天)。用户可以针对每个列族进行设置。(6) Cell由/Ro卬 Key, column = + VIabel , vers汕唯一确定的单元。cell 中的数据是没有类型的,全部是字节码形式存贮。(7) HBaSe整体架构HBaSe的整体架构如图4-2、图4-3所示。Zkeeper clusterRegion server cluster串,JRegion server Region server Region server Region server包含访问H
8、Base的接口,client维护着一些cache来加快对HBase的访问, 比如region的位置信息。(9) Zookeeper保证任何时候,集群中只有一个master存贮所有Region的寻址入口。实时监控Region Server的状态,将Region server的上线和下线信息实时 通知给Master存储HBase的schema,包括有哪些table,每个table有哪些column family(10) Master为 Region server 分酉己 region负责region server的负载均衡发现失效的region server并重新分配其上的regionGFS上的垃
9、圾文件回收处理schema更新请求(11) Region ServerRegion server维护Master分配给它的region,处理对这些region的IO请 求Region server负责切分在运行过程中变得过大的region可以看到,CIient访问HBaSe上数据的过程并不需要master参与(寻址访问 zookeeper region server,数据读写访问 region server), master仅仅维护者 table 和region的元数据信息,负载很低。5.实训步骤(1)安装和配置ZOOkeePer安装包准备 将 apache-zookeeper-3.5.10-
10、bin.tar 压缩包上传至 master 节点的/root/PaCkage 目录下。 解压 apache-zookeeper-3.5.10-bin.tar,这里解压在optsoftware 目录下:Cd rootpackagetar -zxvf apache-zookeeper-3.5.10-bin.tar.gz -C optsoftware配置Zookeeper配置环境变量:vim etcprofile迹加以下内容:export ZK_HOME=/opt/software/apache-zookeeper-3.5.10-binexport PATH=$PATH:$ZKj4OMEbin使配置
11、生效:source ZetcZprofiIe 修改Zookeeper的配置文件($工!10乂住011():cd optsoftwareapache-zookeeper-3.5.10-binconfcp zoo_sample.cfg zoo.cfgvim zoo.cfg修改 dataDir,加上 dataLogDir:dataDir=optsoftwareapache-zookeeper-3.5.10-bin/datadirdataLogDir=optsoftwareapache-zookeeper-3.5.10-bin/logs添加上节点的至系(修改成自己对应的节看名)server.0=mas
12、ter:2888:3888server. I =slave 1:2888:3888SerVer.2=SIaVe2:2888:3888操作结果如图650所示。IdataDi.r=opt SoftVa re/apdc he zookeepe r - 3.5.1 bin/datadi rPataLogDi ropsoftwa re/apache-zookeepe r-3.5.l-bin/logs # the port at which the clients will connect- clientPort=2181# the maximum number of client connections
13、.# increase this if you need to handle more clients #maxClientCnxns=60# Be sure to read the maintenance section of the# administrator guide before turning on autopurge.# http:/zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance # The number of snapshots to retain in dataDir# autopurg
14、e.SnapRetainCount=3# Purge task interval in hours# Set to to disable auto purge feature# autopurge.purgelnterval=liserver.=master: 2888: 3888-server.l=slavel:2888:3888ISerVe r , 2=slave2:2888; 3888图6-50修改Zookeeper的配置文件# 创建Zookeeper对应的路径:mkdir optsoftwareapache-zookeeper-3.5.10-bin/datadir# 创建ZookeeP
15、er节点标识并输入0:Vim optsoftwareapache-zookeeper-3.5.10-bin/datadir/myidO配置 slavel slave2 的 Zookeeper# 复制 master 的 Zookeeper 到 SIaVe 1、slave2:shellscp-call.sh optsoftwareapache-zookeeper-3.5.10-bin# 配置Zookeeper节点标识,修改slave 1的myid为1 (SIaVe2的myid为2): 在Slavel节点执行:vim optsoftwareapache-zookeeper-3.5.10-bin/datadir/myid在slave2节点执行:vim optsoftwareapache-zookeeper-3.5.10-bin/datadir/myid2 配置SlaVe1、SIaVe2的环境变量为了方便