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

长春网易网站建设对php网站开发的认识

长春网易网站建设,对php网站开发的认识,中国搜索提交网站,ai智能ppt制作目录 一、HDFS概述 二、HDFS架构与工作机制 三、HDFS的Shell操作 四、Hdfs的API操作 一、HDFS概述 HDFS#xff1a;Hadoop Distributed File System#xff1b;一种分布式文件管理系统#xff0c;通过目录树定位文件。使用场景#xff1a;一次写入#xff0c;多次读出…目录 一、HDFS概述 二、HDFS架构与工作机制 三、HDFS的Shell操作 四、Hdfs的API操作 一、HDFS概述 HDFSHadoop Distributed File System一种分布式文件管理系统通过目录树定位文件。使用场景一次写入多次读出且不支持文件的修改。适用于数据分析不适用于网盘应用优点 高容错多个副本其中一个副本丢失可以自动恢复适合处理大数据数据规模大 文件规模大  可以构建于廉价机器上。缺点 不适合低延时数据访问无法高效的对大量小文件进行存储不支持并发写同一个文件仅支持追加不支持文件的随即修改。 二、HDFS架构与工作机制 官方文档Apache Hadoop 3.3.4 – HDFS Architecture组成部分 NameNodeNN即Master管理HDFS。Secondary NameNodeSNN不是NN的热备份热备份是指在程序还在运行的时候对数据进行备份SNN对于NN的作用不同于平常的热备份的概念SNN包含Fsimage和Edits会定期合并Fsimage和Edits并推送给NN。DataNodeDN即Slaver执行NN下达的命令。Client客户端交互与访问。Blockhdfs文件块 Hadoop1.x中是64M在Hadoop2.x-3.x中是128M块的大小既不能太大也不能太小块大小的设置取决于磁盘传输的速率NameNode和SecondaryNameNode的工作机制 NameNode启动 第一次启动NN需要创建命名空间镜像文件fsimage和编辑日志文件edits如果NN不是第一次启动直接加载fsimage文件和edits文件到内存NN记录操作日志滚动日志NN在内存中对元数据进行修改操作。SecondaryNameNode工作过程 SNN询问NN是否需要CheckPoint是否需要合并fsimage和edits。Secondary NameNode请求执行CheckPoint。NameNode滚动正在写的Edits日志。将滚动前的编辑日志和镜像文件拷贝到SNNSNN加载编辑日志和镜像文件到内存进行合并生成新的镜像文件fsimage.chkpoint。拷贝fsimage.chkpoint到NameNodeNameNode将fsimage.chkpoint重新命名成fsimage。DataNode的工作机制 一个数据块在DataNode上以文件形式存储在磁盘上包括两个文件一个是数据本身一个是元数据包括数据块的长度块数据的校验和以及时间戳。DataNode启动后向NameNode注册通过后周期性6小时地向NameNode上报所有的块信息。心跳是每3秒一次心跳返回结果带有NameNode给该DataNode的命令如复制块数据到另一台机器或删除某个数据块。如果超过10分钟没有收到某个DataNode的心跳则认为该节点不可用。HDFS的写流程 客户端通过Distributed FileSystem模块向NameNode请求上传文件NameNode检查集群上目标文件是否已存在父目录是否存在。NameNode返回是否可以上传。客户端请求询问第一个 Block上传到哪几个DataNode服务器上。NameNode返回3个DataNode节点分别为dn1、dn2、dn3。客户端通过FSDataOutputStream模块请求dn1上传数据dn1收到请求会继续调用dn2然后dn2调用dn3将这个通信管道建立完成Pipe管道机制。dn1、dn2、dn3逐级应答客户端。客户端开始往dn1上传第一个Block先从磁盘读取数据放到一个本地内存缓存以Packet为单位dn1收到一个Packet就会传给dn2dn2传给dn3dn1每传一个packet就会将其放入一个应答队列等待应答。当一个Block传输完成之后客户端再次请求NameNode上传第二个Block的服务器。重复执行3-7步。传输完成后通知NameBode通知Client完成传输。HDFS的读流程 客户端通过DistributedFileSystem向NameNode请求下载文件NameNode通过查询元数据找到文件块所在的DataNode地址。挑选一台DataNode就近原则然后随机服务器请求读取数据。DataNode开始传输数据给客户端从磁盘里面读取数据输入流以Packet为单位来做校验。客户端以Packet为单位接收先在本地缓存然后写入目标文件。网络拓扑-节点距离计算 机架感知副本位置的选择 距离如图所示网络拓扑将整个网络视为一个节点各个大数据集群则是这整个网络节点的子节点各个机架则分别是每个集群的子节点每个实际节点又是机架节点的子节点。依次画出网络拓扑图并计算距离副本位置 第一个副本位于客户端所处的节点上如果客户端不属于集群节点则随机选择一个第二、三个副本位于另一个机架上的两个不同节点之上。数据完整性 DataNode读取Block的时候它会计算CheckSum计算Block是否已经损坏DataNode在文件创建后周期验证CheckSum 三、HDFS的Shell操作 hadoop fs 某指令  与  hdfs dfs 某指令 是一样的Hadoop hdfs的启动与关闭以下是自定义脚本开启关闭hdfs #!/bin/bashif [ $# -lt 1 ] thenecho No Args Input...exit ; ficase $1 in start)echo 启动 hadoop集群 echo --------------- 启动 hdfs ---------------ssh hadoop101 /opt/module/hadoop-3.1.3/sbin/start-dfs.shecho --------------- 启动 yarn ---------------ssh hadoop102 /opt/module/hadoop-3.1.3/sbin/start-yarn.shecho --------------- 启动 historyserver ---------------ssh hadoop101 /opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver ;; stop)echo 关闭 hadoop集群 echo --------------- 关闭 historyserver ---------------ssh hadoop101 /opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserverecho --------------- 关闭 yarn ---------------ssh hadoop102 /opt/module/hadoop-3.1.3/sbin/stop-yarn.shecho --------------- 关闭 hdfs ---------------ssh hadoop101 /opt/module/hadoop-3.1.3/sbin/stop-dfs.sh ;; *)echo Input Args Error... ;; esac hdfs文件的上传下载 * 格式hadoop fs -指令 [参数列表] 上传 1、本地剪切上传hadoop fs -moveFromLocal ./localfile.txt /hdfs_dir 2、本地拷贝上传hadoop fs -copyFromLocal ./localfile.txt /hdfs_dirhadoop fs -put ./localfile.txt /hdfs_dir 工作环境更倾向于用put 3、追加hdfs文件已存在hadoop fs -appendToFile localfile.txt /hdfs_dir/hdfsfile.txt下载 1、hdfs拷贝至本地hadoop fs -copyToLocal /hdfs_dir/hdfsfile.txt ./hadoop fs -get /hdfs_dir/hdfsfile.txt ./ 生产环境更倾向于用get 其他Hadoop shell指令略 四、Hdfs的API操作 在Windows下配置Hadoop的运行环境 添加Hadoop的Windows依赖文件夹至Windows下一个纯英文路径配置HADOOP_HOME和Path环境变量Hadoop的Windows依赖官网没有直接提供需要自行下载双击winutils.exe可以验证环境变量是否正常报错可能是因为缺少微软运行库新建Idea Maven项目配置阿里云maven镜像可以使下载的速度更快 导入相应的依赖坐标修改pom.xml - import changes dependenciesdependencygroupIdorg.apache.hadoop/groupIdartifactIdhadoop-client/artifactIdversion3.1.3/version/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/version/dependencydependencygroupIdorg.slf4j/groupIdartifactIdslf4j-log4j12/artifactIdversion1.7.30/version/dependency /dependencies 日志添加在项目的src/main/resources目录下新建一个文件命名为“log4j.properties”在文件中填入 log4j.rootLoggerINFO, stdout log4j.appender.stdoutorg.apache.log4j.ConsoleAppender log4j.appender.stdout.layoutorg.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern%d %p [%c] - %m%n log4j.appender.logfileorg.apache.log4j.FileAppender log4j.appender.logfile.Filetarget/spring.log log4j.appender.logfile.layoutorg.apache.log4j.PatternLayout log4j.appender.logfile.layout.ConversionPattern%d %p [%c] - %m%n API编写代码*重新理解API这个宽泛的概念 Java代码的大致逻辑获取客户端对象 → 执行操作 → 关闭资源Java标签的用法也可以了解一下挺好用的 package cn.hadoop.hdfs;import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; import org.junit.After; import org.junit.Before; import org.junit.Test;import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import java.sql.Array; import java.util.Arrays;public class HdfsClient {private URI uri;private Configuration conf;private String user hadoop; //文件系统用于进行操作的用户名这个用户名决定了操作的权限。private FileSystem fs;Beforepublic void init() throws URISyntaxException, IOException, InterruptedException { //uri new URI(hdfs://hadoop101:8020); // 统一资源定位符8020是NameNode内部通信端口conf new Configuration(); //配置对象默认为空fs FileSystem.get(uri, conf, user); //使用get()获取FileSystem实例}Afterpublic void close() throws IOException {fs.close(); // 关闭FileSystem实例}Test//创建目录public void testmkdir() throws URISyntaxException, IOException, InterruptedException {fs.mkdirs(new Path(/目录名)); //mkdirs()方法创建一个新的目录}Test//测试各个部分配置文件的优先级/** 代码内部的配置优先级 项目资源目录下的配置文件的优先级 Linux上的配置文件 默认配置* */public void testPut() throws IOException, InterruptedException {conf.set(dfs.replication, 2); //node level参数指定每个block在集群上有几个备份因为这个参数在hdfs-site.xml也有配置所以可以用来比较这些参数之间的优先级fs FileSystem.get(uri, conf, user);fs.copyFromLocalFile(false, true, new Path(D:\\Edelweiss.txt), new Path(hdfs://hadoop101/目录名称)); //hdfs文件路径开始的一部分是主机名}Test//文件 下载public void testGet() throws IOException {fs.copyToLocalFile(false, new Path(/集群上的路径), new Path(C:\\Users\\用户名\\Desktop), false);}//删除delete、移动rename、更名rename等操作 略Test//列出目录详细信息也可以用于判断“路径类型”——文件或者目录public void fileDetail() throws IOException {final RemoteIteratorLocatedFileStatus listFiles fs.listFiles(new Path(/), true); //迭代器while (listFiles.hasNext()) {LocatedFileStatus fileStatus listFiles.next(); //文件状态System.out.println(--------------- fileStatus.getPath() ---------------);System.out.println(fileStatus.getPermission());System.out.println(fileStatus.getBlockLocations());final BlockLocation[] blockLocations fileStatus.getBlockLocations();System.out.println(Arrays.toString(blockLocations));}}Testpublic void Test(){System.out.println(okk\n);System.out.println(ookk\\N);} } 关于代码内部配置的优先级 项目资源目录下的配置文件的优先级 Linux上的配置文件 默认配置。遇见的报错 不支持发行版本5https://www.cnblogs.com/KennyWang0314/p/12268953.html 按图设置成与自己本地jdk匹配的版本就好了。之前maven是默认Java5而我的本地是jdk11无法生成Java5二进制文件。
http://www.hkea.cn/news/14408225/

