Hadoop平台搭建与应用(第2版)(微课版) 课件 项目4、5 HBase环境搭建与基本操作、Hadoop生态组件的安装与使用_第1页
Hadoop平台搭建与应用(第2版)(微课版) 课件 项目4、5 HBase环境搭建与基本操作、Hadoop生态组件的安装与使用_第2页
Hadoop平台搭建与应用(第2版)(微课版) 课件 项目4、5 HBase环境搭建与基本操作、Hadoop生态组件的安装与使用_第3页
Hadoop平台搭建与应用(第2版)(微课版) 课件 项目4、5 HBase环境搭建与基本操作、Hadoop生态组件的安装与使用_第4页
Hadoop平台搭建与应用(第2版)(微课版) 课件 项目4、5 HBase环境搭建与基本操作、Hadoop生态组件的安装与使用_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

任务4.1HBase的安装与配置任务实施1.HBase单机模式部署

(1)HBase的安装准备好HBase的安装包后,进入存储目录,执行命令“tar-zxvfhbase-1.6.0-bin.tar.gz-C/usr/local”,解压安装包,操作命令如下。[root@master1opt]$tar-zxvfhbase-1.6.0-bin.tar.gz-C/usr/local/进入解压目录,执行命令“mvhbase-1.6.0./hbase”,将解压后的安装包重命名为hbase(以方便后续操作),操作命令如下。[root@masterlocal]$mvhbase-1.6.0./hbase执行命令“chown-Rhadoop:hadoophbase”,修改hbase文件的权限,操作命令如下。[root@masterlocal]$chown-Rhadoop:hadoophbase(2)HBase的配置进入HBase的conf目录,编辑hbase-site.xml配置文件,编辑文件内容如下。<configuration><property><name>hbase.rootdir</name><value>file:///usr/local/hbase/logs/site</value></property><property><name>hbase.cluster.distributed</name><value>true</value></property></configuration>(3)HBase的启动配置完成后,进入hbase的bin目录,执行命令“./start-hbase.sh”,启动HBase,操作命令如下。[root@masterbin]$./start-hbase.sh查看系统进程,验证HBase单机部署成功,操作命令及结果如下。[root@masterbin]$jps528HMaster752Jps646HRegionServer2.HBase伪分布式模式部署(1)基础环境的准备HBase伪分布模式下的数据设置存储在HDFS中,所以在进行HBase伪分布式模式的部署前,需要安装和配置Hadoop环境(详细安装过程请参考项目1的任务1.3即可),通过执行命令“start-all.sh”启动Hadoop服务,并通过执行“jps”命令查看Hadoop进程,操作命令及结果如下。[root@masterlogs]$jps12418NameNode12901ResourceManager13189NodeManager13322Jps12555DataNode12732SecondaryNameNode(2)伪分布式环境搭建进入安装包存储目录,执行命令“tar-zxvfhbase-1.6.0-bin.tar.gz-C/usr/local”,解压HBase到指定路径中,操作命令如下。[root@masteropt]$tar-zxvfhbase-1.6.0-bin.tar.gz-C/usr/local进入解压目录,执行命令“mvhbase-1.6.0hbase”,进行重命名操作,然后执行命令“chown-Rhadoop:hadoophbase/”,修改hbase目录的所有者,操作命令如下。[root@masterlocal]$mvhbase-1.6.0hbase[root@masterlocal]$chown-Rhadoop:hadoophbase/编辑“~/.bashrc”文件,将HBase的安装路径添加到环境变量中,操作如下。exportHBASE_HOME=/usr/local/hbasePATH=$PATH:$HBASE_HOME/bin修改完成后,按“Esc”键返回命令模式,通过输入“:wq!”保存修改并退出,随后执行“source~/.bashrc”命令,使配置文件立即生效,操作命令如下。[root@masterlocal]$source~/.bashrc进入hbase的conf目录查看文件,可以看到conf目录中有配置文件hbase-env.sh和hbase-site.xml,操作命令及结果如下。[root@masterconf]$lltotal44-rw-r--r--.1hadoophadoop1811Oct192019perties-rw-r--r--.1hadoophadoop4284Oct192019hbase-env.cmd-rw-r--r--.1hadoophadoop7603Feb2508:54hbase-env.sh-rw-r--r--.1hadoophadoop2257Oct192019hbase-policy.xml-rw-r--r--.1hadoophadoop934Feb2507:55hbase-site.xml-rw-r--r--.1hadoophadoop1168Oct192019log4j-hbtop.properties-rw-r--r--.1hadoophadoop4977Oct192019perties-rw-r--r--.1hadoophadoop10Oct192019regionservers首先,编辑配置文件hbase-env.sh,找到配置文件中对应的配置项,并修改配置项内容,具体修改内容如下。exportJAVA_HOME=/usr/lib/jdk1.8.0exportHBASE_MANAGERS_ZK=true其次,编辑配置文件hbase-site.xml,编辑配置项内容如下。<configuration><property><name>hbase.rootdir</name><value>hdfs://localhost:9000/hbase</value></property><property><name>hbase.cluster.distributed</name><value>true</value></property><property></configuration>(3)启动HBase进入/usr/local/hbase/bin目录,并执行命令“./start-hbase.sh”,启动HBase,操作命令及结果如下。[root@masterbin]$./start-hbase.shSLF4J:ClasspathcontainsmultipleSLF4Jbindings.SLF4J:Foundbindingin[jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J:Foundbindingin[jar:file:/usr/local/hbase/lib/client-facing-thirdparty/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J:See/codes.html#multiple_bindingsforanexplanation.SLF4J:Actualbindingisoftype[org.slf4j.impl.Log4jLoggerFactory]SLF4J:ClasspathcontainsmultipleSLF4Jbindings.(4)查看系统进程执行命令“jps”,查看系统进程,验证HBase伪分布环境部署成功,操作命令及结果如下。[root@masterbin]$jps2832HMaster1078HQuorumPeer1270HRegionServer2151ResourceManager1800DataNode1660NameNode2332NodeManager1981SecondaryNameNode3039Jps3.使用外置ZooKeeper搭建HBase集群(1)基础环境的准备在项目1中已经完成Hadoop完全分布式环境搭建,在项目3中完成了zookeeper环境搭建。在此基础上继续操作如下。①

