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

godaddy 搭建网站南昌建设局网站查询塔吊证

godaddy 搭建网站,南昌建设局网站查询塔吊证,网站建设得花多钱,绘画网站建设目录 写在前面一、 HDFS概述1.1 HDFS简介1.2 HDFS优缺点1.2.1 优点1.2.2 缺点 1.3 HDFS组成架构1.4 HDFS文件块大小 二、HDFS的Shell操作#xff08;开发重点#xff09;2.1 基本语法2.2 命令大全2.3 常用命令实操2.3.1 上传2.3.2 下载2.3.3 HDFS直接操作 三、HDFS的API操作3… 目录 写在前面一、 HDFS概述1.1 HDFS简介1.2 HDFS优缺点1.2.1 优点1.2.2 缺点 1.3 HDFS组成架构1.4 HDFS文件块大小 二、HDFS的Shell操作开发重点2.1 基本语法2.2 命令大全2.3 常用命令实操2.3.1 上传2.3.2 下载2.3.3 HDFS直接操作 三、HDFS的API操作3.1 配置Windows3.2 HDFS的API案例实操3.2.1 HDFS文件上传3.2.2 HDFS文件下载3.2.3 HDFS文件更名和移动3.2.4 HDFS删除文件和目录3.2.5 HDFS文件详情查看3.2.6 HDFS文件和文件夹判断 写在最后 写在前面 如今数据正以指数级增长各行各业都在追求更多的数据存储、高效的数据处理和可靠的数据基础来驱动业务的发展。Hadoop Distributed File SystemHDFS作为Hadoop生态系统的核心组件之一成为构建可靠的大数据基础的不二选择之一。本文将深入剖析HDFS的架构与优势。 一、 HDFS概述 1.1 HDFS简介 HDFSHadoop分布式文件系统是Apache Hadoop框架的一部分设计用于存储和处理大规模数据集的分布式文件系统。HDFS产生的背景主要是为了满足处理大规模数据的需求。 在过去传统的文件系统难以处理大规模数据集因为它们通常只能在单个服务器上存储和操作数据。随着大数据时代的到来企业和组织面临着巨大的数据规模和复杂性。为了应对这个挑战HDFS被开发出来作为一个高度可靠和高容量的分布式文件系统。 HDFS的设计目标是能够在廉价的硬件上运行并且能够容纳上千台机器的集群。它通过将数据切分成多个块并将其分散存储在不同的计算节点上实现了高吞吐量的数据访问和处理能力。此外HDFS还提供了故障容错功能能够自动处理存储节点的故障。 简而言之HDFS是为了解决大规模数据处理问题而设计的它提供了高可靠性、高扩展性和高吞吐量的分布式文件系统解决方案。 1.2 HDFS优缺点 1.2.1 优点 高容错、高可用、高扩展 数据冗余多副本、副本丢失后自动恢复NameNode HA、安全模式10K节点规模通过横向扩展来增加存储容量和处理能力。 海量数据存储高容量 典型文件大小GB~TB百万以上文件数量PB甚至EB以上数据规模 构建成本低、安全可靠 构建在廉价的商用服务器上降低了存储成本和维护成本。通过多副本机制提高可靠性提供了容错和恢复机制 适合大规模离线批处理 流式数据访问数据位置暴露给计算框架 1.2.2 缺点 不适合低延迟数据访问 对于实时数据访问和低延迟要求较高的场景HDFS的性能可能不够理想 不适合大量小文件存储 元数据会占用NameNode大量存储空间磁盘寻道时间超过读取时间 不支持并发写入 一个文件同时只能有一个写不允许多个线程同时写 不支持文件随机修改 仅支持数据追加 1.3 HDFS组成架构 NameNodenn NameNode是HDFS的主节点Master负责管理整个文件系统的命名空间和数据块的元数据信息。它维护文件系统的目录结构、文件的安全权限信息和数据块的位置信息等。NameNode还处理客户端的文件系统操作请求如文件的读写和块的创建、复制和删除等。 DataNodedn DataNode是HDFS的工作节点Slave负责实际存储文件数据和执行文件系统操作的任务。每个DataNode负责管理一定数量的数据块并定期向NameNode报告数据块的存储信息。DataNode还处理来自客户端和其他DataNode的读取和写入请求以及数据块的复制和恢复等。 客户端Client 客户端是使用HDFS的应用程序。它们通过与Namenode和DataNode进行通信来读取和写入文件。客户端向NameNode请求文件的元数据信息根据元数据信息确定所需数据块的位置并从DataNode获取数据。客户端还负责处理文件系统的操作如创建、删除、重命名和移动文件等。 1.4 HDFS文件块大小 HDFS中的文件在物理上是分成一个个数据块Block存储的块的大小可以通过配置参数dfs.blocksize来规定文件块默认大小是128M。 HDFS文件块的大小选择是根据以下考虑因素 吞吐量较大的文件块大小在处理大文件时可以提供更高的吞吐量。这是因为较大的文件块减少了磁盘寻道和网络传输的开销使得数据读取和写入能够更加高效。 空间利用较大的文件块可以减少存储元数据的开销。在HDFS中每个文件块都有一条元数据记录较小的文件块可能会导致元数据记录数量增加增加了存储的开销。 并行性较大的文件块可以提高数据的并行处理能力。在HDFS中数据块是独立存储和处理的较大的文件块能够在不同的计算节点上并行处理从而减少整个作业的执行时间。 较大的文件块适合存储大型文件和批量处理任务但对于小型文件和实时数据处理较小的文件块可能更加适合。 Q:为什么HDFS文件块的大小不能太大也不能设置太小呢 A 文件块设置太小会增加寻址的时间设置太大会导致数据处理非常慢。 HDFS文件块的大小设置取决于磁盘的传输速率 二、HDFS的Shell操作开发重点 2.1 基本语法 hadoop fs 具体命令 或者 hdfs dfs 具体命令 2.2 命令大全 [amohadoop102 hadoop-3.2.4]$ bin/hadoop fs Usage: hadoop fs [generic options][-appendToFile localsrc ... dst][-cat [-ignoreCrc] src ...][-checksum src ...][-chgrp [-R] GROUP PATH...][-chmod [-R] MODE[,MODE]... | OCTALMODE PATH...][-chown [-R] [OWNER][:[GROUP]] PATH...][-copyFromLocal [-f] [-p] [-l] [-d] [-t thread count] [-q thread pool queue size] localsrc ... dst][-copyToLocal [-f] [-p] [-crc] [-ignoreCrc] [-t thread count] [-q thread pool queue size] src ... localdst][-count [-q] [-h] [-v] [-t [storage type]] [-u] [-x] [-e] path ...][-cp [-f] [-p | -p[topax]] [-d] [-t thread count] [-q thread pool queue size] src ... dst][-createSnapshot snapshotDir [snapshotName]][-deleteSnapshot snapshotDir snapshotName][-df [-h] [path ...]][-du [-s] [-h] [-v] [-x] path ...][-expunge [-immediate]][-find path ... expression ...][-get [-f] [-p] [-crc] [-ignoreCrc] [-t thread count] [-q thread pool queue size] src ... localdst][-getfacl [-R] path][-getfattr [-R] {-n name | -d} [-e en] path][-getmerge [-nl] [-skip-empty-file] src localdst][-head file][-help [cmd ...]][-ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [-e] [path ...]][-mkdir [-p] path ...][-moveFromLocal [-f] [-p] [-l] [-d] localsrc ... dst][-moveToLocal src localdst][-mv src ... dst][-put [-f] [-p] [-l] [-d] [-t thread count] [-q thread pool queue size] localsrc ... dst][-renameSnapshot snapshotDir oldName newName][-rm [-f] [-r|-R] [-skipTrash] [-safely] src ...][-rmdir [--ignore-fail-on-non-empty] dir ...][-setfacl [-R] [{-b|-k} {-m|-x acl_spec} path]|[--set acl_spec path]][-setfattr {-n name [-v value] | -x name} path][-setrep [-R] [-w] rep path ...][-stat [format] path ...][-tail [-f] [-s sleep interval] file][-test -[defswrz] path][-text [-ignoreCrc] src ...][-touch [-a] [-m] [-t TIMESTAMP (yyyyMMdd:HHmmss) ] [-c] path ...][-touchz path ...][-truncate [-w] length path ...][-usage [cmd ...]]Generic options supported are: -conf configuration file specify an application configuration file -D propertyvalue define a value for a given property -fs file:///|hdfs://namenode:port specify default filesystem URL to use, overrides fs.defaultFS property from configurations. -jt local|resourcemanager:port specify a ResourceManager -files file1,... specify a comma-separated list of files to be copied to the map reduce cluster -libjars jar1,... specify a comma-separated list of jar files to be included in the classpath -archives archive1,... specify a comma-separated list of archives to be unarchived on the compute machinesThe general command line syntax is: command [genericOptions] [commandOptions] 2.3 常用命令实操 创建一个文件夹用来操作命令 [amohadoop102 hadoop-3.2.4]$ hadoop fs -mkdir /amoxilinhelp输出这个命令参数 [amohadoop102 hadoop-3.2.4]$ hadoop fs -help rm2.3.1 上传 -moveFromLocal从本地剪切粘贴到HDFS # 创建一个测试文件 test.txt并输入一些内容 [amohadoop102 hadoop-3.2.4]$ vim test.txt# 使用 moveFromLocal 命令将test.txt文件移动到 HDFS [amohadoop102 hadoop-3.2.4]$ hadoop fs -moveFromLocal ./test.txt /amoxilin-copyFromLocal从本地文件系统中拷贝文件到HDFS路径去 [amohadoop102 hadoop-3.2.4]$ vim test1.txt [amohadoop102 hadoop-3.2.4]$ hadoop fs -copyFromLocal test1.txt /amoxilin-put等同于copyFromLocal生产环境更习惯用put [amohadoop102 hadoop-3.2.4]$ hadoop fs -put test1.txt /amoxilin-appendToFile追加一个文件到已经存在的文件末尾 # 创建一个文件test2.txt 并输入内容 123 [amohadoop102 hadoop-3.2.4]$ vim test2.txt# 将文件 test2.txt 追加到test.txt文件末尾 [amohadoop102 hadoop-3.2.4]$ hadoop fs -appendToFile test2.txt /amoxilin/test.txt2.3.2 下载 -copyToLocal 从HDFS拷贝到本地 # 将 HDFS 中的test.txt文件copy下来 [amohadoop102 hadoop-3.2.4]$ hadoop fs -copyToLocal /amoxilin/test.txt ./ [amohadoop102 hadoop-3.2.4]$ ls # 查看文件是否拷贝成功 文件夹中有 test.txt拷贝成功 bin etc lib LICENSE.txt NOTICE.txt sbin test1.txt test.txt wcoutput data include libexec logs README.txt share test2.txt wcinput [amohadoop102 hadoop-3.2.4]$ -get 等同于copyToLocal生产环境更习惯用get # 将 HDFS 中的test.txt文件copy下来并起一个其他的名字比如123.txt [amohadoop102 hadoop-3.2.4]$ hadoop fs -get /amoxilin/test.txt ./123.txt [amohadoop102 hadoop-3.2.4]$ ls 123.txt etc libexec NOTICE.txt share test.txt bin include LICENSE.txt README.txt test1.txt wcinput data lib logs sbin test2.txt wcoutput [amohadoop102 hadoop-3.2.4]$ 2.3.3 HDFS直接操作 -ls: 显示目录信息 # 查看 HDFS 里amoxilin文件夹的目录结构 [amohadoop102 hadoop-3.2.4]$ hadoop fs -ls /amoxilin Found 2 items -rw-r--r-- 3 amo supergroup 9 2024-03-07 23:33 /amoxilin/test.txt -rw-r--r-- 3 amo supergroup 49 2024-03-07 23:29 /amoxilin/test1.txt-cat 显示文件内容 # 查看某个文件的详细信息 [amohadoop102 hadoop-3.2.4]$ hadoop fs -cat /amoxilin/test.txt test 123-chgrp、-chmod、-chown Linux文件系统中的用法一样修改文件所属权限 # 修改文件的权限 [amohadoop102 hadoop-3.2.4]$ hadoop fs -chmod 666 /amoxilin/test.txt [amohadoop102 hadoop-3.2.4]$ hadoop fs -ls /amoxilin Found 2 items -rw-rw-rw- 3 amo supergroup 9 2024-03-07 23:33 /amoxilin/test.txt -rw-r--r-- 3 amo supergroup 49 2024-03-07 23:29 /amoxilin/test1.txt # 修改文件的group [amohadoop102 hadoop-3.2.4]$ hadoop fs -chown amo:amo/amoxilin/test.txt [amohadoop102 hadoop-3.2.4]$ hadoop fs -ls /amoxilin Found 2 items -rw-rw-rw- 3 amo amo 9 2024-03-07 23:33 /amoxilin/test.txt -rw-r--r-- 3 amo supergroup 49 2024-03-07 23:29 /amoxilin/test1.txt -mkdir 创建路径 # 创建文件夹 [amohadoop102 hadoop-3.2.4]$ hadoop fs -mkdir /csdn-cp 从HDFS的一个路径拷贝到HDFS的另一个路径 # 复制文件 [amohadoop102 hadoop-3.2.4]$ hadoop fs -cp /amoxilin/test1.txt /csdn-mv 在HDFS目录中移动文件 # 移动文件 [amohadoop102 hadoop-3.2.4]$ hadoop fs -mv /amoxilin/test.txt /csdn-tail 显示一个文件的末尾1kb的数据 # 查看文件末尾内容 [amohadoop102 hadoop-3.2.4]$ hadoop fs -tail /amoxilin/test1.txt 欲买桂花同载酒终不似少年游 [amohadoop102 hadoop-3.2.4]$ -rm 删除文件或文件夹 # 删除 [amohadoop102 hadoop-3.2.4]$ hadoop fs -rm /amoxilin/test1.txt Deleted /amoxilin/test1.txt-rm -r 递归删除目录及目录里面内容 # 递归删除 [amohadoop102 hadoop-3.2.4]$ hadoop fs -rm -r /amoxilin Deleted /amoxilin-u 统计文件夹的大小信息 # 统计文件夹的大小 [amohadoop102 hadoop-3.2.4]$ hadoop fs -du -s -h /csdn 58 174 /csdn # 58 是文件大小 文件有三个副本就是58*3174 # 统计文件夹内各文件的大小 [amohadoop102 hadoop-3.2.4]$ hadoop fs -du -h /csdn 9 27 /csdn/test.txt 49 147 /csdn/test1.txt-setrep 设置HDFS中文件的副本数量 # 设置hdfs副本数量 [amohadoop102 hadoop-3.2.4]$ hadoop fs -setrep 5 /csdn/test1.txt Replication 5 set: /csdn/test1.txt这里设置的副本数只是记录在NameNode的元数据中是否真的会有这么多副本还得看DataNode的数量。因为目前只有3台设备最多也就3个副本只有节点数的增加到5台时副本数才能达到5。 三、HDFS的API操作 3.1 配置Windows 解压Hadoop安装包到Windows系统 D:\hadoop-3.2.4设置$HADOOP_HOME环境变量指向D:\hadoop-3.2.4配置Path环境变量 %HADOOP_HOME%\bin下载 hadoop.dll 下载地址winutils.exe 下载地址 将 hadoop.dll 和 winutils.exe 放入$HADOOP_HOME/bin 文件夹中 3.2 HDFS的API案例实操 在IDEA中创建一个Maven工程并导入相应的依赖坐标以及日志 dependenciesdependencygroupIdorg.apache.hadoop/groupIdartifactIdhadoop-client/artifactIdversion3.2.4/version/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion4.12/version/dependencydependencygroupIdorg.slf4j/groupIdartifactIdslf4j-log4j12/artifactIdversion1.7.30/version/dependency /dependencies创建HdfsClient类 public class HdfsClient {Testpublic void test() throws IOException, URISyntaxException, InterruptedException {// 1 获取一个客户端实例// 参数1hdfs文件系统地址// 参数2配置文件// 参数3用户FileSystem fs FileSystem.get(new URI(hdfs://hadoop102:8020), new Configuration(), amo);// 2 创建目录fs.mkdirs(new Path(/amxl));// 3 关闭资源fs.close();} }执行程序 3.2.1 HDFS文件上传 编写源代码 // 文件上传 Test public void testCopyFromLocal() throws URISyntaxException, IOException, InterruptedException {// 1 获取一个客户端实例// 参数1hdfs文件系统路径// 参数2配置信息// 参数3用户名FileSystem fs FileSystem.get(new URI(hdfs://hadoop102:8020), new Configuration(), amo);// 2 使用客户端对象操作HDFS// copyFromLocalFile(是否删除源数据是否覆盖目标数据源数据路径目标数据路径)fs.copyFromLocalFile(false, true, new Path(D:\\note.txt),new Path(/amxl));// 3 关闭资源fs.close(); }文件默认的副本为3 将hdfs-site.xml拷贝到项目的resources资源目录下重新上传文件 ?xml version1.0 encodingUTF-8? ?xml-stylesheet typetext/xsl hrefconfiguration.xsl?configurationpropertynamedfs.replication/namevalue1/value/property /configuration在resources目录下自定义配置文件并设置文件副本数为1发现此处配置文件参数的优先级是高于默认配置的文件的 代码中修改配置 Test public void testCopyFromLocal() throws URISyntaxException, IOException, InterruptedException {Configuration configuration new Configuration();// 设置文件副本数为 2configuration.set(dfs.replication,2);FileSystem fs FileSystem.get(new URI(hdfs://hadoop102:8020), configuration, amo);fs.copyFromLocalFile(false, true, new Path(D:\\note.txt),new Path(/amxl));fs.close(); }重新上传文件发现文件的副本数为2 小结 参数优先级排序客户端代码中设置的值 resources下的用户自定义配置文件 然后是服务器的自定义配置 服务器的默认配置 3.2.2 HDFS文件下载 // 文件下载 Test public void testCopyToLocal() throws URISyntaxException, IOException, InterruptedException {// 1 获取配置信息以及加载配置 并获取一个客户端实例FileSystem fs FileSystem.get(new URI(hdfs://hadoop102:8020), new Configuration(), amo);// 2 使用客户端对象操作 HDFS 将 note.txt文件下载到本地 D 盘// copyToLocalFile(是否删除源文件下载的文件路径文件下载的目标路径是否开启文件校验)fs.copyToLocalFile(false,new Path(/amxl/note.txt),new Path(D:\\),true);// 3 关闭资源fs.close(); }3.2.3 HDFS文件更名和移动 // 文件移动和重命名 Test public void testRename() throws IOException, URISyntaxException, InterruptedException {// 1 获取配置信息以及加载配置 并获取一个客户端实例FileSystem fs FileSystem.get(new URI(hdfs://hadoop102:8020), new Configuration(), amo);// 2 文件重命名// rename(源文件名目标文件名)fs.rename(new Path(/amxl/note.txt), new Path(/amxl/note1.txt));// 文件移动// rename(源文件路径目标文件路径)fs.rename(new Path(/csdn/test1.txt), new Path(/amxl/test.txt));// 3 关闭资源fs.close(); }移动前 移动后 3.2.4 HDFS删除文件和目录 // 删除文件和文件夹 Test public void testDelete() throws IOException, URISyntaxException, InterruptedException {// 1 获取配置信息以及加载配置 并获取一个客户端实例FileSystem fs FileSystem.get(new URI(hdfs://hadoop102:8020), new Configuration(), amo);// 2 文件删除// delete(路径)// delete(路径是否递归)fs.delete(new Path(/amxl/note1.txt), false);fs.delete(new Path(/csdn), true);// 3 关闭资源fs.close(); }删除前 删除后 3.2.5 HDFS文件详情查看 查看文件名称、权限、长度、块信息 // 查看文件详细信息 Test public void testGetFileStatus() throws IOException, URISyntaxException, InterruptedException {// 1 获取配置信息以及加载配置 并获取一个客户端实例FileSystem fs FileSystem.get(new URI(hdfs://hadoop102:8020), new Configuration(), amo);// 2 文件详细信息// listStatus(路径)// listStatus(路径是否递归)RemoteIteratorLocatedFileStatus listedFiles fs.listFiles(new Path(/amxl), true);while (listedFiles.hasNext()) {LocatedFileStatus next listedFiles.next();System.out.println(next.getPath());System.out.println(next.getPermission());System.out.println(next.getOwner());System.out.println(next.getGroup());System.out.println(next.getLen());System.out.println(next.getModificationTime());System.out.println(next.getReplication());System.out.println(next.getBlockSize());// 获取块信息BlockLocation[] blockLocations next.getBlockLocations();System.out.println(Arrays.toString(blockLocations));}// 3 关闭资源fs.close(); }// -----------------------------------------------------------------------------------------// 输出 hdfs://hadoop102:8020/amxl/test.txt rw-r--r-- amo supergroup 49 1709910523258 5 134217728 [0,49,hadoop104,hadoop103,hadoop102]3.2.6 HDFS文件和文件夹判断 // 判断文件夹和文件 Test public void testListFiles() throws IOException, URISyntaxException, InterruptedException {// 1 获取配置信息以及加载配置 并获取一个客户端实例FileSystem fs FileSystem.get(new URI(hdfs://hadoop102:8020), new Configuration(), guo);// 2 判断文件夹和文件// listStatus(路径)FileStatus[] fileStatuses fs.listStatus(new Path(/));for (FileStatus fileStatus : fileStatuses) {// 判断是否是文件if(fileStatus.isFile()) {System.out.println(文件 fileStatus.getPath().getName());}else {System.out.println(文件夹 fileStatus.getPath().getName());}} // FileStatus[] fileStatuses fs.listStatus(new Path(/)); // // for (FileStatus fileStatus : fileStatuses) { // // 判断是否是文件夹 // if (fileStatus.isFile()) { // System.out.println(文件: fileStatus.getPath().getName()); // } // if (fileStatus.isDirectory()) { // System.out.println(文件夹: fileStatus.getPath().getName()); // } // }// 3 关闭资源fs.close(); }写在最后 总的来说HDFS架构的优势和基本操作使其成为构建可靠的大数据基础的理想选择。它的高可靠性、高扩展性和高效的数据访问方式为处理大规模数据提供了强大的支持并通过Shell操作和API操作方便用户管理和操作存储在HDFS中的数据。
http://www.pierceye.com/news/76351/

