数据库技术改造方案v2.0_第1页
数据库技术改造方案v2.0_第2页
数据库技术改造方案v2.0_第3页
数据库技术改造方案v2.0_第4页
数据库技术改造方案v2.0_第5页
免费预览已结束,剩余56页可下载查看

下载本文档

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

文档简介

1、数据库技术改造方案V2.01.背景XXXXX系统,其数据库内存放的数据量较大且要求读写速度快,目前利用的Couchbase数据库虽然能满足读写速度上的要求,但效劳器必须满足较大内存且各个效劳节点效劳器都是对等存在的,一个节点出现问题并不会影响其他节点正常运行,但总内存容量会缩小.当前通过对XXXXX更多数据存储到内存,以到达提升数据的读写速率;现把两台效劳器内存合并为一个内存bucket,这样的方案导致一台机器出现宕机时failover过程有不可用时间,并且局部数据有丧失的可能,且在高负载系统上有假死现象;如果再增加节点且节点的内存只有到达或超过当前节点才能发挥效劳器的性能,否那么就要缩减Co

2、uchbase建立的bucket的占用内存,效劳器就不能合理发挥它的性能作用,由此拥有大量的比照数据就需要提供更好且合理的NOSQL数据库.Couchbase数据库本身也存在以下缺点:1 .Couchbase的存储方式为Key/Value,但Value的类型很为单一,不支持数组.另外也不会自动创立docid,需要为每一文档指定一个用于存储的DocumentIndentifer;2 .各种组件拼接而成,都是c+实现,导致复杂度过高,遇到奇怪的性能问题排查比拟困难,中文文档比拟欠缺;3 .采用缓存全部key的策略,需要大量内存.节点宕机时failover过程有不可用时间,并且有局部数据丧失的可能,

3、在高负载系统上有假死现象;4 .逐渐倾向于闭源,社区版本免费,但不提供官方维护升级和商业版本之间差距比较大.2.目前结构COUCHBASESERVERCLUSTER从结构和实际应用看,XXXXX存在问题:1、比照数据量较大;2、只有两台效劳器只能做到内存扩展无法做到failover;3、内存数据到达一定比例,再写入数据效率降低;4、假设再添加节点就要求节点的内存必须接近当前两台节点的内存配置,否那么就发挥不了现有节点的性能.3.数据库比照Hbase是一个运行在Hadoop上的分布式和可扩展的大数据仓库,其优点如下:1、需要的是硬盘空间,能够利用HDFS的分布式处理模式,并从Hadoop的Map

4、Reduce程序模型中获益.这意味着Hbase存储容量大,一个表可以容纳上亿行,上百万列;2、可通过版本进行检索,能搜到所需的历史版本数据;3、负载高时,可通过简单的添加机器来实现水平切分扩展,跟Hadoop的无缝集成保证了其数据可靠性(HDFS)和海量数据分析的高性能(MapReduce);4、也可有效防止单点故障的发生.Hbase与目前所用数据库Couchbase在某些方面的比照情况,如下面列表所示:工程HBASECOUCHBASE分片信息每个server,选主数据格式二进制json固化方式一般架设在hdfs上,可以认为是一个分布式内存索引系统Couchstore/ForestDB负载均衡

5、自动均衡,迁移主备方式分布式内存索引,无主备索引支持仅按key排序主/二级过滤器效劳器端效劳器端编程协处理器.启动时放到效劳器端,配置不能动态上传批量写入支持直接从hdfs加载文件不支持读与内存可以根据情况调整定义后/、可改通过以上hbase和couchbase数据库的比照列表可知,在某些方面使用hbase要好于couchbase.集群中进程名称及作用:NameNode【支持对HDFS中的目录、文件和块做类似文件系统的创立、修改、删除、列表文件和目录等根本操作】DFSZKFailoverControllerHadoopHa进程维持namenode高可用】JournalNode【保证hadoop

6、Ha的高可用一般启动2n+1个】JobHistoryServer【可以该效劳查看已经运行完了的作业记录】ResourceManager【治理集群资源分配,接收NodeManager的资源汇报】DataNode【调度存储和检索数据】NodeManager【负责在单个节点上执行MapReduce任务】QuorumPeerMainzookeeper独立的进程,ZooKeeper作用包括治理Hadoop集群中的NameNode,HBase中HBaseMaster的选举,Servers之间状态同步等】HMaster【治理和分配HRegion、HRegionServer负载均衡、权限限制、实现DDL操作】