查看Docker容器[root@CentOS~]#dockerps-aCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMESc3811fde5c00slave2:2.0"init"4weeksagoExited(137)4secondsagoslave21a3ed0b818d6slave1:2.0"init"4weeksagoExited(137)4secondsagoslave126fbe6d70f78master1:1.0"init"4weeksagoExited(137)4secondsagomaster1②停止Docker服务[root@CentOS~]#systemctlstopdockerWarning:Stoppingdocker.service,butitcanstillbeactivatedby:docker.socket

[root@CentOS~]#cd/var/lib/docker/containers/[root@CentOScontainers]#lltotal0drwx--x---.4rootroot237Apr511:381a3ed0b818d63fd1902bae9fd0b292d1e5178332844860e6cde1b18fea314053drwx--x---.4rootroot237Apr511:3826fbe6d70f785e5c04dda8a7cc44c976999e30546f72f138209601ad1b9bf422drwx--x---.4rootroot237Apr511:38c3811fde5c00ce3dc1051506674020af5284a0910b47ed974a1d32b29c9a918f③为master1(ID为26fbe6d70f78开头)添加端口映射[root@CentOScontainers]#cd26fbe6d70f785e5c04dda8a7cc44c976999e30546f72f138209601ad1b9bf422/[root@CentOS26fbe6d70f785e5c04dda8a7cc44c976999e30546f72f138209601ad1b9bf422]#ls26fbe6d70f785e5c04dda8a7cc44c976999e30546f72f138209601ad1b9bf422-json.logcheckpointsconfig.v2.jsonhostconfig.jsonhostnamehostsmountsresolv.confresolv.conf.hash编辑“config.v2.json“文件,找到"ExposedPorts"配置项,配置格式如下。"ExposedPorts":{"容器的端口号/tcp":{}}操作命令及配置参数值如下。[root@CentOS26fbe6d70f785e5c04dda8a7cc44c976999e30546f72f138209601ad1b9bf422]#viconfig.v2.json

