eclipse添加hadoop开发插件

在开发hadoop的时候去查找了一下eclipse marketplace是没有找到hadoop的插件,上网又找了一下发现原来hadoop中其实是带有这样的插件的,

其实很简单只要将这个插件复制到eclipse/plugins目录下然后重启eclipse就可以了

重启之后就可以看到eclipse  == 》window  ==》 preferences  可以看到多了一个Hadoop Map/Reduce   点击Browse按钮找到你的hadoop的解压目录如图:

配置好了环境之后我们来创建一个本地连接,点击Windows==》show view  ==》 other 选择MapReduce Tools ==》Map/Reduce Location

然后我们新建一个本地连接,这这里右键  New hadoop Location

然后我们的配置host:这里的Map/Reduce Master对应hadoop配置文件中的mapred-site.xml

              DFS Master的配置对应core-site.xml详细请看图

配置好后的应该是这样的:

这里配置好之后我们可以启动hadoop来简单的测试一下

如果跟上面的输出信息一样证明正常启动了,如果没有正常启动估计是在配置的时候除了问题。下面我给几个简单的小测试程序可以运行一下

package com.hadoop.test;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

/**
 * copy local file  to hadoop system    将文件拷贝到HDFS
 * @author root
 *
 */
public class ConpyFile {

    public static void main(String[] args) {
        //get local system configuration
        Configuration conf = new Configuration();
        try {
            
            FileSystem hdfs = FileSystem.get(conf);
            
            Path src = new Path("/home/admin/test3");
            Path dst = new Path("/");
            
            hdfs.copyFromLocalFile(src, dst);;
            
            FileStatus files[] = hdfs.listStatus(dst);

            for(int i = 0; i < files.length; i++){
                System.out.println("status :"+files[i]);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        
        
    }
    
}

这里注意我的文件是已经创建的然后拷贝到hdfs上如果在上传的时候找不到文件可能跟linux下的权限有关系。建议修改权限就可以了。

package com.hadoop.test;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

/**
 * create a hdfs file   创建hdfs文件
 * @author root
 *
 */
public class CreateHDFSFile {
    
    public static void main(String[] args) {
        Configuration conf = new Configuration();  //获取系统的hadoop的配置环境
        try {
            FileSystem hdfs = FileSystem.get(conf);//获取文件系统对象
            byte bytes[] = "Hello word !".getBytes();
            Path dfs = new Path("/test");
            FSDataOutputStream outputStream = hdfs.create(dfs);  
            outputStream.write(bytes, 0, bytes.length);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }

}

重命名hadoop系统中的一个文件的名称:

package com.hadoop.test;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

/**
 * rename hdfs file 
 * @author root
 *
 */
public class ReNameHDFSFile {

    public static void main(String[] args) {
        Configuration conf = new Configuration();
        FileSystem hdfs;
        try {
            hdfs = FileSystem.get(conf);
            Path frpath = new Path("/test3");
            Path topath = new Path("/test1");
            boolean isRename = hdfs.rename(frpath, topath);
            System.out.println("rename is finish:"+isRename);
            
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

检查文件的最后的修改时间:

package com.hadoop.test;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

/**
 * check hdfs file last modify time
 * @author root
 *
 */
public class CheckFileLastModifyTime {

    public static void main(String[] args) {
        Configuration conf = new Configuration();
        try {
            FileSystem hdfs = FileSystem.get(conf);
            
            Path fpath = new Path("/test1");
            FileStatus fileStatus = hdfs.getFileStatus(fpath);
            long lastModifyTime = fileStatus.getModificationTime();
            
            
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            System.out.println("the last modify time is :"+sdf.format(new Date(lastModifyTime)));
                    
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }
    
}

 

posted @ 2013-11-24 12:13  唐凯  阅读(567)  评论(0编辑  收藏  举报