当前位置: 首页 > news >正文

电子商务网站建设一般流程网站建设推进方案

电子商务网站建设一般流程,网站建设推进方案,企业文化标语经典,网站无法导入照片1. HDFS的读写流程#xff08;面试重点#xff09; 1.1 HDFS写数据流程 1.1.1 剖析文件写入 #xff08;1#xff09;客户端通过 Distributed FileSystem 模块向 NameNode 请求上传文件#xff0c;NameNode检查目标文件是否已存在#xff0c;父目录是否存在。 #x…1. HDFS的读写流程面试重点 1.1 HDFS写数据流程 1.1.1 剖析文件写入 1客户端通过 Distributed FileSystem 模块向 NameNode 请求上传文件NameNode检查目标文件是否已存在父目录是否存在。 2NameNode 返回是否可以上传。 3客户端请求第一个 Block 上传到哪几个 DataNode 服务上。 4NameNode 返回 3个 DataNode节点分别为dn1、dn2、dn3。 5客户端通过 FSDataOutputStream 模块请求 dn1 上传数据dn1 收到请求会继续调用 dn2然后dn2 调用 dn3将这个通信管道建立完成。 6dn1、dn2、dn3 逐级应答客户端。 7客户端开始往 dn1上传第一个 Block先从磁盘读取数据放到一个本地内存缓存以 Packet 为单位dn1 收到一个 Packet 就会传给 dn2dn2 传给 dn3dn1 每传一个 packet 会放入一个应答队列等待应答。 8当一个 Block 传输完成之后客户端再次请求 NameNode 上传第二个 Block 的服务器。 1.1.2 网络拓扑-节点距离计算 在 HDFS 写数据的过程中NameNode 会选择距离待上传数据最近距离的 DataNode接收数据。那么这个最近距离怎么计算呢 节点距离两个节点到达最近的共同祖先的距离总和。 例如假设有数据中心d1机架r1中的节点n1。该节点可以表示为/d1/r1/n1。利用这种标记这里给出四种距离描述。 大家算一算每两个节点之间的距离。 1.1.3 机架感知副本存储节点选择 1机架感受说明 1官方说明 http://hadoop.apache.org/docs/r3.1.3/hadoop-project-dist/hadoop-hdfs/HdfsDesign.html#Data_Replication For the common case, when the replication factor is three, HDFS’s placement policy is to put one replica on the local machine if the writer is on a datanode, otherwise on a random datanode, another replica on a node in a different (remote) rack, and the last on a different node in the same remote rack. This policy cuts the inter-rack write traffic which generally improves write performance. The chance of rack failure is far less than that of node failure; this policy does not impact data reliability and availability guarantees. However, it does reduce the aggregate network bandwidth used when reading data since a block is placed in only two unique racks rather than three. With this policy, the replicas of a file do not evenly distribute across the racks. One third of replicas are on one node, two thirds of replicas are on one rack, and the other third are evenly distributed across the remaining racks. This policy improves write performance without compromising data reliability or read performance.2源码说明 Crtl n 查找BlockPlacementPolicyDefault在该类中查找chooseTargetInOrder方法。 2Hadoop3.1.3 副本节点选择 1.2 HDFS 读数据流程 1客户端通过 DistributedFileSystem 向 NameNode 请求下载文件。NameNode 通过查询元数据找到文件块所在的 DataNode 地址。 2挑选一台 DataNode就近原则然后随机服务器请求读取数据。 3DataNode 开始传输数据给客户端从磁盘里面读取数据输入流以 Packet 为单位来做校验。 4客户端以 Packet 为单位接收先在本地缓存然后写入目标文件。 2. NameNode 和 SecondaryNameNode 2.1 NN 和 2NN 工作机制 思考NameNode中的元数据是存储在哪里的 首先我们做个假设如果存储在NameNode节点的磁盘中因为经常需要进行随机访问还有响应客户请求必然是效率过低。因此元数据需要存放在内存中。但如果只存在内存中一旦断电元数据丢失整个集群就无法工作了。因此产生在磁盘中备份元数据的FsImage。 这样又会带来新的问题当在内存中的元数据更新时如果同时更新FsImage就会导致效率过低但如果不更新就会发生一致性问题一旦NameNode节点断电就会产生数据丢失。因此引入Edits文件只进行追加操作效率很高。每当元数据有更新或者添加元数据时修改内存中的元数据并追加到Edits中。这样一旦NameNode节点断电可以通过 FsImage 和 Edits的合并合成元数据。 但是如果长时间添加数据到Edits中会导致该文件数据过大效率降低而且一旦断电恢复元数据需要的时间过长。因此需要定期进行FsImage和Edits的合并如果这个操作由NameNode节点完成又会效率过低。因此引入一个新的节点SecondaryNamenode专门用于FsImage和Edits的合并。 NameNode工作机制 1第一阶段NameNode启动 1第一次启动 NameNode 格式化后创建 Fsimage 和 Edits 文件。如果不是第一次启动直接加载编辑日志和镜像文件到内存。 2客户端对元数据进行增删改的请求。 3NameNode 记录操作日志更新滚动日志。 4NameNode在内存中对元数据进行增删改。 2第二阶段Secondary NameNode 工作 1Secondary NameNode 询问 NameNode 是否需要CheckPoint。直接带回 NameNode 是否检查结果。 2Secondary NameNode 请求执行 CheckPoint。 3NameNode 滚动正在写的 Edits 日志。 4将滚动钱的编辑日志和镜像文件拷贝到 Secondary NameNode。 5Secondary NameNode 加载编辑日志和镜像文件到内存并合并。 6生产新的镜像文件fsimage.chkpoint。 7拷贝 fsimage.chkpoint 到 NameNode。 8NameNode 将 fsimage.chkpoint 重新命名成 fsimage。 2.2 Fsimage 和 Edits 解析 Fsimage 和 Edits 概念 1oiv 查看 Fsimage 文件 [atguiguhadoop102 current]$ hdfs oiv apply the offline fsimage viewer to an fsimage oev apply the offline edits viewer to an edits file2基本语法 hdfs oiv -p 文件类型 -i镜像文件 -o 转换后文件输出路径 3案例实操 [atguiguhadoop102 current]$ pwd /opt/module/hadoop-3.1.3/data/dfs/name/current[atguiguhadoop102 current]$ hdfs oiv -p XML -i fsimage_0000000000000000025 -o /opt/module/hadoop-3.1.3/fsimage.xml[atguiguhadoop102 current]$ cat /opt/module/hadoop-3.1.3/fsimage.xml将显示的xml文件内容拷贝到Idea中创建的xml文件中并格式化。部分显示结果如下。 inodeid16386/idtypeDIRECTORY/typenameuser/namemtime1512722284477/mtimepermissionatguigu:supergroup:rwxr-xr-x/permissionnsquota-1/nsquotadsquota-1/dsquota /inode inodeid16387/idtypeDIRECTORY/typenameatguigu/namemtime1512790549080/mtimepermissionatguigu:supergroup:rwxr-xr-x/permissionnsquota-1/nsquotadsquota-1/dsquota /inode inodeid16389/idtypeFILE/typenamewc.input/namereplication3/replicationmtime1512722322219/mtimeatime1512722321610/atimeperferredBlockSize134217728/perferredBlockSizepermissionatguigu:supergroup:rw-r--r--/permissionblocksblockid1073741825/idgenstamp1001/genstampnumBytes59/numBytes/block/blocks /inode 思考可以看出Fsimage 中没有记录块所对应 DataNode为什么 在集群启动后要求 DataNode 上报数据块信息并间隔一段时间后再次上报。 2oev 查看 Edit 文件 1基本语法 hdfs oev -p 文件类型 -i编辑日志 -o 转换后文件输出路径2案例实操 [atguiguhadoop102 current]$ hdfs oev -p XML -i edits_0000000000000000012-0000000000000000013 -o /opt/module/hadoop-3.1.3/edits.xml[atguiguhadoop102 current]$ cat /opt/module/hadoop-3.1.3/edits.xml将显示的xml文件内容拷贝到Idea中创建的xml文件中并格式化。显示结果如下。 ?xml version1.0 encodingUTF-8? EDITSEDITS_VERSION-63/EDITS_VERSIONRECORDOPCODEOP_START_LOG_SEGMENT/OPCODEDATATXID129/TXID/DATA/RECORDRECORDOPCODEOP_ADD/OPCODEDATATXID130/TXIDLENGTH0/LENGTHINODEID16407/INODEIDPATH/hello7.txt/PATHREPLICATION2/REPLICATIONMTIME1512943607866/MTIMEATIME1512943607866/ATIMEBLOCKSIZE134217728/BLOCKSIZECLIENT_NAMEDFSClient_NONMAPREDUCE_-1544295051_1/CLIENT_NAMECLIENT_MACHINE192.168.10.102/CLIENT_MACHINEOVERWRITEtrue/OVERWRITEPERMISSION_STATUSUSERNAMEatguigu/USERNAMEGROUPNAMEsupergroup/GROUPNAMEMODE420/MODE/PERMISSION_STATUSRPC_CLIENTID908eafd4-9aec-4288-96f1-e8011d181561/RPC_CLIENTIDRPC_CALLID0/RPC_CALLID/DATA/RECORDRECORDOPCODEOP_ALLOCATE_BLOCK_ID/OPCODEDATATXID131/TXIDBLOCK_ID1073741839/BLOCK_ID/DATA/RECORDRECORDOPCODEOP_SET_GENSTAMP_V2/OPCODEDATATXID132/TXIDGENSTAMPV21016/GENSTAMPV2/DATA/RECORDRECORDOPCODEOP_ADD_BLOCK/OPCODEDATATXID133/TXIDPATH/hello7.txt/PATHBLOCKBLOCK_ID1073741839/BLOCK_IDNUM_BYTES0/NUM_BYTESGENSTAMP1016/GENSTAMP/BLOCKRPC_CLIENTID/RPC_CLIENTIDRPC_CALLID-2/RPC_CALLID/DATA/RECORDRECORDOPCODEOP_CLOSE/OPCODEDATATXID134/TXIDLENGTH0/LENGTHINODEID0/INODEIDPATH/hello7.txt/PATHREPLICATION2/REPLICATIONMTIME1512943608761/MTIMEATIME1512943607866/ATIMEBLOCKSIZE134217728/BLOCKSIZECLIENT_NAME/CLIENT_NAMECLIENT_MACHINE/CLIENT_MACHINEOVERWRITEfalse/OVERWRITEBLOCKBLOCK_ID1073741839/BLOCK_IDNUM_BYTES25/NUM_BYTESGENSTAMP1016/GENSTAMP/BLOCKPERMISSION_STATUSUSERNAMEatguigu/USERNAMEGROUPNAMEsupergroup/GROUPNAMEMODE420/MODE/PERMISSION_STATUS/DATA/RECORD /EDITS 思考NameNode 如何确定下次开机启动的时候合并哪些Edits 2.3 CheckPoint 时间设置 1通常情况下SecondaryNameNode 每隔一小时执行一次。 [hdfs-deafult.xml] propertynamedfs.namenode.checkpoint.period/namevalue3600s/value /property2一分钟检查一次操作次数当操作次数达到1百万时SecondaryNameNode 执行一次。 propertynamedfs.namenode.checkpoint.txns/namevalue1000000/value description操作动作次数/description /propertypropertynamedfs.namenode.checkpoint.check.period/namevalue60s/value description 1分钟检查一次操作次数/description /property3. DataNode 3.1 DataNode 工作机制 1一个数据块在 DataNode 上以文件形式存储在磁盘上包括两个文件一个是数据本身一个是元数据包括数据块的长度块数据的校验和以及时间戳。 2DataNode 启动后向 NameNode 注册通过后周期性6小时的向NameNode上报所有的块信息。 DN向NN汇报当前解读信息的时间间隔默认6小时 propertynamedfs.blockreport.intervalMsec/namevalue21600000/valuedescriptionDetermines block reporting interval in milliseconds./description /propertyDN 扫描自己节点块信息列表的时间默认6小时 propertynamedfs.datanode.directoryscan.interval/namevalue21600s/valuedescriptionInterval in seconds for Datanode to scan data directories and reconcile the difference between blocks in memory and on the disk.Support multiple time unit suffix(case insensitive), as describedin dfs.heartbeat.interval./description /property3心跳是每3秒一次心跳返回结果带有 NameNode 给该 DataNode的命令如复制块数据到另一台机器或删除某个数据块。如果超过10分组没有收到某个 DataNode的心跳则认为该节点不可用。 4集群运行中可以安全加入和退出一些机器。 6.2 数据完整性 思考如果电脑磁盘里面存储的数据是控制高铁信号灯的红灯信号(1)和绿灯信号(0)但是存储该数据的磁盘坏了一直显示是绿灯是否很危险同理DataNode节点上的数据损坏了却没有发现是否也很危险那么如何解决呢 如下是 DataNode 节点保证数据完整性的方法。 1当DataNode读取Block的时候它会计算 CheckSum。 2如果计算后的 CheckSum与 Block 创建时值不一样说明 Block 已经损坏。 3Client 读取其他 DataNode 上的Block。 4常见的校验算法src(32)md5(128)sha1(160) 5DataNode 在其文件创建后周期验证 CheckSum。 6.3 掉线时限参数设置 需要注意的是 hdfs-site.xml 配置文件中的 heartbeat.recheck.interval 的单位为毫秒dfs.heartbeat.interval 的单位为秒。 propertynamedfs.namenode.heartbeat.recheck-interval/namevalue300000/value /propertypropertynamedfs.heartbeat.interval/namevalue3/value /property
http://www.pierceye.com/news/7386/