"ExposedPorts":{"16010/tcp":{},"16020/tcp":{},"16030/tcp":{},"2181/tcp":{},"22/tcp":{},"50070/tcp":{},"8088/tcp":{}}配置结束保存退出,编辑hostconfig.json文件,找到"PortBindings"配置项,配置格式如下。"PortBindings":{"容器的端口号/tcp":[{"HostIp":"","HostPort":"映射的宿主机端口"}]}操作命令及配置参数值如下。[root@CentOS26fbe6d70f785e5c04dda8a7cc44c976999e30546f72f138209601ad1b9bf422]#vi

hostconfig.json

"PortBindings":{"16010/tcp":[{"HostIp":"","HostPort":"16010"}],"16020/tcp":[{"HostIp":"","HostPort":"16020"}],"16030/tcp":[{"HostIp":"","HostPort":"16030"}],"2181/tcp":[{"HostIp":"","HostPort":"2181"}],"50070/tcp":[{"HostIp":"","HostPort":"50070"}],"8088/tcp":[{"HostIp":"","HostPort":"8088"}]}配置结束后,保存并退出。④按照master1节点添加端口映射的方法,在slave1和slave2节点上依次编辑“config.v2.json“和“hostconfig.json”文件添加端口映射,操作结束后,使用Docker命令唤醒Docker服务,查看对应的端口映射。操作命令及结果如下。[root@CentOS~]#dockerps-aCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES

c3811fde5c00slave2:2.0"init"4weeksagoUp6seconds:2183->2181/tcp,:::2183->2181/tcp,:8090->8088/tcp,:::8090->8088/tcp,:16012->16010/tcp,:::16012->16010/tcp,:16022->16020/tcp,:::16022->16020/tcp,:16032->16030/tcp,:::16032->16030/tcpslave2

1a3ed0b818d6slave1:2.0"init"4weeksagoUp7seconds:2182->2181/tcp,:::2182->2181/tcp,:8089->8088/tcp,:::8089->8088/tcp,:16011->16010/tcp,:::16011->16010/tcp,:16021->16020/tcp,:::16021->16020/tcp,:16031->16030/tcp,:::16031->16030/tcpslave1

26fbe6d70f78master1:1.0"init"4weeksagoUp7seconds:2181->2181/tcp,:::2181->2181/tcp,:8088->8088/tcp,:::8088->8088/tcp,:16010->16010/tcp,:::16010->16010/tcp,:16020->16020/tcp,:::16020->16020/tcp,:16030->16030/tcp,:::16030->16030/tcp,:50070->50070/tcp,:::50070->50070/tcp,master1上述操作主要实现端口映射如下。Hadoop端口50070和8088,Zookeeper端口2181,Hbase端口16010、16020和16030。在主节点master1上执行命令“start-all.sh”,启动Hadoop服务,操作命令及结果如下。[root@master1/]#start-all.shThisscriptisDeprecated.Insteadusestart-dfs.shandstart-yarn.shStartingnamenodeson[master1]master1:startingnamenode,loggingto/usr/local/hadoop/logs/hadoop-root-namenode-master1.outslave2:startingdatanode,loggingto/usr/local/hadoop/logs/hadoop-root-datanode-slave2.outslave1:startingdatanode,loggingto/usr/local/hadoop/logs/hadoop-root-datanode-slave1.outStartingsecondarynamenodes[master1]master1:startingsecondarynamenode,loggingto/usr/local/hadoop/logs/hadoop-root-secondarynamenode-master1.outstartingyarndaemonsstartingresourcemanager,loggingto/usr/local/hadoop/logs/yarn--resourcemanager-master1.outslave1:startingnodemanager,loggingto/usr/local/hadoop/logs/yarn-root-nodemanager-slave1.outslave2:startingnodemanager,loggingto/usr/local/hadoop/logs/yarn-root-nodemanager-slave2.out启动成功后,分别在master1、slave1和slave2节点查看进程信息,master1节点操作命令及结果如下。[root@master1/]#jps627ResourceManager453SecondaryNameNode889Jps285NameNodeSlave1节点操作命令及结果如下。[root@slave1/]#jps145DataNode233NodeManager350JpsSlave2节点操作命令及结果如下。[root@slave2/]#jps321Jps116DataNode204NodeManager(2)集群环境的搭建在主节点master1中,进入安装包存储目录,执行命令“tar-zxvfhbase-1.2.6-bin.tar.gz-C/usr/local”,解压HBase包,操作命令如下。[root@master1opt]#tar-zxvfhbase-1.6.0-bin.tar.gz-C/usr/local将解压后的HBase包重命名为hbase,操作命令及结果如下。[root@master1local]#mvhbase-1.6.0hbase[root@master1local]#lsbinetcgameshadoophbaseincludeliblib64