相关文章:

  • 类似织梦的建站cms全案网络推广公司
  • 外贸网站建设团队品牌大气的网站设计
  • 网站建设人员信息oppo网站建设
  • 网站托管内容wordpress调用树形目录
  • 上海配资网站开发澧县网站设计
  • 如何做网站管理如何做贷款网站推广
  • 网站的设计与应用论文成都旅游发朋友圈的精美句子
  • 陕西建设局官方网站看啥网一个没有人工干预的网
  • 网站 建设 申请重庆做汉堡的餐饮公司网站
  • 个人 能建购物网站么wordpress 不能改邮箱
  • 做界面的网站公司建设网站的注意事项
  • 2019银川住房建设规划信息网站云南网站优化公司
  • 品牌网站建设找顺的在什么文件中加入什么代码告诉搜索引擎蜘蛛网站地图的文件位置?
  • 无忧网站模板什么是响应式布局
  • 南宁网站建设公司利润免费seo关键词优化排名
  • 深圳企业网站建设价格开发一个网站要多久
  • 厦门建设工程信息造价网站软文营销文章
  • 做网站卖广告陕西省建设网官方网站
  • 国外js特效网站美耐皿 技术支持 东莞网站建设
  • 广州红盾信息门户网站企业网站建设框架
  • 湖北省两学一做网站wordpress 分类菜单高亮
  • 中信建设 官方网站外贸网站建设公司信息
  • 动态公司网站设计建设部注册网站
  • 学做早餐网站网站开发用了哪些技术
  • 网站做关键词排名大数据网站怎么做
  • 邢台做wap网站多少钱宣传推广图片
  • 韩国食品网站设计欣赏区域名查询
  • 港口建设征收 申报网站网站生成移动版
  • 网站 备案 哪个省做调查问卷的网站知乎
  • 知乎 做照片好的网站做短视频网站