7、HRegionServer【维护HMaster分配给他的region,处理对这些region的io请求负责切分正在运行过程中变的过大的regionzookeeper【实现namenode和HMaster主从节点的failover,存放HBase集群的元数据以及集群的状态信息】JobClientHadoopCoreMrtnperReducerJobCoMoutorTit旭MasterNd-ieNodeDatsNcdeJobTrackerraoiirHMastorSorver3.HRegionSererMemStoreZooKeeperCl启ntZooKeeperAPICallbackWalche

8、rManagerClientCnxnSendThreddEventThraadHBasoClusterZooKccpcrClusterHbass+Hadoop+Zockeep即关系图4.设计与实施使用Hbase1.00+Hadoop2.60+Zookeeper3.4.6替换原NOSQL数据库Couchbase,原2台效劳器+后添5台效劳器共同组成一个Hbase分布式数据集群.MasterserversHDFSJNodn;】NodeRegion/SorvorSlavtiserverszRegionNa.HDFSRegionSen/erfRegion/Server,HegionSmrvsrData

9、RegionServeraRegioner丽ServerDataNode架构图清楚地表达了HBase采用Master/Slave架构搭建集群,它隶属于Hadoop神秘,它一般由三台机器组成一个集群,内部使用PAXOS算法支持三台Server中的一台生态系统,由HMaster节点、HRegionServer节点、ZooKeeper集群等节点组成,而在底层,它将数据存储于HDFS中,因而涉及到HDFS的NameNode、DataNode等;HMaster和NameNode都支持多个热备份,使用ZooKeeper来做协调;ZooKeeper并不是云般宕机,在本次设计中使用五台机器,此时那么可以支持同

10、时两台宕机,既少于半数的宕机;把RegionServer和DataNode放在相同的Server上实现数据的本地化.主机规划:主机名IP安装的软件运行的进程masterl192.168.XXX.111jdk、hadoop、hbaseNN、RM、DFSZKFailoverController(zkfc)、Hmaster、JobHistoryServermaster2192.168.XXX.112jdk、hadoop、hbaseNN、RM、DFSZKFailoverController(zkfc)、Hmasterslave1192.168.XXX.113jdk、hadoop、zookeeper、h

11、baseDN、NM、JournalNode、QuorumPeerMain、HRegionServerslave2192.168.XXX.114jdk、hadoop、zookeeper、hbaseDN、NM、JournalNode、QuorumPeerMain、HRegionServerslave3192.168.XXX.115jdk、hadoop、zookeeper、hbaseDN、NM、JournalNode、QuorumPeerMain、HRegionServerslave4192.168.XXX.116jdk、hadoop、zookeeper、hbaseDN、NM、JournalNode

12、、QuorumPeerMain、HRegionServerslave5192.168.XXX.117jdk、hadoop、zookeeper、hbaseDN、NM、JournalNode、QuorumPeerMain、HRegionServer这里采用HadoopHa的QJM方案,该方案由两个NameNode构成,一个处于active状态,另一个处于Standby状态,用于NameNode的备份和切换,ActiveNameNode对外提供效劳,而StandbyNameNode那么不对外提供效劳,仅同步activenamenode的状态,以便能够在它失败时快速进行切换.在方案中配置独立的zook

13、eeper集群,一方面用于ZKFC(DFSZKFailoverController)故障转移,当ActiveNameNode挂掉了,会自动切换StandbyNameNode为Active状态;另一作用配置zookeeper集群负责的工作就是存储HBase的Schema,实时监控HRegionServer,存储所有Region的寻址入口,当然还有最常见的功能就是保证HBase集群中只有一个Master,实现HMaster主从节点的failover.采用HRegionServer和DataNode运行在相同的效劳器上实现数据的本地化,提升读写性能,并减少网络压力.目录规划:名称路径所有软件目录/a