libexec

sbinsharesrc编辑“~/.bashrc”文件,将HBase的安装路径添加到环境变量中,操作内容如下。exportHBASE_HOME=/usr/local/hbasePATH=$PATH:$HBASE_HOME/bin修改完成后,按“Esc”键返回命令模式,通过输入“:wq!”保存修改并退出,随后执行“source~/.bashrc”命令,使配置文件立即生效,操作命令如下。[root@master1local]$source~/.bashrc进入hbase的conf目录,查看配置文件,主要关注hbase-env.sh、hbase-site.xml和regionservers文件,操作命令及结果如下。[root@master1conf]#lspertieshbase-env.shhbase-site.xmlpertieshbase-env.cmdhbase-policy.xmllog4j-hbtop.propertiesregionservers首先,编辑配置文件hbase-env.sh,找到配置文件中对应的配置项,并修改配置项内容,具体修改内容如下。exportJAVA_HOME=/usr/lib/jdk1.8.0exportHBASE_CLASSPATH=/usr/local/hadoop/etc/hadoopexportHBASE_MANAGES_ZK=false其次,编辑配置文件hbase-site.xml,编辑配置项内容如下。<configuration><property><name>hbase.rootdir</name><value>hdfs://master1:9000/hbase</value></property><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.master</name><value>hdfs://master1:60000</value></property><property><name>hbase.zookeeper.quorum</name><value>master1:2181,slave1:2181,slave2:2181</value></property></configuration>再次,编辑配置文件regionservers内容如下。master1slave1slave2最后,将master1中的hbase目录拷贝到slave1和slave2两个节点的/usr/local目录中,操作命令如下。[root@master1~]#scp-r/usr/local/hbaseslave1:/usr/local/[root@master1~]#scp-r/usr/local/hbaseslave2:/usr/local/(3)启动HBase分别进入3个节点的zookeeper/bin目录,执行命令“./zkServer.shstart”启动ZooKeeper集群。在master1节点操作命令及结果如下。[root@master1bin]#./zkServer.shstartZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgStartingzookeeper...STARTED在slave1节点操作命令及结果如下。[root@slave1bin]#./zkServer.shstartZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgStartingzookeeper...STARTED在slave2节点操作命令及结果如下。[root@slave2bin]#./zkServer.shstartZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgStartingzookeeper...STARTED由于HBase是基于HDFS的,故应该先启动HDFS。另外,由于在此使用独立的ZooKeeper实例,故需要先手动启动ZooKeeper实例。然后启动Hbase,即启动顺序是Hadoop→ZooKeeper→HBase,如果系统中使用了内置的ZooKeeper,则启动顺序是Hadoop→HBase,停止顺序与启动顺序正好相反。

