Hadoop面试题及详细答案 110题 (96-105)-- Hadoop性能优化

前后端面试题》专栏集合了前后端各个知识模块的面试题,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,SQL,Linux... 。

前后端面试题-专栏总目录

文章目录

  • 一、本文面试题目录
      • [96. 如何优化HDFS的读写性能?](#96. 如何优化HDFS的读写性能?)
      • [97. MapReduce任务的性能优化有哪些方法?(从Map、Shuffle、Reduce阶段分析)](#97. MapReduce任务的性能优化有哪些方法?(从Map、Shuffle、Reduce阶段分析))
        • [**1. Map阶段优化**](#1. Map阶段优化)
        • [**2. Shuffle阶段优化**](#2. Shuffle阶段优化)
        • [**3. Reduce阶段优化**](#3. Reduce阶段优化)
      • [98. 如何优化Hadoop集群的资源利用率?](#98. 如何优化Hadoop集群的资源利用率?)
      • [99. 小文件问题对Hadoop的影响是什么?如何解决?(如Hadoop Archive、SequenceFile等)](#99. 小文件问题对Hadoop的影响是什么?如何解决?(如Hadoop Archive、SequenceFile等))
      • [100. 数据倾斜的原因是什么?如何解决MapReduce中的数据倾斜?](#100. 数据倾斜的原因是什么?如何解决MapReduce中的数据倾斜?)
      • [101. 如何优化YARN的资源调度效率?](#101. 如何优化YARN的资源调度效率?)
      • [102. Hadoop集群的网络配置对性能有什么影响?如何优化?](#102. Hadoop集群的网络配置对性能有什么影响?如何优化?)
      • [103. 如何调整HDFS的副本数来平衡性能和存储成本?](#103. 如何调整HDFS的副本数来平衡性能和存储成本?)
      • [104. 如何优化Hadoop的JVM参数?](#104. 如何优化Hadoop的JVM参数?)
      • [105. 如何通过监控工具发现Hadoop集群的性能瓶颈?](#105. 如何通过监控工具发现Hadoop集群的性能瓶颈?)
  • 二、110道Hadoop面试题目录列表

一、本文面试题目录

96. 如何优化HDFS的读写性能?

HDFS的读写性能优化需从硬件配置、参数调优、应用设计等多方面入手,核心目标是减少IO瓶颈、提升数据传输效率。

原理说明

  • 读性能优化:减少NameNode压力、提升DataNode数据读取效率、优化客户端缓存。
  • 写性能优化:优化副本写入策略、减少小文件写入、提升网络传输效率。

优化方法

  1. 硬件层面

    • 使用SSD作为DataNode的数据存储介质,提升随机读写速度。
    • 增加NameNode内存,减少元数据访问延迟(元数据常驻内存)。
    • 配置万兆网络,减少节点间数据传输的网络瓶颈。
  2. HDFS参数调优

    • 读优化:
      • dfs.client.read.shortcircuit:开启短路读取(绕过DataNode直接读本地文件,需配置dfs.domain.socket.path)。
      • dfs.replication:合理设置副本数(如冷数据减少副本,降低读时选择压力)。
    • 写优化:
      • dfs.client.block.write.replace-datanode-on-failure.policy:配置副本写入失败时的替换策略(如DEFAULT自动替换)。
      • dfs.datanode.max.transfer.threads:增加DataNode处理并发传输的线程数(默认4096,可根据负载调整)。
  3. 应用层面

    • 避免大量小文件写入(合并为大文件,减少元数据开销)。
    • 读文件时使用FSDataInputStreamseek()定位,避免全量读取。
    • 利用HDFS的append功能(需开启dfs.support.append),减少重复创建文件的开销。

97. MapReduce任务的性能优化有哪些方法?(从Map、Shuffle、Reduce阶段分析)

MapReduce性能优化需针对各阶段的瓶颈(如IO、网络、计算资源)分别优化。

1. Map阶段优化
  • 减少Map任务数量 :通过合并小文件(如使用CombineFileInputFormat),减少Map任务数(每个Map任务有启动开销)。

    xml 复制代码
    <!-- 配置CombineFileInputFormat作为输入格式 -->
    <property>
      <name>mapreduce.job.inputformat.class</name>
      <value>org.apache.hadoop.mapreduce.lib.input.CombineFileInputFormat</value>
    </property>
  • 增大Map任务内存 :若Map函数处理数据量大(如解析大文件),可增加内存避免OOM。

    xml 复制代码
    <property>
      <name>mapreduce.map.memory.mb</name>
      <value>4096</value> <!-- 4GB -->
    </property>
  • 本地计算优化:确保Map任务的数据本地化(输入数据在当前节点),减少网络传输(由YARN调度保证)。

2. Shuffle阶段优化

Shuffle是MapReduce的核心瓶颈(涉及大量网络传输和磁盘IO),优化重点如下:

  • 启用Combiner :在Map端对输出数据预聚合,减少Shuffle传输的数据量。

    java 复制代码
    job.setCombinerClass(WordCountReducer.class); // 复用Reducer作为Combiner
  • 调整溢写和合并参数

    • mapreduce.map.sort.spill.percent:溢写阈值(默认0.8,数据达到缓冲区80%时溢写),可降低至0.7减少单次IO量。
    • mapreduce.task.io.sort.mb:Map输出缓冲区大小(默认100MB,可增至200MB提升排序效率)。
  • 压缩Shuffle数据 :对Map输出和Reduce输入进行压缩(如Snappy),减少网络传输量。

    xml 复制代码
    <property>
      <name>mapreduce.map.output.compress</name>
      <value>true</value>
    </property>
    <property>
      <name>mapreduce.map.output.compress.codec</name>
      <value>org.apache.hadoop.io.compress.SnappyCodec</value>
    </property>
3. Reduce阶段优化
  • 合理设置Reduce任务数 :通常为集群CPU核心数的1~2倍,避免过多任务导致资源竞争。

    xml 复制代码
    <property>
      <name>mapreduce.job.reduces</name>
      <value>10</value> <!-- 根据集群规模调整 -->
    </property>
  • 增加Reduce内存和CPU :若Reduce处理数据量大,提升资源配置。

    xml 复制代码
    <property>
      <name>mapreduce.reduce.memory.mb</name>
      <value>8192</value>
    </property>
    <property>
      <name>mapreduce.reduce.cpu.vcores</name>
      <value>4</value>
    </property>
  • 延迟启动Reduce :配置mapreduce.job.reduce.slowstart.completedmaps(默认0.05),让Reduce在大部分Map完成后启动,避免资源闲置。

98. 如何优化Hadoop集群的资源利用率?

Hadoop集群资源利用率优化需平衡CPU、内存、磁盘、网络等资源,避免资源闲置或竞争。

优化方法

  1. YARN资源配置合理化

    • 根据节点硬件配置(CPU核心数、内存)设置yarn.nodemanager.resource.memory-mbyarn.nodemanager.resource.cpu-vcores,避免资源分配不足或浪费。
    • 配置容器(Container)的最小/最大资源限制(yarn.scheduler.minimum-allocation-mbyarn.scheduler.maximum-allocation-mb),防止小任务占用过多资源。
  2. 调度器优化

    • 选择合适的调度器:多租户场景用Capacity Scheduler,公平共享场景用Fair Scheduler。
    • 配置队列资源占比(如Capacity Scheduler的队列capacity参数),避免资源倾斜。
  3. 任务资源匹配

    • 根据任务类型(CPU密集型/内存密集型)调整资源分配,例如Map任务分配2GB内存,Reduce任务分配4GB内存。
    • 启用资源抢占(如Fair Scheduler的preemption),回收长期闲置的资源。
  4. 集群负载均衡

    • 启用HDFS均衡器(hdfs balancer),避免DataNode存储不均。
    • 配置YARN的节点标签,将任务调度到适合的节点(如将计算任务调度到SSD节点)。

99. 小文件问题对Hadoop的影响是什么?如何解决?(如Hadoop Archive、SequenceFile等)

小文件问题的影响

  • HDFS层面:大量小文件会增加NameNode的元数据存储压力(每个文件元数据约150字节),导致NameNode内存不足,同时降低读写效率(需频繁寻址)。
  • MapReduce层面:每个小文件会启动一个Map任务,导致Map任务数量激增,任务启动和调度开销增大,资源利用率降低。

解决方法

  1. Hadoop Archive(HAR)

    • 原理:将多个小文件打包成一个HAR文件(类似TAR),减少NameNode的元数据条目(HAR文件作为一个目录项),但文件内容仍存储在HDFS上。

    • 操作示例:

      bash 复制代码
      # 创建HAR文件(将/user/data下的小文件打包到/user/archive.har)
      hadoop archive -archiveName archive.har -p /user/data /user
      
      # 查看HAR文件内容
      hdfs dfs -ls har:///user/archive.har
    • 缺点:HAR文件创建后不可修改,不适合需要频繁更新的场景。

  2. SequenceFile

    • 原理:将小文件按键值对(Key为文件名,Value为文件内容)写入SequenceFile,合并为一个大文件,支持压缩。

    • 代码示例(Java):

      java 复制代码
      Configuration conf = new Configuration();
      FileSystem fs = FileSystem.get(conf);
      Path outputPath = new Path("/user/sequencefile");
      SequenceFile.Writer writer = SequenceFile.createWriter(
          conf,
          SequenceFile.Writer.keyClass(Text.class),
          SequenceFile.Writer.valueClass(BytesWritable.class),
          SequenceFile.Writer.path(outputPath)
      );
      
      // 写入小文件(key为文件名,value为文件内容)
      Text key = new Text();
      BytesWritable value = new BytesWritable();
      for (String filename : smallFiles) {
          key.set(filename);
          byte[] content = readSmallFile(filename); // 读取小文件内容
          value.set(content, 0, content.length);
          writer.append(key, value);
      }
      writer.close();
    • 优点:支持随机读写,适合需要频繁访问的场景。

  3. CombineFileInputFormat

    • 原理:MapReduce的输入格式优化,将多个小文件合并为一个输入分片(Split),减少Map任务数量。

    • 配置示例:

      java 复制代码
      job.setInputFormatClass(CombineFileInputFormat.class);
      CombineFileInputFormat.setMaxInputSplitSize(job, 134217728); // 每个Split最大128MB
  4. HBase存储

    • 原理:HBase适合存储大量小文件,通过LSM树结构将小文件合并为大的HFile,减少元数据开销。
    • 适用场景:需要随机读写或实时访问的小文件(如日志、图片缩略图)。
  5. Spark或Flink批量处理

    • 原理:使用分布式计算框架的文件合并功能(如Spark的wholeTextFiles读取小文件后合并)。

    • Spark示例:

      scala 复制代码
      val sc = new SparkContext()
      val smallFiles = sc.wholeTextFiles("hdfs:///user/smallfiles") // 读取所有小文件
      smallFiles.saveAsTextFile("hdfs:///user/mergedfile") // 合并为大文件

100. 数据倾斜的原因是什么?如何解决MapReduce中的数据倾斜?

数据倾斜的原因

数据倾斜指MapReduce任务中,部分Reduce任务处理的数据量远大于其他任务,导致整体任务耗时被拖长。常见原因包括:

  • 输入数据中存在热点Key(某一Key的记录数占比极高)。
  • 数据分布不均(如某类数据远多于其他类)。
  • 自定义Partitioner逻辑不合理,导致数据分配不均。

解决方法

  1. 预处理数据,消除热点Key

    • 对热点Key进行拆分(如在Key后添加随机后缀),分散到多个Reduce任务,处理后再合并。
    • 示例:将Key user1000 拆分为 user1000_0user1000_1 等,Reduce处理后去掉后缀合并结果。
  2. 使用自定义Partitioner

    • 针对数据分布特点设计Partitioner,避免热点Key集中到单个Reduce。

    • 示例(按Key哈希后取模,分散热点Key):

      java 复制代码
      public class CustomPartitioner extends Partitioner<Text, IntWritable> {
          @Override
          public int getPartition(Text key, IntWritable value, int numPartitions) {
              String k = key.toString();
              // 若为热点Key,按随机数分散;否则按哈希分区
              if (isHotKey(k)) {
                  return new Random().nextInt(numPartitions);
              } else {
                  return (k.hashCode() & Integer.MAX_VALUE) % numPartitions;
              }
          }
      }
  3. 增加Reduce任务数量

    • 适当提高Reduce任务数(mapreduce.job.reduces),增加数据分配的粒度,降低单个Reduce的压力。
  4. 启用Combiner减少Shuffle数据量

    • 在Map端对数据预聚合,减少传输到Reduce的数据量,缓解热点Key的处理压力。
  5. 过滤或拆分倾斜数据

    • 对倾斜的Key单独处理(如离线处理热点数据),避免影响整体任务。
    • 示例:将热点Key的数据拆分为小文件,单独启动MapReduce任务处理,再与其他结果合并。
  6. 调整Reduce任务的内存和CPU资源

    • 为处理倾斜数据的Reduce任务分配更多资源(如增加内存),避免OOM或计算超时。

101. 如何优化YARN的资源调度效率?

YARN资源调度效率直接影响集群任务的执行速度和资源利用率,优化需从调度策略、资源配置、任务管理等方面入手。

优化方法

  1. 选择合适的调度器

    • FIFO Scheduler:适用于单用户、任务优先级明确的场景,简单但可能导致资源饥饿。
    • Capacity Scheduler:多租户场景下,通过队列划分资源配额,保证公平性(如为生产队列分配70%资源,测试队列30%)。
    • Fair Scheduler:动态调整资源,确保所有队列/用户公平共享资源,适合共享集群。
  2. 调度参数调优

    • 队列资源配置 (以Capacity Scheduler为例):

      xml 复制代码
      <queue name="production">
        <capacity>70</capacity> <!-- 占总资源70% -->
        <maxCapacity>90</maxCapacity> <!-- 最多使用90%资源 -->
      </queue>
      <queue name="test">
        <capacity>30</capacity>
      </queue>
    • 调度延迟优化

      • yarn.resourcemanager.scheduler.monitor.policies:启用调度监控,及时释放闲置资源。
      • yarn.scheduler.minimum-allocation-mb:减小最小内存分配单位(如1GB),提升资源利用率。
  3. 启用资源抢占

    • 配置Fair Scheduler的抢占机制,回收长期未充分利用的资源(如某队列占用资源超过公平份额且闲置10分钟)。
    xml 复制代码
    <fairScheduler>
      <preemption>
        <enabled>true</enabled>
        <maxWaitingTime>600000</maxWaitingTime> <!-- 等待10分钟后抢占 -->
      </preemption>
    </fairScheduler>
  4. 任务资源请求优化

    • 避免任务请求过多资源(如申请16GB内存但实际仅用4GB),通过mapreduce.map.memory.mbmapreduce.reduce.memory.mb合理设置。
    • 启用资源弹性调整(YARN的Dynamic Resource Allocation),根据任务负载自动增减资源。
  5. 节点管理优化

    • 增加NodeManager的容器启动线程(yarn.nodemanager.resourcemanager.connect.max-wait-ms),加快容器启动速度。
    • 配置节点健康检查(yarn.nodemanager.health-checker.script.path),及时排除故障节点,避免任务调度到异常节点。

102. Hadoop集群的网络配置对性能有什么影响?如何优化?

Hadoop集群依赖网络进行节点间通信(如HDFS副本复制、MapReduce Shuffle传输),网络性能直接影响整体集群效率。

网络配置的影响

  • 带宽瓶颈:小带宽会导致数据传输延迟(如Map输出到Reduce的Shuffle阶段),拖慢任务进度。
  • 网络拓扑:不合理的网络拓扑(如跨机架数据传输过多)会增加通信延迟,降低可靠性。
  • 并发连接限制:节点间并发连接数不足会导致任务排队,影响资源利用率。

优化方法

  1. 提升网络带宽

    • 核心节点(如NameNode、ResourceManager)使用万兆以太网,普通DataNode使用千兆以太网,减少带宽瓶颈。
    • 分离管理网络和数据网络(如管理流量走1G网卡,数据流量走10G网卡),避免相互干扰。
  2. 优化网络拓扑

    • 配置Hadoop的网络拓扑脚本(net.topology.script.file.name),让HDFS和YARN感知机架结构,优先在同机架内传输数据(减少跨机架带宽消耗)。

    • 示例拓扑脚本(返回节点所属机架):

      bash 复制代码
      #!/bin/bash
      # 脚本路径:/etc/hadoop/topology.sh
      case $1 in
          node1) echo "/rack1";;
          node2) echo "/rack1";;
          node3) echo "/rack2";;
          *) echo "/default-rack";;
      esac
    • 配置HDFS使用拓扑信息:

      xml 复制代码
      <property>
        <name>net.topology.script.file.name</name>
        <value>/etc/hadoop/topology.sh</value>
      </property>
  3. 调整网络参数

    • 增加TCP缓冲区大小(net.ipv4.tcp_memnet.ipv4.tcp_wmem),提升大文件传输效率。
    • 关闭防火墙或配置规则允许Hadoop端口通信(如HDFS的50010、YARN的8088),避免连接阻塞。
  4. 限制并发连接数

    • 配置DataNode的最大传输线程(dfs.datanode.max.transfer.threads,默认4096),避免连接数过多导致节点过载。
    • 限制MapReduce的Shuffle并发连接(mapreduce.reduce.shuffle.parallelcopies,默认5),根据网络负载调整。
  5. 使用网络压缩

    • 对Shuffle数据和HDFS传输数据启用压缩(如Snappy),减少网络传输量。

103. 如何调整HDFS的副本数来平衡性能和存储成本?

HDFS的副本数(dfs.replication)决定了数据的可靠性和存储开销,需根据数据重要性、访问频率和存储成本动态调整。

调整策略

  1. 默认副本数设置

    • 集群默认副本数为3(兼顾可靠性和成本),适用于大部分生产数据。

    • 配置位置:hdfs-site.xml

      xml 复制代码
      <property>
        <name>dfs.replication</name>
        <value>3</value>
      </property>
  2. 按数据类型调整

    • 热数据(高频访问):副本数设为3~4,提升读取性能(多副本可并行读取)。
    • 温数据(中频访问):副本数设为2,平衡存储成本和可用性。
    • 冷数据(低频访问):副本数设为1,降低存储成本(如归档数据)。
  3. 按数据重要性调整

    • 核心业务数据(如交易记录):副本数≥3,确保高可靠性。
    • 临时数据(如中间计算结果):副本数=1,减少存储开销。
  4. 调整方法

    • 创建文件时指定副本数

      bash 复制代码
      hdfs dfs -D dfs.replication=2 -put localfile /user/data/
    • 修改已有文件的副本数

      bash 复制代码
      hdfs dfs -setrep -w 2 /user/data/file.txt
      # -w:等待副本调整完成
    • 通过DistCp批量调整 :复制文件时指定副本数

      bash 复制代码
      hadoop distcp -D dfs.replication=1 /user/source /user/dest
  5. 结合存储策略

    • 使用HDFS的存储策略(如HotWarmCold),自动管理不同存储介质(SSD、HDD、归档存储)的副本分布,进一步平衡性能和成本。

104. 如何优化Hadoop的JVM参数?

Hadoop组件(如NameNode、DataNode、Map/Reduce任务)运行在JVM上,JVM参数配置直接影响稳定性和性能(如内存溢出、GC耗时过长)。

优化方法

  1. NameNode JVM优化

    • 核心需求:NameNode需存储大量元数据,需足够内存且减少GC停顿。

    • 配置(hadoop-env.sh):

      bash 复制代码
      export HADOOP_NAMENODE_OPTS="-Xms16g -Xmx16g -XX:NewRatio=3 -XX:SurvivorRatio=4 -XX:+UseG1GC"
      # -Xms/-Xmx:堆大小(设为物理内存的50%~70%,避免频繁GC)
      # -XX:NewRatio=3:老年代:新生代=3:1(元数据多为长期存活对象,老年代分配更多空间)
      # -XX:+UseG1GC:使用G1垃圾收集器,适合大堆内存,减少停顿时间
  2. DataNode JVM优化

    • 核心需求:DataNode主要处理IO,内存需求较低,但需稳定运行。

    • 配置:

      bash 复制代码
      export HADOOP_DATANODE_OPTS="-Xms4g -Xmx4g -XX:+UseConcMarkSweepGC"
      # CMS收集器:IO密集型场景下,减少GC对IO的影响
  3. Map/Reduce任务JVM优化

    • Map任务 :通常内存需求较低,重点减少启动开销。

      xml 复制代码
      <property>
        <name>mapreduce.map.java.opts</name>
        <value>-Xms2g -Xmx2g -XX:+UseParallelGC</value>
        <!-- ParallelGC:适合计算密集型,GC效率高 -->
      </property>
    • Reduce任务 :Shuffle阶段需缓存数据,内存需求较高。

      xml 复制代码
      <property>
        <name>mapreduce.reduce.java.opts</name>
        <value>-Xms4g -Xmx4g -XX:+UseG1GC -XX:MaxGCPauseMillis=200</value>
        <!-- G1GC控制最大停顿时间,避免Reduce任务超时 -->
      </property>
  4. 通用JVM优化

    • 启用JVM监控:添加-XX:+PrintGCDetails -XX:+PrintGCTimeStamps,记录GC日志,分析瓶颈。
    • 避免堆内存过大:超过32GB可能触发JVM指针压缩失效(64位模式下),增加内存开销。
    • 设置元空间大小(-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m),避免元空间溢出。

105. 如何通过监控工具发现Hadoop集群的性能瓶颈?

通过监控工具实时跟踪集群指标(如资源使用率、任务进度、IO负载),可快速定位性能瓶颈(如CPU过载、内存不足、网络延迟)。

常用监控工具及指标

  1. Ambari

    • 功能:Hadoop官方推荐的集群管理工具,支持可视化监控、告警和配置管理。
    • 关键指标
      • HDFS:NameNode内存使用率、DataNode磁盘IO、块副本健康状态。
      • YARN:ResourceManager资源使用率(CPU/内存)、队列负载、任务失败率。
      • MapReduce:Map/Reduce任务进度、Shuffle传输速率、GC耗时。
    • 瓶颈发现:通过仪表盘的红色告警(如"DataNode磁盘使用率>90%")直接定位问题节点。
  2. Ganglia

    • 功能:分布式监控系统,擅长收集集群节点的系统级指标(CPU、内存、网络IO)。
    • 关键指标
      • 节点CPU使用率(若持续>90%,可能存在计算资源瓶颈)。
      • 网络吞吐量(若接近带宽上限,存在网络瓶颈)。
      • 磁盘IOPS(若读写延迟>100ms,可能是磁盘IO瓶颈)。
    • 瓶颈发现:通过趋势图识别异常节点(如某节点网络传输量远高于其他节点)。
  3. Nagios

    • 功能:专注于节点可用性和服务健康监控,支持自定义告警规则。
    • 关键指标
      • 服务状态(NameNode/ResourceManager是否存活)。
      • 端口连通性(如DataNode的50010端口是否正常)。
      • 磁盘空间(HDFS数据目录剩余空间)。
    • 瓶颈发现:通过邮件/SMS告警(如"NameNode磁盘空间不足")及时发现故障。
  4. Hadoop自带工具

    • jps/jstat :查看JVM进程状态和GC情况(如jstat -gc <PID> 1000监控Map任务GC频率)。
    • hdfs dfsadmin -report:查看HDFS集群状态(如副本缺失、DataNode离线)。
    • yarn top:实时查看YARN任务资源使用(如某Reduce任务内存使用率>95%,可能内存不足)。
  5. 日志分析

    • HDFS日志(${HADOOP_LOG_DIR}/hadoop-hdfs-namenode-<host>.log):查找"BlockMissingException"(副本丢失)、"OutOfMemoryError"(内存瓶颈)。
    • MapReduce日志(${HADOOP_LOG_DIR}/userlogs/<application_id>/):分析任务失败原因(如"Shuffle error"可能是网络问题)。

瓶颈定位流程

  1. 用Ambari确认业务指标异常(如MapReduce任务耗时过长)。

  2. 用Ganglia检查对应节点的系统资源(CPU/内存/网络)。

  3. 结合Hadoop日志分析具体组件(如Shuffle阶段慢是因网络还是GC)。

  4. 通过Nagios确认无服务故障,排除硬件问题。

二、110道Hadoop面试题目录列表

文章序号 Hadoop面试题110道
1 Hadoop面试题及详细答案110道(01-15)
2 Hadoop面试题及详细答案110道(16-35)
3 Hadoop面试题及详细答案110道(36-55)
4 Hadoop面试题及详细答案110道(56-70)
5 Hadoop面试题及详细答案110道(71-85)
6 Hadoop面试题及详细答案110道(86-95)
7 Hadoop面试题及详细答案110道(96-105)
8 Hadoop面试题及详细答案110道(106-110)
相关推荐
洛克大航海20 小时前
Ubuntu中使用Hadoop的HDFS和MapReduce
hadoop·ubuntu·hdfs·mapreduce
夫唯不争,故无尤也1 天前
Maven创建Java项目实战全流程
java·数据仓库·hive·hadoop·maven
还是大剑师兰特1 天前
Hadoop面试题及详细答案 110题 (71-85)-- 集群部署与运维
大数据·hadoop·大剑师·hadoop面试题
还是大剑师兰特1 天前
微前端面试题及详细答案 88道(74-88)-- 实践场景与进阶扩展
微前端·大剑师·微前端面试题
_清浅1 天前
大数据平台基础(Hadoop大数据原理与应用)
大数据·hadoop·分布式
The Sheep 20232 天前
WPF自定义路由事件
大数据·hadoop·wpf
还是大剑师兰特2 天前
Hadoop面试题及详细答案 110题 (86-95)-- Hadoop生态系统工具
hadoop·大剑师·hadoop面试题
yumgpkpm2 天前
CMP (类Cloudera) CDP7.3(400次编译)在华为鲲鹏Aarch64(ARM)信创环境中的性能测试过程及命令
大数据·hive·hadoop·python·elasticsearch·spark·cloudera
Q26433650232 天前
大数据实战项目-基于K-Means算法与Spark的豆瓣读书数据分析与可视化系统-基于python的豆瓣读书数据分析与可视化大屏
大数据·hadoop·机器学习·数据分析·spark·毕业设计·kmeans