


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库技术改造方案V2.01. 背景XXXXX系统,其数据库内存放的数据量较大且要求读写速度快,目前利用的Couchbase数据库虽然能满足读写速度上的要求,但服务器必须满足较大内存且各个服务 节点(服务器)都是对等存在的,一个节点出现问题并不会影响其他节点正常运行,但总内 存容量会缩小。当前通过对XXXXX更多数据存储到内存,以达到提高数据的读写速率;现把两台服务器内存合并为一个内存bucket,这样的方案导致一台机器出现宕机时failover过程有不可用时间,并且部分数据有丢失的可能,且在高负载系统上有假死现象;如果再增加节点且节 点的内存只有达到或超过当前节点才能发挥服务器的性能,否则就
2、要缩减Couchbase建立的bucket的占用内存,服务器就不能合理发挥它的性能作用,由此拥有大量的对比数据就 需要提供更好且合理的NOSQL数据库。Couchbase数据库本身也存在以下缺点 :1 .Couchbase 的存储方式为 Key/Value,但 Value的类型很为单一,不支持数组。 另外也不会自动创建 doc id,需要为每一文档指定一个用于存储的Document Indentifer;2 .各种组件拼接而成,都是 C+实现,导致复杂度过高,遇到奇怪的性能问题排查比较困难,(中文)文档比较欠缺;3 .采用缓存全部key的策略,需要大量内存。节点宕机时failover过程有不可
3、用时间, 并且有部分数据丢失的可能,在高负载系统上有假死现象;4 .逐渐倾向于闭源,社区版本(免费,但不提供官方维护升级)和商业版本之间差距比 较大。2. 目前结构APP SERVER 1APR SERVER 2CQUCHBAS6 CLISNT LIBRARYCCUCHBASK CLIENT LIBRARYCLUSTER州旦尸CLOSTER MAPSERVER 1SERVER 2SERVER 3COUCHBASE SERVER CLUSTER从结构和实际应用看,XXXXX存在问题:1、对比数据量较大2、只有两台服务器只能做到内存扩展无法做到failover;3、内存数据达到一定比例,再写入数据
4、效率降低;挥不了现有节点的性能。3数据库对比Hbase是一个运行在Hadoop上的分布式和可扩展的大数据仓库,其优点如下:1、 需要的是硬盘空间,能够利用HDFS的分布式处理模式,并从Hadoop 的MapReduce 程序模型中获益。这意味着Hbase存储容量大,一个表可以容纳上亿行,上百万列;2、可通过版本进行检索,能搜到所需的历史版本数据;3、 负载高时,可通过简单的添加机器来实现水平切分扩展,跟Hadoop的无缝集成保障了其数据可靠性(HDFS )和海量数据分析的高性能( MapReduce );4、也可有效避免单点故障的发生。Hbase与目前所用数据库 Couchbase在某些方面的
5、对比情况,如下面列表所示:项目HBASECOUCHBASE分片信息每个 server,选主数据格式二进制jso n固化方式一般架设在hdfs上,可以认为是一个分布式内存索引系统Couchstore / ForestDB负载均衡自动均衡,迁移主备方式分布式内存索引,无主备索引支持仅按key排序主/二级过滤器服务器端服务器端编程协处理器。启动时放到服务器端,配置(不能动态上传)批量写入直接从hdfs加载文件不支持支持读与内存可以根据情况调整定义后不可改通过以上hbase和couchbase 数据库的对比列表可知,在某些方面使用hbase要好于 couchbase 。集群中进程名称及作用:NameN
6、ode【支持对HDFS中的目录、文件和块做类似文件系统的创建、修改、删除、列表文件和目录等基本操作】DFSZKFailoverCo ntroller【Hadoop Ha 进程维持 name node 高可用】JournalNode 【保证hadoop Ha 的高可用(一般启动2n+1个)】JobHistoryServer 【可以 该服务查看已经运行完了的作业记录】ResourceMa nager【管理集群资源分配,接收NodeMa nager的资源汇报】DataNode【调度存储和检索数据】NodeMa nager【负责在单个节点上执行Map Reduce 任务】QuorumPeerMain
7、【zookeeper 独立的进程,ZooKeeper 作用包括管理 Hadoop 集群 中的NameNode , HBase中HBaseMaster 的选举,Servers之间状态同步等】HMaster【管理和分配 HRegion、HRegionServer 负载均衡、权限控制、实现DDL操作】HRegionServer 【维护HMaster 分配给他的region,处理对这些 region 的io请求负 责切分正在运行过程中变的过大的region】zookeeper 【实现name node 和HMaster 主从节点的failover ,存放HBase集群的元数据以及集群的状态信息】Mrt
8、nperReducerJohConf凯直i rril jolDraoiirSlaves、时血p后樹甘审存AMh加口MasterJobTracker1 ask TrackerHMastorSorverNd-ieNode DatsNcde3_HRegio uSe问MemStoreZooKeeper Client 2ZooKeeper APICallbackWalcher ManagerClient CnxnSendThreddEY&ntTfiraadHBaso ClusterZooKcoper ClusterHbase+Hadaop+Zookeeper 关系图4.设计与实施替换原NOSQL数据库C
9、ouchbase,使用 原2台服务器+后添5台服务器共同组成一个Hbase分布式数据集群。flNamoNodor7 rwri aiu nar.17 nirtW a 戸fhZooKooper7nnK.fi RnprHMasterHMasteractiveS日rv日Data MadeSlavuj NgdP!t NodeRegion ServerHDFSRegtotiServeri Ddta MudeHDFSzRegion/ Qrver3 Nodep/ : HOPS Rogton1NudaiRegion/ SorvorRegion erNodeii -架构图清晰地表达了 HBase采用Master/
10、Slave 架构搭建集群,它隶属于Hadoop生态系统,由 HMaster 节点、HRegio nServer 节点、ZooKeeper 集群等节点组成,而在 底层,它将数据存储于 HDFS中,因而涉及到 HDFS的NameNode 、DataNode 等;HMaster 和NameNode 都支持多个热备份,使用ZooKeeper 来做协调;ZooKeeper 并不是云般神秘,它一般由三台机器组成一个集群,内部使用PAXOS算法支持三台Server中的一台宕机,在本次设计中使用五台机器,此时则可以支持同时两台宕机,既少于半数的宕机;把RegionServer 和DataNode 放在相同的S
11、erver上实现数据的本地化。主机规划:主机名IP安装的软件运行的进程masterlX.111jdk、hadoop、hbaseNN、RM、DFSZKFailoverController(z kfc)、Hmaster、JobHistoryServermaster2X.112jdk、hadoop、hbaseNN、RM、DFSZKFailoverController(z kfc)、Hmasterslave1X.113jdk 、 hadoop 、 zookeeper、 hbaseDN、NM、JournalNode 、QuorumPe erMain、HRegionServerslave2X.114jdk
12、 、 hadoop 、 zookeeper、 hbaseDN、NM、JournalNode 、QuorumPe erMain、HRegionServerslave3X.115jdk 、 hadoop 、 zookeeper、 hbaseDN、NM、JournalNode 、QuorumPe erMain、HRegionServerslave4X.116jdk 、 hadoop 、 zookeeper、 hbaseDN、NM、JournalNode 、QuorumPe erMain、HRegionServerslave5X.117jdk 、 hadoop 、 zookeeper、 hbaseDN
13、、NM、JournalNode 、QuorumPe erMain、HRegionServer这里采用Hadoop Ha的QJM方案,该方案由两个 NameNode 构成,一个处于active 状态,另一个处于Sta ndby 状态,用于NameNode的备份和切换,ActiveNameNode对外提供服务,而 Sta ndby NameNode则不对外提供服务,仅同步 activename node 的状态,以便能够在它失败时快速进行切换。在方案中配置独立的 zookeeper 集群,一方面用于ZKFC( DFSZKFailoverController)故障转移,当Active NameNod
14、e挂掉了,会自动切换 Standby NameNode为Active 状态;另一作用配置 zookeeper 集群负责的工作就是存储HBase的Schema,实时监控HRegionServer,存储所有Region的寻址入口,当然还有最常见的功能就是保证HBase集群中只有一个 Master,实现HMaster 主从节点的failover。采用HRegionServer和DataNode 运行在相同的服务器上实现数据的本地化,提升读写性能,并减少网络压力。目录规划:名称路径所有软件目录/applicati on/hadoop/app/所有数据和日志目录/data/hadoop/3.1集群安装前
15、的环境检查登录名 / 密码:root/XXXXX|hadoop/hadoop时钟同步所有节点的系统时间要与当前时间保持一致。 查看当前系统时间rootmaster1# dateSun Apr 24 04:52:48 PDT 2016 如果系统时间与当前时间不一致 ,进行以下操作。rootmaster1# cd /usr/share/zoneinfo/rootmaster1zoneinfo# ls / 找到 Asiarootmaster1 zoneinfo# cd Asia/ 进入 Asia 目录rootmaster1 Asia# ls/ 找到 Shanghairootmaster1 Asia#
16、cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime/ 当前时区替换为上海 我们可以同步当前系统时间和日期与 NTP (网络时间协议)一致。rootmaster1 Asia# yum install ntp/ 如果 ntp 命令不存在,在线安装 ntprootmaster1 Asia# ntpdate / 执行此命令同步日期时间rootmaster1 Asia# date/ 查看当前系统时间时间同步服务端vi /etc/ ntp.c onf#restrict -6 :1server # local
17、 clockfudge stratum 10vi /etc/ ntp/step-tickers加入一行:pool. 这样每次ntpd启动时,会自动连接该国际标准时间服务器;service n tpd startnetstat -an |grep 123#确保该端口以 udp方式开放时间同步客户端vi /etc/ ntp.c onf#restrict -6 :1cron tab -e01 * * * * /usr/sbi n/ntpdate 11# 每隔 1 小时同步一次时间/sbin /service crond start / 启
18、动服务/sbin /service crond stop / 关闭服务/sbin /service crond restart /重启服务/sbin /service crond reload /重新载入配置service crond statushosts文件检查所有节点的hosts文件都要配置静态ip与host name 之间的对应关系。vi /etc/hosts192.168. XXX.111 master1192.168. XXX.112 master2192.168. XXX.113 slave1192.168. XXX.114 slave2192.168. XXX.115 slav
19、e3192.168. XXX.116 slave4192.168. XXX.117 slave5禁用防火墙所有节点的防火墙都要关闭。查看防火墙状态service iptables statusiptables: Firewall is not running. 如果不是上面的关闭状态,则需要关闭防火墙。 chkconfig iptables off / 永久关闭防火墙 service iptables stop修改主机名vi /etc/sysconfig/networkNETWORKING=yesHOSTNAME=localhost.localdomain / 改为主机名 保存并输入 rebo
20、ot 命令,重新启动服务器。添加 hadoop 并进行 sudo 授权管理 /usr/sbin/groupadd hadoop/usr/sbin/useradd hadoop -g hadoop passwd hadoop / 修改密码为 hadooprootmaster1# visudorootALL=(ALL)ALL 此行下,添加如下内容hadoop ALL=(ALL) ALL创建 hadoop 工作目录 / 数据目录su - rootmkdir -p /application/hadoopmkdir -p /data_sdb/hadoopmkdir -p /data_sdb/hadoop
21、/hdfs/namenodemkdir -p /data_sdb/hadoop/hdfs/datanodemkdir -p /data_sdb/hadoop/hdfs/namesecondarymkdir -p /data_sdb/hadoop/hdfs/tmpmkdir -p / data_sdb /hadoop/ hdfs /journal 修改目录权限chown -R hadoop:hadoop /application/hadoopchown -R hadoop:hadoop /data_sdb/hadoop 修改文件打开数rootmaster1 $vi /etc/security/l
22、imits.conf root soft nofile 65535root hard nofile 65535 root soft nproc 32000root hard nproc 32000rootmaster1 $vi /etc/pam.d/log insessi on requiredpam_limits.so3.2配置SSH免密码通信hadoopmaster1$ mkdir .sshhadoopmaster1 $ chmod 755 .ssh /将权限改为 755hadoopmaster1$cd .sshhadoopmaster1$ ssh-keygen -t rsa -P ”/
23、执行命令一路回车,生成秘钥hadoopmaster1.ssh$ lsauthorized_keys id_rsa id_rsa.pubknown _hostshadoopmaster1.ssh$ cat id_rsa.pub authorized_keys/ 将公钥保存至Uhadoopmaster1.ssh$ chmod 600 authorized_keysauthorized_keys认证文件中/ 注意:authorized_keys的权限为 600备注:”公钥登录”,原理,即用户将自己的公钥储存在远程主机上。登录的时候,远程主集群所有节点都要行上面的操作。文件中。将所有节点中的共钥id_
24、ras.pub 拷贝到djtll中的authorized_keyscat /.ssh/id_rsa.pub | ssh hadoopmaster1cat /.ssh/authorized_keys所有节点都需要执行这条命令然后将master1 中的authorized_keys文件分发到所有节点上面。scp -r authorized_keys hadoopmaster2:/.ssh/scp -r authorized_keys hadoopslave1:/.ssh/scp -r authorized_keys hadoopslave2:/.ssh/scp -r authorized_keys
25、 hadoopslave3:/.ssh/scp -r authorized_keys hadoopslave4:/.ssh/scp -r authorized_keys hadoopslave5:/.ssh/测试:ssh master2 date3.3 JDK安装通过上传工具上传 JDk安装包到/home/hadoop/app用root用户登陆到系统,打开一个终端输入卸载rpm版的jdk :#rpm -qa|grep jdk显示: 卸载: #rpm -e -rootmaster1 # chown -R hadoop:hadoop jdk-8u60-linux-x64.gz hadoopmast
26、er 1$ cp jdk-8u60-linux-x64.gz /application/hadoop/ hadoopmaster1 hadoop$ chmod 755 jdk-8u60-linux-x64.gz hadoopmaster1 $ tar -zxvf jdk-8u60-linux-x64.gz hadoopmaster1 $ hadoopmaster1 $ su - rootvi /etc/profile.d/java.shexport JAVA_HOME=/application/hadoop/jdkexport PATH=$JAVA_HOME/bin:$PATHrootmast
27、er # source /etc/profilerootmaster # echo $JAVA_HOME/application/hadoop/jdkhadoopmaster1 source /etc/profile hadoopmaster1 java -version3.4 Hadoop 安装检查用户hadoopchow n -R hadoop:hadoop /applicati on/hadoop/ chow n -R hadoop:hadoop /data/hadoop/hadoopmaster1 $ cp hadoop-2.6.5.tar.gz /applicati on/hadoo
28、p/ hadoophadoopmaster1 $ su - root vi /etc/profile.d/java.sh export HADOOP_HOME=/applicatio n/hadoop/hadoop export PATH=$JAVA_HOME/bi n:$HADOOP_HOME/bi n:$PATHrootmaster1 # source /etc/profilerootmaster1 # echo $HADOOP_HOME/applicati on/hadoop/hadoophadoopmaster1 hadoop$ source /etc/profile测试hadoopm
29、aster1 hadoop$ jps 1140 Jps3.5 修改 Hadoop 配置文件 (Hadoop 用户下 )hostname修改 $HADOOP_HOME/etc/hadoop/slaves 文件,加入所有 slave 节点的slave1slave2slave3slave4slave5修改 $HADOOP_HOME/etc/hadoop/hadoop-env.sh 文件export JAVA_HOME=/application/hadoop/jdk修改 $HADOOP_HOME/etc/hadoop/yarn-env.sh 文件export JAVA_HOME=/applicatio
30、n/hadoop/jdk修改 core-site.xml 文件rootmaster1 hadoop# vi core-site.xmlfs.defaultFShdfs:/masters v/property hadoop.tmp.dir /data_sdb /hadoop/ hdfs /tmp ha.zookeeper.quor umslave1:2181,slave2:2181,slave3:2181,slave4:2181,slave5:2181i o.n ative .l ib.availablev/nameTRUEv/con figuratio n修改 hdfs-site.xmlhba
31、se.rootdirhdfs:/masters/hbase-!-指定 hdfs 的 nameservice为 masters,需要和 core-site.xml 中的保持nodes.mastersnn1,node.rpc-address.masters.nn1master1:9000node.http-address.masters.nn1master1:50070node.rpc-address.masters.nn2master2:9000node.ht
32、tp-address.masters.nn2master2:50070node.shared.edits.dirqjournal:/slave1:8485;slave2:8485;slave3:8485;slave4:8485;slave5:8485/masters-!-指定JournalNode在本地磁盘存放数据的位置dfs.journalnode.edits.dir/data_sdb /hadoop/ hdfs /journal .dir/data_sdb /hadoop/ hdfs/ namenode dfs.datanode.data.
33、dir/data_sdb /hadoop/ hdfs/ datanode vider.mastersrProxyProviderdfs.ha.fencing.methodssshfenceshell(/bin/true)dfs.ha.feneing.ssh.private-key-files/home/hadoop/.ssh/id_rsavpropertydfs.ha.fe nci ng.ssh.c onn ecttimeout 30000dfs.replicat
34、i on2dfs.data no de.max.xcieversv/name4096v/con figuratio n修改 mapred-site.xml mapreduce.framework .n ameyar n/valuemapreduce.jobhistory.addressmaster1:10020mapreduce.jobhistory.webapp.addressmaster1:19888mapreduce.jobhistory.joblist.cache.size20000v/con figuratio n修改 yarn-site.xmlyarn.resourcemanage
35、r.ha.enabledtrueyarn.resourcemanager.cluste-ridyarn-clusteryarn.resourcemanager.ha.rm-idsrm1,rm2yarn.resourcemanager.scheduler.classorg.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.F airScheduleryarn.resourcemanager.ha.automatic-failover.recover.enabledTRUEyarn.resourcemanager.hostname.r
36、erva-lms5000v!-RM状态信息存储方式,一种基于内存 (MemStore),另一种基于 ZK(ZKStore) 注:hadoop2.4以后版本才支持,所以为了使用本处安装hadoop2.6.5-yarn.resourcemanager.store.classMStateStoreyarn.resource
37、manager.z-kaddressslave1:2181,slave2:2181,slave3:2181,slave4:2181,slave5:2181yarn.resourcemanager.zk.stat-estore.addressslave1:2181,slave2:2181,slave3:2181,slave4:2181,slave5:2181yarn.nodemanager.aux-servicesmapreduce_shuffleyarn.resourcemanager.address.rm1master1:23140yarn.resourcemanager.address.r
38、m2master2:23140yarn.resourcemanager.scheduler.address.rm1master1:23130yarn.resourcemanager.scheduler.address.rm2 master2:23130yarn.resourcemanager.admin.address.rm1 master1:23141yarn.resourcemanager.admin.address.rm2 master2:23141yarn.resourcemanager.resourc-etracker.address.rm1 master1:23125yarn.re
39、sourcemanager.resourc-etracker.address.rm2 msater2:23125v!-RM HTTP访问地址,查看集群信息-yar n.resourcema nager.webapp.address.rm1v/namemaster1:23188yar n.resourcema nager.webapp.address.rm2 master2:23188yarn.resourcema nager.webapp.https.address.rm1 master1:23189yar n.resourcema nager.webapp.https.address.rm2
40、 master2:231893.6.安装配置 zooekeeperhadoopmaster1 $ cp zookeeper-3.4.6.tar.gz /applicati on/hadoop/ zookeeperZookeeper环境变量的配置hadoopmaster1 $ su - rootvi /etc/profile.d/java.shexport ZOOKEEPER_HOME=/applicatio n/hadoop/zookeeperexportPATH=$JAVA_HOME/bi n:$HADOOP_HOME/bi n:$HBASE_HOME/bi n: $ZOOKEEPER_HO
41、ME/bi n:$PATHrootmaster1 # source /etc/profilerootmaster1 # echo $ZOOKEEPER_HOME更改配置文件将 conf/zoo_sample.cfg改成 conf/zoo.cfg, 对 zoo.cfg 进行更改dataDir=/applicatio n/hadoop/zookeeper/var/data dataLogDir=/applicati on/hadoop/zookeeper/var/datalogclie ntport=2181 server.仁slave1:2888:3888 server.2=slave2:288
42、8:3888 server.3=slave3:2888:3888server.4=slave4:2888:3888server.5=slave5:2888:3888maxClientCnxns=150# 最大连接数在DataDir 路径下创建myid 文件根据配置文件的 dataLogDir 路径mkdir -p /applicati on/hadoop/zookeeper/var/datalog文件夹mkdir -p /applicati on/hadoop/zookeeper/var文件夹mkdir -p /applicati on/hadoop/zookeeper/var/data文件夹vi /applicati on/hadoop/z
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 度二手汽车买卖合同模板
- 仓库租赁合同续租标准范本
- 线上线下广告投放外包合同
- 农村集体土地征收补偿安置合同范本
- 工程项目融资借款合同模板
- 建筑工程合同管理创新模式
- 劳动合同安全条款示范文本
- 2025年企业员工薪酬协议标准文本
- 2025年新建变电站高压电缆线路施工合同范文
- 2025年专业插画委托合同范本
- 计算机一级测试题(附参考答案)
- 企业内部系统使用权限规范
- 2024年亳州职业技术学院单招职业技能测试题库
- 2025年旅行与旅游的未来:拥抱可持续与包容性增长报告(英文版)-世界经济论坛
- 学校跟移动公司合作协议
- 茶馆项目创业计划书
- 化工生产中的智能优化
- 配电室安全规定样本(3篇)
- 《西方经济学》(上册)课程教案
- 移动政企部年终总结
- 施工合同协议书样本
评论
0/150
提交评论