在master1、slave1和slave2节点上分别查看ZooKeeper节点的状态。在master1查看节点状态的操作命令及结果如下。[root@master1bin]#./zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgMode:follower在slave1查看节点状态的操作命令及结果如下。[root@slave1bin]#./zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgMode:follower在slave2查看节点状态的操作命令及结果如下。[root@slave1bin]#./zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgMode:leader在主节点master1上进入目录/home/hbase/bin/,执行命令“./start-hbase.sh”,启动HBase,操作命令及结果如下。[root@master1bin]#./start-hbase.sh/usr/local/hbase/conf/hbase-env.sh:line1:!/usr/bin/env:NosuchfileordirectorySLF4J:ClasspathcontainsmultipleSLF4Jbindings.SLF4J:Foundbindingin[jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J:Foundbindingin[jar:file:/usr/local/hbase/lib/client-facing-thirdparty/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J:See/codes.html#multiple_bindingsforanexplanation.SLF4J:Actualbindingisoftype[org.slf4j.impl.Log4jLoggerFactory]SLF4J:ClasspathcontainsmultipleSLF4Jbindings.启动成功后,分别在master1、slave1和slave2节点查看进程信息,在master1节点操作命令及结果如下。[root@master1bin]#jps 452SecondaryNameNode932QuorumPeerMain1463Jps248NameNode1276HRegionServer621ResourceManager1135HMaster在slave1节点操作命令及结果如下。[root@slave1bin]#jps499HRegionServer648Jps395QuorumPeerMain126DataNode239NodeManager在slave2节点操作命令及结果如下。[root@slave2bin]#jps385QuorumPeerMain498HRegionServer116DataNode229NodeManager639Jps在master1节点上执行命令“./hbaseshell”,进入HBase的命令行模式,操作命令及结果如下。[root@master1bin]#./hbaseshellHBaseShellUse"help"togetlistofsupportedcommands.Use"exit"toquitthisinteractiveshell.Version1.6.0,re6513a76c91cceda95dad7af246ac81d46fa2589,SatOct1910:10:12UTC2019Took0.0021secondshbase(main):001:0>在HBaseShell中执行“status‘detailed’”查看集群的运行状态,如图所示。在Windows浏览器地址栏中输入“http://宿主机IP:16010对应的映射端口/master.status”,执行结果如图所示。任务4.2

