版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实训4.1HBase安装与配置1.实训目的通过本实训任务,理解Zookeeper的概念、掌握Zookeeper完全分布式环境搭建、认识HBase的基本架构、理解HBase的原理、完成HBase的安装与部署。2.实训内容安装和配置Zookeeper,学会分布式Zookeeper的安装;安装HBase,配置部署HBase,WebUI查看HBase。3.实训要求以小组为单元进行实训,每小组5人,小组自协商选一位组长,由组长安排和分配实训任务,具体参考实训操作环节。4.准备知识(1)Zookeeper的使用场景①HA机制(高可用机制)适合于HDFS、HBase等的HA,如在前面HBase的master、backup_master,两台节点都去ZK里面创建持久节点,当一个节点创建成功,另外一个就会创建失败。另外一种是创建临时顺序节点,比如说第一个连接的叫znode1、第二个连接的就会叫znode2、第三个连接的就会叫znode3,连接的节点会按照名词排序,此时我们定义节点最小的为master,当如果节点最小的节点(znode1)宕机,则znode2就是最小,此时,这个znode2所连接的服务器就切换成master角色了。②配置文件同步分布式系统中会有很多台服务器,服务器的配置文件要一直,如果其中某个配置发生了变化,那么每一台也应该改一样,操作起来十分繁琐,此时我们可以使用Zookeeper来同步配置。利用Zookeeper监控此配置文件,如果发生了变化,则执行另外的同步配置的代码即可。③分布式锁使用Zookeeper可以解决分布式环境下多个程序对一个共享资源的竞争的关系,防止同一资源在同一时刻被多个程序更改,实现过程一样可以使用与HA相类似的操作。(2)HBase HBase的数据模型如表4-4所示。表4-4HBase的数据模型RowKeyTimeStampCF1CF2CF3“RK000001”T1CF2:q1=val3CF3:q2=val2T2CF1:q3=val4T3CF2:q4=val5(3)RowKey与其它Nosql数据库一样,RowKey是用来检索记录的主键。访问HBasetable中的行,只有3种方式:①通过单个RowKey访问②通过RowKey的range③全表扫描RowKey行键(RowKey)可以是任意字符串(最大长度是64KB,实际应用中长度一般为10-100bytes),在HBase内部,RowKey保存为字节数组。存储时,数据按照RowKey的字典序(byteorder)排序存储。设计Key时,要充分排序存储这个特性,将经常一起读取的行存储放到一起。注意:字典序对int排序的结果是:1,10,100,11,12,13,14,15,16,17,18,19,2,20,21,…,9,91,92,93,94,95,96,97,98,99。要保持整形的自然序,行键必须用0作左填充。行的一次读写是原子操作(不论一次读写多少列)。这个设计决策能够使用户很容易的理解程序在对同一个行进行并发更新操作时的行为。(4)列族HBase表中的每个列,都归属与某个列族。列族是表的chema的一部分(而列不是),必须在使用表之前定义。列名都以列族作为前缀。例如”courses:history”,”courses:math”都属于”courses”这个列族。访问控制、磁盘和内存的使用统计都是在列族层面进行的。实际应用中,列族上的控制权限能帮助我们管理不同类型的应用:我们允许一些应用可以添加新的基本数据、一些应用可以读取基本数据并创建继承的列族、一些应用则只允许浏览数据(甚至可能因为隐私的原因不能浏览所有数据)。(5)时间戳HBase中通过row和columns确定的为一个存贮单元称为cell。每个cell都保存着同一份数据的多个版本。版本通过时间戳来索引。时间戳的类型是64位整型。时间戳可以由HBase(在数据写入时自动)赋值,此时时间戳是精确到毫秒的当前系统时间。时间戳也可以由客户显式赋值。如果应用程序要避免数据版本冲突,就必须自己生成具有唯一性的时间戳。每个cell中,不同版本的数据按照时间倒序排序,即最新的数据排在最前面。为了避免数据存在过多版本造成的的管理(包括存贮和索引)负担,HBase提供了两种数据版本回收方式。一是保存数据的最后n个版本,二是保存最近一段时间内的版本(比如最近七天)。用户可以针对每个列族进行设置。(6)Cell由{RowKey,column(=<family>+<label>),version}唯一确定的单元。cell中的数据是没有类型的,全部是字节码形式存贮。(7)HBase整体架构 HBase的整体架构如图4-2、图4-3所示。图4-2HBase集群架构图图4-3HBase系统架构图(8)Client包含访问HBase的接口,client维护着一些cache来加快对HBase的访问,比如region的位置信息。(9)Zookeeper①保证任何时候,集群中只有一个master②存贮所有Region的寻址入口。③实时监控RegionServer的状态,将Regionserver的上线和下线信息实时通知给Master④存储HBase的schema,包括有哪些table,每个table有哪些columnfamily(10)Master①为Regionserver分配region②负责regionserver的负载均衡③发现失效的regionserver并重新分配其上的region④GFS上的垃圾文件回收⑤处理schema更新请求(11)RegionServer①Regionserver维护Master分配给它的region,处理对这些region的IO请求②Regionserver负责切分在运行过程中变得过大的region可以看到,Client访问HBase上数据的过程并不需要master参与(寻址访问zookeeper和regionserver,数据读写访问regionserver),master仅仅维护者table和region的元数据信息,负载很低。实训步骤(1)安装和配置Zookeeper①安装包准备将apache-zookeeper-3.5.10-bin.tar压缩包上传至master节点的/root/package目录下。解压apache-zookeeper-3.5.10-bin.tar,这里解压在/opt/software目录下:cd/root/packagetar-zxvfapache-zookeeper-3.5.10-bin.tar.gz-C/opt/software/②配置Zookeeper配置环境变量:vim/etc/profile添加以下内容:exportZK_HOME=/opt/software/apache-zookeeper-3.5.10-binexportPATH=$PATH:$ZK_HOME/bin使配置生效:source/etc/profile修改Zookeeper的配置文件($ZK_HOME/conf):cd/opt/software/apache-zookeeper-3.5.10-bin/confcpzoo_sample.cfgzoo.cfgvimzoo.cfg修改dataDir,加上dataLogDir:dataDir=/opt/software/apache-zookeeper-3.5.10-bin/datadirdataLogDir=/opt/software/apache-zookeeper-3.5.10-bin/logs添加上节点的关系(修改成自己对应的节点名)server.0=master:2888:3888server.1=slave1:2888:3888server.2=slave2:2888:3888 操作结果如图6-50所示。图6-50修改Zookeeper的配置文件创建Zookeeper对应的路径:mkdir/opt/software/apache-zookeeper-3.5.10-bin/datadir创建Zookeeper节点标识并输入0:vim/opt/software/apache-zookeeper-3.5.10-bin/datadir/myid0③配置slave1、slave2的Zookeeper复制master的Zookeeper到slave1、slave2:~/shell/scp_call.sh/opt/software/apache-zookeeper-3.5.10-bin配置Zookeeper节点标识,修改slave1的myid为1(slave2的myid为2):在slave1节点执行:vim/opt/software/apache-zookeeper-3.5.10-bin/datadir/myid1在slave2节点执行:vim/opt/software/apache-zookeeper-3.5.10-bin/datadir/myid2配置slave1、slave2的环境变量为了方便操作,可以拷贝master上的环境变量文件到slave1、slave2节点。在master节点执行:~/shell/scp_call.sh/etc/profile拷贝完成后,需要在slave1、slave2节点上执行source操作:source/etc/profile(2)校验Zookeeper①启动master、slave1、slave2上的Zookeeper。分别在三台节点上执行:zkServer.shstart 在master上启动Zookeeper如图6-51所示。图6-51在master启动Zookeeper 在slave1上启动Zookeeper如图6-52所示。图6-52在slave1启动Zookeeper 在slave2上启动Zookeeper如图6-53所示。图6-52在slave2启动Zookeeper②查看master、slave1、slave2上Zookeeper状态zkServer.shstatus 查看master节点上的Zookeeper状态如图6-57所示。图6-57master节点上的Zookeeper状态 查看slave1节点上的Zookeeper状态如图6-58所示。图6-58slave1节点上的Zookeeper状态 查看slave2节点上的Zookeeper状态如图6-59所示。图6-59slave2节点上的Zookeeper状态说明:如果需要在三台节点上执行相同的操作,可以使用附录提供的脚本:call_all.sh。使用说明:执行call_all.sh脚本,加上需要操作的命令即可。比如,需要在三台节点上执行“jps”命令,则可以在master机上执行:call_all.shjps如需要在三台节点执行“zkServer.shstatus”,脚本在“~/shell”目录,则可以在master机上执行:~/shell/call_all.sh"zkServer.shstatus"效果如图4-所示。图4-查看ZooKeeper节点的状态由于执行的命令有空格,所以可以使用双引号。(3)安装和配置HBase①将hbase-2.5.0-bin.tar.gz压缩包上传至master节点的/root/package目录下,解压在/opt/software/目录下:cd/root/packagetar-zxvfhbase-2.5.0-bin.tar.gz-C/opt/software(4)配置HBase①配置环境变量:vim/etc/profile添加以下内容:exportHBASE_HOME=/opt/software/hbase-2.5.0exportPATH=$PATH:$HBASE_HOME/bin使配置生效:source/etc/profile②修改HBase的配置文件hbase-env.sh($HBASE_HOME/conf):配置JAVA_HOMEvim/opt/software/hbase-2.5.0/conf/hbase-env.sh编辑之前输入/JAVA_HOME再回车进行搜索,按字母n进行搜索下一个。这里只有一处JAVA_HOME,去掉注释(将行首的“#”删掉),修改为实际的JAVA_HOME路径。exportJAVA_HOME=/opt/software/jdk1.8.0_161设置HBase不使用内置Zookeeper管理同样在非编辑状态下输入/HBASE_MANA进行搜索,将#exportHBASE_MANAGES_ZK=true中去掉注释,并将true改为false,保存,退出:exportHBASE_MANAGES_ZK=false设置启动的时候不包含Hadoop的库同样在非编辑状态下输入/HBASE_DISA进行搜索,将exportHBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"这一句的注释去掉(或者新增一行设置为true)。如图4-所示。图4-配置效果此项默认是false,则会加载Hadoop的库,则启动的时候会有警告。③修改HBase的配置文件hbase-site.xml($HBASE_HOME/conf):vim/opt/software/hbase-2.5.0/conf/hbase-site.xml修改并添加相关配置:<property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.tmp.dir</name><value>../tmp</value></property><property><name>hbase.rootdir</name><value>hdfs://master:8020/hbase</value></property><property><name>hbase.zookeeper.quorum</name><value>master,slave1,slave2</value></property><property><name>vider</name><value>filesystem</value></property>④将hadoop中hdfs-site.xml拷贝到HBASE_HOME/conf下scp/opt/software/hadoop-3.3.4/etc/hadoop/hdfs-site.xml/opt/software/hbase-2.5.0/conf/⑤配置regionserversvim/opt/software/hbase-2.5.0/conf/regionservers删除里面的localhost,添加slave1、slave2的主机名,如图4-6所示。slave1slave2图4-6添加slave1和slave2主机名(5)同步slave1、slave2①拷贝安装目录到slave1与slave2~/shell/scp_call.sh/opt/software/hbase-2.5.0②配置slave1、slave2的环境变量为了方便操作,可以拷贝master上的环境变量文件到slave1、slave2节点。在master节点执行:~/shell/scp_call.sh/etc/profile拷贝完成后,需要在slave1、slave2节点上执行source操作:source/etc/profile(6)检验HBase①启动HBase,启动页面如图4-7所示。在master节点执行:start-hbase.sh图4-7启动HBase前提:确保Hadoop、Zookeeper已启动,如果没启动,请使用下面指令启动。zkServer.shstartstart-dfs.sh②查看master、slave1、slave2的进程~/shell/jps_all.sh图4-10查看三台节点的进程情况③查看WebUI页面在浏览器中打开master的ip地址加端口:31:16010格式:master的ip:16010。如图2-46所
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度某餐饮管理有限公司特许经营合同
- 2024年度某旅游公司导游试用期劳动合同
- 车身市场需求与消费特点分析
- 2024年度建筑工程施工设备采购合同
- 纸制旗帜市场发展现状调查及供需格局分析预测报告
- 2024年度建筑工程施工专业分包合同
- 纺织品测试机市场需求与消费特点分析
- 2024年度工地食堂健康餐食推广与运营承包合同
- 2024年度新能源汽车专利许可合同
- 2024年度企业招聘与人才测评服务合同
- 专题二十八 当代资本主义流通有哪些新变化
- 建筑给水钢塑复合管管道工程技术规程2020
- 企业参保人员基本养老金申领表
- 路面基层监理评估报告
- 快速消费品行业名词释义汇总
- ICH指南指导原则Q8(R2)药品研发
- 初高中数学衔接讲座
- 寻梦环游记-英文版ppt
- SAPO-34沸石分子筛的合成课件
- 肿瘤科运用PDCA循环降低癌痛患者爆发性疼痛发生率品管圈成果汇报
- 肠道准备指南解读
评论
0/150
提交评论