相关文章:

  • 免费pc网站建设网上做效果图网站有哪些
  • 潍坊模板建站定制wordpress娱乐插件
  • 做网站用什么主机好如何做市场营销推广
  • 青岛网站建设公司代理广州建网站的网络公司
  • 晋城市城乡建设局网站网站开发用什么架构
  • 加快政务网站群建设管理steam交易链接在哪
  • 自己做网站优化wordpress本地运行环境
  • 金马国旅网站建设分析网站备案流程阿里云
  • 建视频网站需要多少钱网站制作网站模板
  • 烟台公司网站建设恩施建设网站
  • 企业网站模板大全增城营销网站建设
  • 网站安全建设目的是什么网上申报办税系统
  • 新的网站怎么推广网络营销的特点包括超前性
  • 自己公司怎么做网站月流量10g的网站
  • 自己做网站怎么优化株洲在线论坛伴你生活每一天
  • asp网站知道用户名是admin怎样用电脑ip做网站
  • 怎么免费建商城网站吗紫金公司网站制作
  • 西宁市城中区建设局网站sspai 少数派wordpress
  • 南县网站建设推荐短视频营销推广方案
  • 郑州服装网站建设顺德官网建设
  • 门户网站建设自评报告权重较高网站
  • 做导购网站用什么样的主机做外贸重新设计网站
  • 国土 住房与城乡建设部网站兰州网络推广方向
  • wordpress网站统计插件下载广东公共广告20120708
  • 做网站主要注意些什么问题吉林省建设信息网官网
  • dw做的网站如何用手机看网站建设 方案书
  • 备案的网站 ,能拿来做仿站吗html网页设计期末考试
  • 网站怎么做评估flash网页模板
  • 网站建设技术jsp课程设计企业宣传网站建设需求说明书
  • 招商网站有哪些工业产品设计软件