HBaseShell操作任务实施1.启动HBase在master1、slave1和slave2节点配置完成Hadoop完全分布式环境。在master1中执行命令“start-all.sh”,启动Hadoop,操作命令及结果如下。[root@master1/]#start-all.shThisscriptisDeprecated.Insteadusestart-dfs.shandstart-yarn.shStartingnamenodeson[master1]master1:startingnamenode,loggingto/usr/local/hadoop/logs/hadoop-root-namenode-master1.outslave2:startingdatanode,loggingto/usr/local/hadoop/logs/hadoop-root-datanode-slave2.outslave1:startingdatanode,loggingto/usr/local/hadoop/logs/hadoop-root-datanode-slave1.outHadoop集群启动成功后,在master1节点中执行命令“jps”,操作命令及结果如下。[root@master1/]#jps898Jps452SecondaryNameNode248NameNode621ResourceManager在slave1节点执行命令“jps”,操作命令及结果如下。[root@slave1/]#jps371Jps126DataNode239NodeManager在slave2节点执行命令“jps”,操作命令及结果如下。[root@slave2/]#jps116DataNode229NodeManager361Jps分别进入master1、slave1和slave2节点的zookeeper/bin目录,执行命令“./zkServer.shstart”启动ZooKeeper集群,在master1节点操作命令及结果如下。[root@master1bin]#./zkServer.shstartZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgStartingzookeeper...STARTED在slave1节点操作命令及结果如下。[root@slave1bin]#./zkServer.shstartZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgStartingzookeeper...STARTED在slave2节点操作命令及结果如下。[root@slave2bin]#./zkServer.shstartZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgStartingzookeeper...STARTED在master1节点执行命令“./zkServer.shstatus”,查看节点的状态,操作命令及结果如下。[root@master1bin]#./zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgMode:follower在slave1节点执行命令“./zkServer.shstatus”,查看节点的状态,操作命令及结果如下。[root@slave1bin]#./zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgMode:follower在slave2节点执行命令“./zkServer.shstatus”,查看节点的状态,操作命令及结果如下。[root@slave2bin]#./zkServer.shstatusZooKeeperJMXenabledbydefaultUsingconfig:/usr/local/zookeeper/bin/../conf/zoo.cfgMode:leader在master1节点进入目录/home/hbase/bin/,执行命令“./start-hbase.sh”,启动HBase,操作命令及结果如下。[root@master1bin]#./start-hbase.shSLF4J:ClasspathcontainsmultipleSLF4Jbindings.SLF4J:Foundbindingin[jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J:Foundbindingin[jar:file:/usr/local/hbase/lib/client-facing-thirdparty/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J:See/codes.html#multiple_bindingsforanexplanation.SLF4J:Actualbindingisoftype[org.slf4j.impl.Log4jLoggerFactory]runningmaster,loggingto/usr/local/hbase/logs/hbase--master-master1.outSLF4J:ClasspathcontainsmultipleSLF4Jbindings.在master1节点执行命令“jps”,查看HBase进程,操作命令及结果如下。[root@master1bin]#jps452SecondaryNameNode932QuorumPeerMain1463Jps248NameNode1276HRegionServer621ResourceManager1135HMaster在slave1节点执行命令“jps”,查看HBase进程,操作命令及结果如下。[root@slave1bin]#jps499HRegionServer648Jps395QuorumPeerMain126DataNode239NodeManager在slave2节点执行命令“jps”,查看HBase进程,操作命令及结果如下。[root@slave2bin]#jps385QuorumPeerMain498HRegionServer116DataNode229NodeManager639Jps2.HBaseShell操作在master1执行命令“./hbaseshell”,进入HBase命令行模式,操作命令及结果如下。[root@master1bin]#./hbaseshellSLF4J:ClasspathcontainsmultipleSLF4Jbindings.SLF4J:Foundbindingin[jar:file:/usr/local/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]HBaseShellUse"help"togetlistofsupportedcommands.Use"exit"toquitthisinteractiveshell.ForReference,pleasevisit:/2.0/book.html#shellVersion1.6.0,re6513a76c91cceda95dad7af246ac81d46fa2589,SatOct1910:10:12UTC2019Took0.0021secondshbase(main):001:0>创建“student”表,其属性有name、sex、age、dept、course,因为HBase的表中会有一个系统默认的属性作为行键,因此无需自行创建行键,操作命令及结果如下。hbase(main):001:0>create'student','name','sex','age','dept','course'CreatedtablestudentTook1.7020seconds=>Hbase::Table-student创建好“student”表后,可通过执行“describe'student'”命令查看student表的基本信息,操作命令及结果如下。hbase(main):002:0>describe'student'TablestudentisENABLEDstudentCOLUMNFAMILIESDESCRIPTION{NAME=>'age',VERSIONS=>'1',EVICT_BLOCKS_ON_CLOSE=>'false',NEW_VERSION_BEHAVIOR=>'false',KEEP_DELETED_CELLS=>'FALSE',CACHE_DATA_ON_WRITE=>'false',DATA_BLOCK_ENCODING=>'NONE',TTL=>'FOREVER',MIN_VERSIONS=>'0',REPLICATION_SCOPE=>'0',BLOOMFILTER=>'ROW',CACHE_IINDEX_ON_WRITE=>'false',IN_MEMORY=>'false',CACHE_BLOOMS_ON_WRITE=>'false',PREFETCH_BLOCKS_ON_OPEN=>'false',COMPRESSION=>'NONE',BLOCKCACHE=>'true',BLOCKSIZE=>'65536'}#省略部分信息5row(sQUOTAS0row(s)Took0.2088seconds通过执行命令“list”命令查看所有表,操作命令及结果如下。hbase(main):003:0>listTABLEstudent1row(s)Took0.0249seconds