14、pplication/hadoop/app/所有数据和日志目录/data/hadoop/3.1集群安装前的环境检查登录名/密码:root/XXXXX|hadoop/hadoop时钟同步所有节点的系统时间要与当前时间保持一致.查看当前系统时间rootmaster1#dateSunApr2404:52:48PDT2021如果系统时间与当前时间不一致,进行以下操作.rootmaster1#cd/usr/share/zoneinfo/rootmaster1zoneinfo#ls找至UAsiarootmaster1zoneinfo#cdAsia/进入Asia目录rootmaster1Asia#ls/找至

15、UShanghairootmaster1Asia#cp/usr/share/zoneinfo/Asia/Shanghai/etc/localtime/当前时区替换为上海我们可以同步当前系统时间和日期与NTP网络时间协议一致.rootmaster1Asia#yuminstallntp如果ntp命令不存在,在线安装ntprootmaster1Asia#/执行此命令同步日期时间rootmaster1Asia#date查看当前系统时间时间同步效劳端vi/etc/ntp.conf#restrict#restrict-6:1server127.127

16、.1.0#localclockfudgestratum10vi/etc/ntp/step-tickers参加一行:这样每次ntpd启动时,会自动连接该国际标准时间效劳器;servicentpdstartnetstat-an|grep123#保证该端口以udp方式开放时间同步客户端vi/etc/ntp.conf#restrict#restrict-6:1server11ntpdate11crontab-e01*/usr/sbin/ntpdate11#每隔1小时同

17、步一次时间/sbin/servicecrondstart/启动效劳/sbin/servicecrondstop/关闭效劳/sbin/servicecrondrestart/重启效劳/sbin/servicecrondreload/重新载入配置servicecrondstatushosts文件检查所有节点的hosts文件都要配置静态ip与hostname之间的对应关系.vi/etc/hosts192.168.XXX.111master1192.168.XXX.112master2192.168.XXX.113slave1192.168.XXX.114slave2192.168.XXX.115sl

18、ave3192.168.XXX.116slave4192.168.XXX.117slave5禁用防火墙所有节点的防火墙都要关闭.查看防火墙状态serviceiptablesstatusiptables:Firewallisnotrunning.如果不是上面的关闭状态,那么需要关闭防火墙.chkconfigiptablesoff/永久关闭防火墙serviceiptablesstop修改主机名vi/etc/sysconfig/networkNETWORKING=yesHOSTNAME=localhost.localdomain/改为主机名保存并输入reboot命令,重新启动效劳器.添加hadoop

19、并进行sudo授权治理/usr/sbin/groupaddhadoop/usr/sbin/useraddhadoop-ghadooppasswdhadoop/修改密码为hadooprootALL=(ALL)ALL此行下,添加如下内容hadoopALL=(ALL)ALL创立hadoop工作目录/数据目录su-rootmkdir-p/application/hadoopmkdir-p/data_sdb/hadoopmkdir-p/data_sdb/hadoop/hdfs/namenodemkdir-p/data_sdb/hadoop/hdfs/datanodemkdir-p/data_sdb/ha

20、doop/hdfs/namesecondarymkdir-p/data_sdb/hadoop/hdfs/tmpmkdir-p/data_sdb/hadoop/hdfs/journal修改目录权限chown-Rhadoop:hadoop/application/hadoopchown-Rhadoop:hadoop/data_sdb/hadoop修改文件翻开数rootmaster1$vi/etc/security/limits.confrootsoftnofile65535roothardnofile65535rootsoftnproc32000roothardnproc32000rootmast

21、er1$vi/etc/pam.d/loginsessionrequiredpam_limits.so3.2 配置SSH免密码通信hadoopmaster1$mkdir.sshhadoopmaster1$chmod755.ssh/将权限改为755hadoopmaster1$cd.sshhadoopmaster1$ssh-keygen-trsa-P/执行命令一路回车,生成秘钥hadoopmaster1.ssh$lsauthorized_keysid_rsaid_rsa.pubknown_hostshadoopmaster1.ssh$catid_rsa.pubauthorized_keys/4哥公钥