相关文章:

  • 贵港免费的网站建设做网站图片属性
  • 衡阳市住房建设局网站西部数据网站管理助手v3.0
  • 可以自己做效果图的网站百度热搜榜排名
  • 杭州做网站哪里好免费软件是什么意思
  • 东莞人才网站企业网站定位
  • 四川住房建设厅网站增项查询网页设计尺寸早起可视区域
  • 个人网站备案方法上海网页制作与网站设
  • 一级a做片性视频网站app案例网站
  • 济宁网站制作公司寿光网站建设报价
  • 兰州企业网站建设网站如何做内链
  • 手机网站页面制作南阳网站排名优化价格
  • 网站seo视频狼雨seo教程1688淘宝货源一件代发
  • 中国做机床的公司网站旗县长安网站建设思路
  • 接单做网站深圳网站建设php
  • 网站的栏目管理wordpress插件的开发
  • 如何创建自己的个人网站电影网站的代理怎么做
  • 有没有一些帮做名片的网站网站开发人员定罪案例
  • 做酒店网站设计网站建设审核
  • 正能量不良网站推荐2020网站编辑如何做
  • 手机网站怎么改成电脑版网站整站优化公司
  • 旅游论坛网站建设合作公司做网站
  • 天津科技公司网站广州竞价托管代运营
  • 域名注册网站查询工具杭州企业建站程序
  • 网站毕业设计代做工业园网站建设
  • 郑州网站优化的微博_腾讯微博怎么用dw网站怎么建设
  • 孵化器网站建设方案平台经济是什么意思
  • 如何创建一个属于自己的网站推广软文营销案例
  • 做外贸怎么网站找客户通化北京网站建设
  • 做系统和做网站哪个简单一些免费站推广网站2022
  • 私募基金公司网站建设大发 wordpress ifanr