在添加数据时,HBase会自动为添加的数据增加一个时间戳,故在需要修改数据时,只需直接添加数据,HBase便会生成一个新版本,从而完成“改”操作,旧的版本依旧保留,系统会定时回收垃圾数据,只留下最新的几个版本,保存的版本数可以在创建表的时候指定。HBase中使用“put”命令添加数据,一次只能为一张表的一行数据的一个列(即一个单元格)添加数据,所以直接使用Shell命令插入数据的效率很低,在实际应用中,一般利用编程操作数据。当执行命令“put'student','95001','name','LiMing'”时,表示为student表添加了学号为95001、名字为LiMing的一行数据,其行键为95001,操作命令及结果如下。hbase(main):004:0>put'student','95001','name','LiMing'Took0.0865seconds

为95001行下的course列族的math列添加数据,操作命令及结果如下。hbase(main):005:0>hbase(main):005:0>put'student','95001','course:math','80'Took0.0158seconds在HBase中用“delete”及“deleteall”命令可进行删除数据操作,它们的区别如下:delete用于删除一个数据,是put的反向操作;deleteall操作用于删除一行数据。例如,删除student表中95001行下的sex列的数据,操作命令及结果如下。hbase(main):006:0>delete'student','95001','sex'Took0.0095secondshbase(main):007:0>get'student','95001'COLUMNCELLcourse:mathtimestamp=1677484606134,value=80name:timestamp=1677484558867,value=LiMing1row(s)Took0.0291seconds删除student表中的95001行的全部数据,操作命令及结果如下。hbase(main):008:0>deleteall'student','95001'Took0.0139secondshbase(main):009:0>scan'student'ROWCOLUMN+CELL0row(s)Took0.0169secondsHBase中有两个用于查看数据的命令:“get”命令——用于查看表的某一个单元格的数据;“scan”命令——用于查看某张表的全部数据。例如,查看student表95001行的数据,操作命令及结果如下。hbase(main):010:0>get'student','95001'COLUMNCELL0row(s)Took0.0062secondshbase(main):011:0>scan'student'ROWCOLUMN+CELL0row(s)Took0.0086seconds当需要删除表时,先需要使此表不可用,再执行删除表操作,操作命令及结果如下。hbase(main):012:0>disable'student'Took2.2791secondshbase(main):013:0>drop'student'Took0.4499secondshbase(main):014:0>listTABLE0row(s)Took0.0074seconds=>[当需要查询表的历史版本时,操作步骤如下。(1)在创建表时指定保存的版本数(假设指定为5),操作命令及结果如下。hbase(main):016:0>create'teacher',{NAME=>'username',VERSIONS=>5}CreatedtableteacherTook0.7335seconds=>Hbase::Table-teacher(2)插入数据并更新数据,使其产生历史版本数据。注意:这里插入数据和更新数据都使用了“put”命令,操作命令及结果如下。hbase(main):017:0>put'teacher','91001','username','Mary'Took0.0714secondshbase(main):018:0>put'teacher','91001','username','Mary1'Took0.0061secondshbase(main):019:0>put'teacher','91001','username','Mary2'Took0.0046secondshbase(main):020:0>put'teacher','91001','username','Mary3'Took0.0043secondshbase(main):021:0>put'teacher','91001','username','Mary4'Took0.0155secondshbase(main):022:0>put'teacher','91001','username','Mary5'Took0.0066secondshbase(main):023:0>(3)查询时,指定查询的历史版本数,默认查询出最新的数据(有效取值为1~5),操作命令及结果如下。hbase(main):023:0>get'teacher','91001',{COLUMN=>'username',VERSIO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论