Hadoop之TaskTraker分析

    TaskTracker的工作职责之前已经和大家提过,主要负责维护,申请和监控Task,通过heartbeat和JobTracker进行通信。

     TaskTracker的init过程:

     1.读取配置文件,解析参数

     2.将TaskTraker上原有的用户local files删除并新建新的dir和file

     3. Map<TaskAttemptID, TaskInProgress> tasks = new HashMap<TaskAttemptID, TaskInProgress>(); 清除map

     4.    this.runningTasks = new LinkedHashMap<TaskAttemptID, TaskInProgress>();记录task的链表
            this.runningJobs = new TreeMap<JobID, RunningJob>();记录job的id信息

     5.初始化JVMManager:

  mapJvmManager = new JvmManagerForType(tracker.getMaxCurrentMapTasks(), 
        true, tracker);
    reduceJvmManager = new JvmManagerForType(tracker.getMaxCurrentReduceTasks(),
        false, tracker);
     6.初始化RPC,获取JobTracker client用于heartbeat通信;

     7.new一个 后台线程用于监听map完成的事件

  
    this.mapEventsFetcher = new MapEventsFetcherThread();
    mapEventsFetcher.setDaemon(true);
    mapEventsFetcher.setName(
                             "Map-events fetcher for all reduce tasks " + "on " + 
                             taskTrackerName);
    mapEventsFetcher.start();
    后台线程的run方法如下:

 while (running) {
        try {
          List <FetchStatus> fList = null;
          synchronized (runningJobs) {
            while (((fList = reducesInShuffle()).size()) == 0) {
              try {
                runningJobs.wait();
              } catch (InterruptedException e) {
                LOG.info("Shutting down: " + this.getName());
                return;
              }
            }
          }
          // now fetch all the map task events for all the reduce tasks
          // possibly belonging to different jobs
          boolean fetchAgain = false; //flag signifying whether we want to fetch
                                      //immediately again.
          for (FetchStatus f : fList) {
            long currentTime 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Hadoop的数据分析是一种通过使用Hadoop分布式计算框架来处理大数据集的方法。Hadoop通过将数据分割成较小的块,并在多个计算节点上并行处理这些块来实现高性能和可扩展性。 在基于Hadoop的数据分析中,首先需要将数据加载到Hadoop集群中。Hadoop使用分布式文件系统(HDFS)来存储数据,可以处理各种类型的数据,如结构化、半结构化和非结构化数据。 一旦数据被加载到Hadoop集群中,就可以使用Hadoop的MapReduce框架对其进行分析。MapReduce将数据分成一系列键-值对,并在每个计算节点上并行执行map和reduce任务。Map任务处理数据的每个片段,并生成(键-值)对,而reduce任务对生成的键-值对进行聚合和汇总。 基于Hadoop的数据分析可以用于多种用途,如数据挖掘、机器学习、日志分析等。例如,在数据挖掘中,可以使用Hadoop来发现数据中的模式和关联规则。在机器学习中,Hadoop可以用于训练和评估模型,以及进行特征提取和预测。 与传统的数据分析方法相比,基于Hadoop的数据分析具有许多优势。首先,Hadoop能够处理大规模的数据,能够快速地进行分析和处理。其次,Hadoop提供了容错机制,即使一个或多个节点发生故障,也能保证数据的完整性和可靠性。此外,Hadoop还可以和其他开源工具和技术(如Hive、Pig、Spark)结合使用,扩展其功能和能力。 总的来说,基于Hadoop的数据分析是一种高效和可扩展的方法,可以帮助企业和组织更好地理解和利用他们的数据,并从中获得有价值的洞察和信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值