对Hadoop完全分布式集群下MapReduce日志的提取

本文详细介绍如何搭建Hadoop完全分布式集群,并通过Java程序查询MapReduce任务的日志输出,包括syserr、syslog和sysout文件的内容。

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

对MapReduce日志的提取可参考下面的博客

MapReduce日志提取

一.搭建Hadoop完全分布式集群

    1.先配置服务器主机名

        Namenode节点对应的主机名为master

        Datanode节点对应的主机名为slave1、slave2

        gedit   /etc/hosts

        

    2.下载安装Hadoop

       

       3.配置master分布式环境

      core-site.xml

      

       hdfs-site.xml

      

     mapred-site.xml

    

hadoop-env.sh

 

      yarn-site.xml

     

   4.安装配置jdk环境

     


5.配置SSH免密码登录

  

  在slave1和slave2上执行相同的操作,在master上执行ssh slave1/slave2第一次提示输入密码,以后就可以直接免密码登录

 6.将master节点上的Hadoop环境和JDK环境复制到slave1和slave2节点

   scp  /opt/hadoop/hadoop-2.8.0  root@slave1/slave2:/opt

7.在master节点上格式化分布式环境

     

8.在master节点上启动分布式环境

 

sbin/start-all.sh等价于先启动sbin/hadoop-daemon namenode start,然后再启动sbin/hadoop-daemon datanode start

二.执行wordcount任务

     1.新建个input文件夹,并在里面编辑一定的内容

     

   2.在hdfs文件系统中创建 /user/root/in(逐层创建不容易出错),并将本地文件input上传到hdfs目录里

   

   

  3.执行wordcount函数进行Map/Reduce任务

   

 4.在slave1节点和slave2节点安装配置Java集成化工具IDEA,并对MapReduce日志进行查询输出

   

       

package com.itmyhome.log;

import java.io.*;
import java.util.List;

/**
 * Created by TracyMcGrady on 2017/6/29.
 */
public class LogHandle {

    public static void readFile(String fileName) {

    String output = "";

    File file = new File(fileName);

    if(file.exists()){
        if(file.isFile()){
            try{
                BufferedReader input = new BufferedReader (new FileReader(file));
                StringBuffer buffer = new StringBuffer();
                String text;

                while((text = input.readLine()) != null)
                    buffer.append(text +"/n");

                output = buffer.toString();
            }
            catch(IOException ioException){
                System.err.println("File Error!");

            }
            System.out.println(output);
        }
        else if(file.isDirectory()){
            System.out.println("Content Name is "+file.getName());
            String[] dir = file.list();

            for(int i=0; i<dir.length; i++){
                System.out.println(dir[i]);
                //output += dir[i] +"\n";
                readFile(dir[i]);
            }
        }
    }
    else{
        System.err.println("This Content has not any file!");
    }
    return;
}

    public static void main (String args[]){
      readFile("/opt/hadoop/hadoop-2.8.0/logs/userlogs");
    }

}
主要查询MapReduce任务对应的userlogs目录下的syserr,syslog和sysout文件里的输出内容



   附:MapReduce的Web管理界面

    




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值