22、保存至Uhadoopmaster1.ssh$chmod600authorized_keysauthorized_keys认证文件中/注意:authorized_keys的权限为600备注:公钥登录,原理,即用户将自己的公钥储存在远程主机上.登录的时候,远程主时机向用户发送一段随机字符串,用户用自己的私钥加密后,再发回来.远程主机用事先储shell,不再要求密码.文件中.存的公钥进行解密,如果成功,就证实用户是可信的,直接允许登录集群所有节点都要行上面的操作.将所有节点中的共钥id_ras.pub拷贝到djt11中的authorized_keyscat-/.ssh/id_rsa.pub|sshh

23、adoopmaster1cat/.ssh/authorized_keys所有节点都需要执行这条命令然后将master1中的authorized_keys文件分发到所有节点上面.scp-rauthorized_keyshadoopmaster2:/.ssh/scp-rauthorized_keyshadoopslave1:/.ssh/scp-rauthorized_keyshadoopslave2:/.ssh/scp-rauthorized_keyshadoopslave3:/.ssh/scp-rauthorized_keyshadoopslave4:/.ssh/scp-rauthorized_

24、keyshadoopslave5:/.ssh/测试:sshmaster2date3.3 JDK安装通过上传工具上传JDk安装包到/home/hadoop/app用root用户登陆到系统,翻开一个终端输入卸载rpm版的jdk:#rpm-qa|grepjdk显示:jdk-1.6.0_10-fcs卸载:#rpm-e-nodepsjdk-1.6.0_10-fcsrootmaster1#chown-Rhadoop:hadoopjdk-8u60-linux-x64.gzhadoopmaster1$cpjdk-8u60-linux-x64.gz/application/hadoop/hadoopmaster

25、1hadoop$chmod755jdk-8u60-linux-x64.gzhadoopmaster1$tar-zxvfjdk-8u60-linux-x64.gzhadoopmaster1$ln-sjdk1.8.0_60/jdkhadoopmaster1$su-rootvi/etc/profile.d/java.shexportJAVA_HOME=/application/hadoop/jdkexportPATH=$JAVA_HOME/bin:$PATHrootmaster#source/etc/profilerootmaster#echo$JAVA_HOME/application/hadoo

26、p/jdkhadoopmaster1source/etc/profile3.4 Hadoop安装rootmaster1#chown-Rhadoop:hadoophadoop-2.6.0.tar.gz检查用户hadoopchown-Rhadoop:hadoop/application/hadoop/chown-Rhadoop:hadoop/data/hadoop/hadoopmaster1$cphadoop-2.6.5.tar.gz/application/hadoop/hadoopmaster1$tar-zxvfhadoop-2.6.5.tar.gzhadoopmaster1$ln-shado

27、op-2.6.5/hadoophadoopmaster1$su-rootvi/etc/profile.d/java.shexportHADOOP_HOME=/application/hadoop/hadoopexportPATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATHrootmaster1#source/etc/profilerootmaster1#echo$HADOOP_HOME/application/hadoop/hadoophadoopmaster1hadoop$source/etc/profile测试hadoopmaster1hadoop$jps1

28、140Jps3.5 修改Hadoop配置文件Hadoop用户下修改$HADOOP_HOME/etc/hadoop/slaves文件,参加所有slave节点的hostnameslavelslave2slave3slave4slave5修改$HADOOP_HOME/etc/hadoop/hadoop-env.sh文件exportJAVA_HOME=/application/hadoop/jdk修改$HADOOP_HOME/etc/hadoop/yarn-env.sh文件exportJAVA_HOME=/application/hadoop/jdk修改core-site.xml文件rootmaste

29、r1hadoop#vicore-site.xmlfs.defaultFShdfs:/mastershadoop.tmp.dir/data_sdb/hadoop/hdfs/tmpha.zookeeper.quorumslave1:2181,slave2:2181,slave3:2181,slave4:2181,slave5:2181io.native.lib.availableTRUE修改hdfs-site.xmlhbase.rootdirhdfs:/masters/hbase中的保持servicesmasters !-Master下面有两个NameNode,分别是master1

30、,nodes.mastersnn1,node.rpc-address.masters.nn1master1:9000node.-address.masters.nn1master1:50070node.rpc-address.masters.nn2master2:9000node.-address.masters.nn2master2:50070node.shared.edits.dirqjournal:slave1:8485;slave2:8485;slave3:8485

