您的位置:首页 > 编程语言 > Java开发

eclipse添加hadoop开发插件

2013-11-24 12:13 316 查看
在开发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();
}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: