大数据平台与HDFS入门:随堂测验解析

需积分: 9 0 下载量 16 浏览量 更新于2024-08-30 收藏 91KB PPTX 举报
"随堂测验1 简介 HDFS.pptx" 本文将深入探讨分布式文件系统,特别是Hadoop Distributed File System (HDFS),并结合相关知识点进行讲解。HDFS是Apache Hadoop项目的核心组件之一,设计用于存储和处理大规模数据集。大数据技术通常涉及四个主要步骤:采集、存储、分析/挖掘以及展示/可视化,这些步骤在HDFS中得到了体现。 HDFS采用了主从结构(Master-Slave Architecture),其中包含一个NameNode作为主节点,管理文件系统的元数据,如文件名和其对应的块列表,以及DataNodes作为从节点,实际存储数据块。这种架构使得HDFS能够处理PB级别的数据,并且具有高容错性。 在HDFS中,文件被分割成固定大小的块(通常是128MB或256MB),每个块会被复制多次以确保数据的可靠性。默认情况下,每个块会有三个副本,分别存储在不同的DataNodes上,这样即使有部分节点故障,数据仍然可以被访问。在GFS(Google File System)中,元数据如文件系统命名空间和Chunk与文件名的映射,以及Chunk副本的位置,都是以日志的形式在Master节点上持久化。 在Linux系统中,文件权限和所有权是管理文件访问的关键。例如,在给出的命令`ls -l`的输出中,我们可以看到目录`home`下有三个子目录,分别是`down`、`glh`和`software`。文件`hello`的拥有者是`lei`,属于`root`组,而`glh`目录的拥有者是`glh`。关于文件`hello`的权限,`root`用户具有读、写和执行权限,因此它有权写入`hello`。然而,`glh`的组用户没有执行权限,只能根据文件的其他权限字段来决定是否具有读或写权限。 分布式文件系统的安全性、容错性和可扩展性是其核心特性。在HDFS中,如果一个DataNode失败,NameNode会检测到这种情况并重新分配该节点上的块副本,以保持副本数的完整性。此外,客户端在访问数据时,会从NameNode获取Chunkhandle(块标识符)、Chunklocations(块位置信息)以及可能的Chunkdata,以确定从哪个DataNode读取数据。 在架构层面,大数据技术可以分为架构层、系统层、算法层和应用层。架构层关注整体设计和部署,系统层则包括如HDFS这样的分布式存储系统,算法层涉及数据分析和挖掘的方法,应用层则是将这些技术应用于实际业务场景。 HDFS是大数据存储的关键组件,通过主从结构提供高效、可靠的数据存储。理解HDFS的工作原理、权限管理以及其在大数据生态系统中的角色,对于开发和维护大规模数据处理系统至关重要。

以下是一个flume的conf文件,请帮我逐行解释一下代码:“#定义三大组件的名称 a.sources = r a.sinks = k1 k2 k3 a.channels = c1 c2 c3 #将数据流复制给所有channel a.sources.r.selector.type = replicating  # 配置Source组件 a.sources.r.type = exec a.sources.r.command = cat /home/bit/novel/novel.csv # kafka a.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink a.sinks.k1.kafka.topic = data a.sinks.k1.kafka.bootstrap.servers = localhost:9092 a.sinks.k1.kafka.flumeBatchSize = 20 a.sinks.k1.kafka.producer.acks = 1 a.sinks.k1.kafka.producer.linger.ms = 1 a.sinks.k1.kafka.producer.compression.type = snappy a.channels.c1.type = memory a.channels.c1.capacity = 100000 a.channels.c1.transactionCapacity = 100 # mysql a.sinks.k2.type =com.us.flume.MysqlSink a.sinks.k2.hostname=localhost a.sinks.k2.port=3306 a.sinks.k2.databaseName=novel a.sinks.k2.tableName=table1 a.sinks.k2.user=bit a.sinks.k2.password=123456 a.channels.c2.type = memory a.channels.c2.capacity = 100000 a.channels.c2.transactionCapactiy = 2000 # hdfs a.sinks.k3.type = hdfs a.sinks.k3.hdfs.path = hdfs://localhost:9000/user/bit/novel #积攒多少个Event才flush到HDFS一次 a.sinks.k3.hdfs.batchSize = 100 #设置文件类型,可支持压缩 a.sinks.k3.hdfs.fileType = DataStream #多久生成一个新的文件 a.sinks.k3.hdfs.rollInterval = 5 a.channels.c3.type = memory a.channels.c3.capacity =100000 a.channels.c3.transactionCapacity = 100 # Bind the source and sink to the channel a.sources.r.channels = c1 c2 c3 a.sinks.k1.channel = c1 a.sinks.k2.channel = c2 a.sinks.k3.channel = c3”

2023-05-24 上传