31、;slave4:8485;slave5:8485/mastersdfs.journalnode.edits.dir/data_sdb/hadoop/hdfs/.dir/data_sdb/hadoop/hdfs/namenodedfs.datanode.data.dir/data_sdb/hadoop/hdfs/vider.mastersorg.apache.hadoop.hdfs.server.nam

32、enode.ha.ConfiguredFailoverProxyProviderdfs.ha.fencing.methodssshfenceshell(/bin/true)dfs.ha.fencing.ssh.private-key-files/home/hadoop/.ssh/id_rsadfs.ha.fencing.ssh.connect-timeout30000dfs.replication2256,这对于dfs.datanode.max.xcievers4096修改yarnmapreduce.jobhisto

33、ry.addressmaster1:10020mapreduce.jobhistory.webapp.addressmaster1:19888mapreduce.jobhistory.joblist.cache.size20000修改yarn-site.xmlyarn.resourcemanager.ha.enabledtrueyarn.resourcemanager.cluster-idyarn-clusteryarn.resourcemanager.ha.rm-idsrm1,rm2yarn.resourcemanager.scheduler.classorg.apache.hadoop.y

34、arn.server.resourcemanager.scheduler.fair.FairScheduleryarn.resourcemanager.ha.automatic-failover.recover.enabledTRUEerval-ms500

35、0yarn.resourcemanager.store.classorg.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStoreyarn.resourcemanager.zk-addressslave1:2181,slave2:2181,slave3:2181,slave4:2181,slave5:2181yarn.resourcemanager.zk.state-store.addressslave1:2181,slave2:2181,slave3:2181,slave4:2181,slave5:2181yarn.n

36、odemanager.aux-servicesmapreduce_shuffleyarn.resourcemanager.address.rm1master1:23140yarn.resourcemanager.address.rm2master2:23140yarn.resourcemanager.scheduler.address.rm1master1:23130yarn.resourcemanager.scheduler.address.rm2master2:23130yarn.resourcemanager.admin.address.rm1master1:23141yarn.reso

37、urcemanager.admin.address.rm2master2:23141yarn.resourcemanager.resource-tracker.address.rm1master1:23125yarn.resourcemanager.resource-tracker.address.rm2msater2:23125yarn.resourcemanager.webapp.address.rm1master1:23188yarn.resourcemanager.webapp.address.rm2master2:23188yarn.resourcemanager.webapp.s.

38、address.rm1master1:23189yarn.resourcemanager.webapp.s.address.rm2V/namemaster2:231893.6. 安装酉已置zooekeeperrootmaster1#chown-Rhadoop:hadoopzookeeper-3.4.6.tar.gzhadoopmaster1$cpzookeeper-3.4.6.tar.gz/application/hadoop/hadoopmaster1$tar-zxvfzookeeper-3.4.6.tar.gzhadoopmaster1$ln-szookeeper-3.4.6/zookee

39、perZookeeper环境变量的配置vi/etc/profile.d/java.shexportZOOKEEPER_HOME=/application/hadoop/zookeeperexportPATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HBASE_HOME/bin:$ZOOKEEPER_HOME/bin:$PATHrootmaster1#source/etc/profilerootmaster1#echo$ZOOKEEPER_HOME更改配置文件将conf/zoo_sample.cfg改成conf/zoo.cfg,对zoo.cfg进行更改dataDir=/

40、application/hadoop/zookeeper/var/datadataLogDir=/application/hadoop/zookeeper/var/datalogclientport=2181server.1=slave1:2888:3888server.2=slave2:2888:3888server.3=slave3:2888:3888server.4=slave4:2888:3888server.5=slave5:2888:3888maxClientCnxns=150#最大连接数在DataDir路径下创立myid文件根据配置文件的dataLogDir路径mkdir-p/a

41、pplication/hadoop/zookeeper/var/datalog文件夹mkdir-p/application/hadoop/zookeeper/var文件夹mkdir-p/application/hadoop/zookeeper/var/data文件夹vi/application/hadoop/zookeeper/var/data/myid文件例如:hadoopmaster1echo5/application/hadoop/zookeeper/var/data/myid将配置好的zookeeper拷贝到其他节点修改slave1、slave2、slave3、slave4、slave5对应/application/hadoop/zookeeper/var/da

温馨提示

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

评论

0/150

提交评论