Hadoop基础篇-hdfs-01

本文介绍了Hadoop分布式文件系统HDFS的特点,包括数据安全性、高吞吐量和易用性,并详细讲解了HDFS的block存储机制、架构设计以及NameNode和DataNode的角色。此外,还概述了HDFS的常用命令,如ls、mkdir、put和get,以及使用Java API进行文件操作的基本步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

大数据处理的两个重要指标

        吞入量:单位时间处理数据的数量

        延迟:处理数据的速度,延迟越高说明处理的越慢

大数据处理瓶颈问题

         IO瓶颈--- 大数据处理里绝大多数都是io瓶颈

        计算瓶颈

hdfs分布式文件系统

特点

         通过备份策略保障了数据安全性,实现了高可用、高容错     

        数据的吞吐量大

                流式读取提供吞入量

                设计简单一致性模型

                移动计算并非移动数据,减小IO压力

        集群的扩展性

                弹性存储

        hdfs的易用性

                协议接口多样

                数据管理多样

        元数据

                描述数据的数据

        block-hdfs的文件存储单位

                hdfs是分块存储的,将一个文件存储为多个block块

                1个block的默认大小是128M

        hdfs架构设计

                分布式数据存储系统

                角色

                        namenode

                        datanode

                        client

                架构设计注意点

                        存储文件的时候是通过block块存储的

                        1个block默认128M,可以修改

                        存储文件是由副本的,默认是3个,可以修改

                        副本存储是同机架不同节点两个,跨机架一个

                        NameNode有个副本

        读文件流程

        写文件流程

hdfs中的命令

        hdfs dfs -ls /

        hdfs dfs -ls -R /

        hdfs dfs -mkdir 文件夹

        hdfs dfs -touch 文件

        文件上传

                hdfs dfs -put 本地文件 hdfs目录

                        -f 代表强制上传,如果同名就替换

                hdfs dfs -get hdfs文件 本地文件

                        -f 代表强制下载,如果同名就替换

        java API

                准备素材

                准备环境

                搭建maven项目

                添加pom依赖

                        dependences

<!-- 引入hadoop-cli-2.7.4依赖 -->
        	      <dependency>
        	         <groupId>org.apache.hadoop</groupId>
        	         <artifactId>hadoop-client</artifactId>
        	        <version>2.7.4</version>
        	      </dependency>

                         build

            <build>
        	      <finalName>TlHadoopCore</finalName>
        	      <plugins>
        	         <plugin>
        	           <artifactId>maven-compiler-plugin</artifactId>
        	           <version>2.3.2</version>
        	           <configuration>
        	              <source>1.8</source>
        	              <target>1.8</target>
        	              <encoding>UTF-8</encoding>
        	           </configuration>
        	        </plugin>
        	        <plugin>
        	           <artifactId>maven-assembly-plugin</artifactId>
        	           <configuration>
        	              <descriptorRefs>
        	                 <descriptorRef>jar-with-dependencies</descriptorRef>
        	              </descriptorRefs>
						   <archive>
<!--        							<manifest>-->
<!--        			此处为设置main方法所在的类					        
               <mainClass>com.tl.job009.hdfs.HdfsFileRead</mainClass>-->
<!--      	注释掉可以在执行时自行切换main方法儿不用再回到这里修改		</manifest>-->
        					</archive>
        	           </configuration>
        	           <executions>
        	              <execution>
        	                 <id>make-assembly</id>
        	                 <phase>package</phase>
        	                 <goals>
        	                    <goal>assembly</goal>
        	                 </goals>
        	              </execution>
        	           </executions>
        	        </plugin>
        	      </plugins>
        	   </build>

                                finalName 打出来的jar包的名字

                                maven-assembly-plugin all in one打包插件

                                可以去掉mainClass,后续执行过程中指定主类

        开始程序编写

                1. 读的文件在哪

                2. 创建配置文件

                3. 创建FileSystem

                4. 创建Path

                5. 打开输入流

                6. 读取输入流,获取字节数组

                7. 获取文本,输出

                8. 关闭FS

        maven中scope,决定的是依赖的作用域

                compile(默认)

                        编译

                        测试

                        运行

                provided

                        编译

                        测试

                test

                        测试

                runtime

                        运行

                system

                        可以指定本地的jar包

        9.上传jar包

                rz -bye

        10.执行任务

yarn jar job022hdfs-jar-with-dependencies.jar 主类 参数文件路径(绝对路径)

如果有更多参数在后面依次添加即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值