windows下eclipse+hadoop2
windows下eclipse+hadoop2.4开发手册
1.解压下载的hadoop2.4,到任意盘符,例如D:\hadoop-2.4.0。
2.设置环境变量
①新建系统变量,如下所示。
②将新建的HADOOP_HOME变量“%HADOOP_HOME%\bin;”加入到PATH变量里,如下图。
3.将hadoop服务器下的hadoop目录下etc/hadoop目录下的以下四个文件拷贝到自己开发的电脑相应目录下,如下图所示。
4.如果hadoop服务器中上述四个文件配置的是机器名,请在开发的电脑中改为ip地址,例如下图。
5.将hadoop目录下的所有jar包拷贝到自己的项目中,例如下图所示。
①将“D:\hadoop-2.4.0\share\hadoop”目录下及其子目录中所有jar以及子目录下的lib目录下的jar拷贝到自己的项目中。
②我一共拷贝了117个jar,如下图所示。
6.将hadoop服务器上的hadoop目录下的etc/hadoop目录下的以下两个文件拷贝到项目中的src目录下,同样将文件内容中的机器名改为ip。
7.HDFS操作类
其中hdfspath例如:"hdfs://192.168.1.103:9000/input/";//要保证你的hdfs空间中有此路径
import
java.io.FileNotFoundException;
import
java.io.FileOutputStream;
import
java.io.IOException;
import
java.io.InputStream;
import
java.io.OutputStream;
import
java.net.URI;
import java.util.ArrayList;
import
org.apache.hadoop.conf.Configuration;
import
org.apache.hadoop.fs.FSDataInputStream;
import
org.apache.hadoop.fs.FSDataOutputStream;
import
org.apache.hadoop.fs.FileStatus;
import
org.apache.hadoop.fs.FileSystem;
import
org.apache.hadoop.fs.Path;
import
org.apache.hadoop.io.IOUtils;
import
org.apache.hadoop.util.Progressable;
public class
HDFSOperation {
private Configuration
conf;
private FileSystem fs;
/**
* @Title: HDFSOperation
* @Description 初始化配置
* @author
cpthack
* @see
初始化配置
* @return
对参数的说明
* @param
对方法中某参数的说明
* @example 方法使用例子
* */
public HDFSOperation() throws
IOException{
conf = new Configuration();
fs = FileSystem.get(conf);
}
/**
* @Title: upLoad
* @Description 上传文件
* @author
cpthack
* @see
上传文件
* @return
对参数的说明
* @param
in:文件输入流;hdfsPath:保存在云端的文件路径
* @example 方法使用例子
* */
public boolean upLoad(InputStream in,
String hdfsPath){
Path p = new Path(hdfsPath);
try{
if(fs.exists(p)){
System.out.println("文件已经存在");
return
false;
}
//获得hadoop系统的连接
FileSystem fs =
FileSystem.get(URI.create(hdfsPath),conf);
//out对应的是Hadoop文件系统中的目录
OutputStream out = fs.create(new
Path(hdfsPath));
IOUtils.copyBytes(in, out, 4096,true);//4096是4k字节
in.close();
}catch(Exception e){
e.printStackTrace();
}
return true;
}
/**
* @Title: upLoad
* @Description 下载文件
* @author
cpthack
* @see
下载文件
* @return
对参数的说明
* @param
localPath:文件保存在本地的路径;hdfsPath:文件存在云端的路径
* @example 方法使用例子
* */
@SuppressWarnings("resource")
public boolean downLoad(String
hdfsPath,String localPath ){
Path path = new
Path(hdfsPath);
try {
if(!fs.exists(path)){
System.out.println("云端文件不存在");
return
false;
}
FileSystem hdfs =
FileSystem.get(conf);
Path dstPath = new
Path(localPath);
hdfs.copyToLocalFile(true,path,
dstPath);
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
public boolean downFromCloud(String
hdfsPath,String srcFileName){
// 实例化一个文件系统
FileSystem fs;
try {
fs =
FileSystem.get(URI.create(hdfsPath), conf);
// 读出流
FSDataInputStream
HDFS_IN = fs.open(new Path(hdfsPath));
// 写入流
OutputStream
OutToLOCAL = new FileOutputStream(srcFileName);
// 将InputStrteam 中的内容通过IOUtils的copyBytes方法复制到OutToLOCAL中
IOUtils.copyBytes(HDFS_IN,
OutToLOCAL, 1024, true);
return true;
} catch (IOException
e) {
e.printStackTrace();
return
false;
}
}
/**
* @Title: deletePath
* @Description 删除文件
* @author
cpthack
* @see
删除文件
* @return
对参数的说明
* @param
hdfsPath:文件存在云端的路径
* @example 方法使用例子
* */
public boolean deletePath(String
hdfsPath){
try {
fs.delete(new
Path(hdfsPath), true);
} catch (IOException e) {
e.printStackTrace();
return false;
}
return true;
}
/**
* @Title: getFileList
* @Description 获取某个目录下所有文件
* @author
cpthack
* @see
获取某个目录下所有文件
* @return
对参数的说明
* @param
hdfsPath:存在云端的文件夹
* @example 方法使用例子
* */
public ArrayList<FileBean>
getFileList(String hdfsPath){
Path path = new
Path(hdfsPath);
ArrayList<FileBean>
fileList = new ArrayList<FileBean>();
FileStatus[] status;
try {
status =
fs.listStatus(path);
for(FileStatus fs :
status){
fileList.add(new
FileBean(fs));
}
} catch (Exception e) {
e.printStackTrace();
}
return fileList;
}
//创建文件夹
public boolean mkdir(String dir){
FileSystem fs;
try {
fs =
FileSystem.get(conf);
fs.mkdirs(new
Path(dir));
fs.close();
} catch (IOException e) {
e.printStackTrace();
return false;
}
return true;
}
/*删除文件夹*/
@SuppressWarnings("deprecation")
public boolean deleteDir(String dir){
FileSystem fs;
try {
fs =
FileSystem.get(conf);
fs.delete(new
Path(dir));
fs.close();
} catch (IOException e) {
e.printStackTrace();
return false;
}
return true;
}
}
windows下eclipse+hadoop2的更多相关文章
- [b0007] windows 下 eclipse 开发 hdfs程序样例
目的: 学习使用hdfs 的java命令操作 相关: 进化: [b0010] windows 下 eclipse 开发 hdfs程序样例 (二) [b0011] windows 下 eclipse 开 ...
- windows下Eclipse安装Perl插件教程
windows下Eclipse安装Perl插件教程 想用eclipse编写perl.网上看了很多资料.但EPIC插件的下载连接都失效了.无奈,只好自己动手写个教程记录一下. 准备工作: 安装好Ecli ...
- windows下Eclipse操作MapReduce例子报错:Failed to set permissions of path: \tmp\hadoop-Jerome\mapred\staging\
windows下Eclipse操作MapReduce例子报错: 14/05/18 22:05:29 WARN util.NativeCodeLoader: Unable to load native- ...
- windows下eclipse远程连接hadoop集群开发mapreduce
转载请注明出处,谢谢 2017-10-22 17:14:09 之前都是用python开发maprduce程序的,今天试了在windows下通过eclipse java开发,在开发前先搭建开发环境.在 ...
- [b0011] windows 下 eclipse 开发 hdfs程序样例 (三)
目的: 学习windows 开发hadoop程序的配置. [b0007] windows 下 eclipse 开发 hdfs程序样例 太麻烦 [b0010] windows 下 eclipse 开发 ...
- [b0010] windows 下 eclipse 开发 hdfs程序样例 (二)
目的: 学习windows 开发hadoop程序的配置 相关: [b0007] windows 下 eclipse 开发 hdfs程序样例 环境: 基于以下环境配置好后. [b0008] Window ...
- Windows下Eclipse提交MR程序到HadoopCluster
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 欢迎转载,转载请注明出处. 以前Eclipse上写好的MapReduce项目经常是打好包上传到Hadoop测试集 ...
- Windows下Eclipse连接hadoop
2015-3-27 参考: http://www.cnblogs.com/baixl/p/4154429.html http://blog.csdn.net/u010911997/article/de ...
- windows下eclipse远程连接hadoop错误“Exception in thread"main"java.io.IOException: Call to Master.Hadoop/172.20.145.22:9000 failed ”
在VMware虚拟机下搭建了hadoop集群,ubuntu-12.04,一台master,三台slave.hadoop-0.20.2版本.在 master机器上利用eclipse-3.3连接hadoo ...
随机推荐
- utf8_to_utf16
17down voteaccepted Here's some code. Only lightly tested and there's probably a few improvements. C ...
- Android WebView JavaScript交互
今天介绍一下,Android中Webview与JavaScript的交互,首先是在布局文件里添加webview控件: <WebView android:id="@+id/webview ...
- 【POJ】2528 Mayor's posters
离散化+线段树.数组开的不够大,wa了N多回. #include <iostream> #include <cstdio> #include <cstring> # ...
- jquery.lazyload的使用
1.引入 <script src="jquery.js" type="text/javascript"></script> <sc ...
- Node.js权威指南 (4) - 模块与npm包管理工具
4.1 核心模块与文件模块 / 574.2 从模块外部访问模块内的成员 / 58 4.2.1 使用exports对象 / 58 4.2.2 将模块定义为类 / 58 4.2.3 为模块类定义类变量或类 ...
- pojo类和vo类分别是什么
转:http://blog.sina.com.cn/s/blog_4adc4b090101kuks.html vo有两种说法,一个是viewObject,一个是valueObject.. 就拿前者来说 ...
- vs默认的app.config是哪个?
一:这次是进一步的三层构架,不过还是没有业务逻辑层,但有单独的层的文件夹,解决方案资源管理器图如下: 二:operatorDAl.cs代码: using System; using System.Co ...
- BZOJ1057 [ZJOI2007]棋盘制作(极大化思想)
1057: [ZJOI2007]棋盘制作 Time Limit: 20 Sec Memory Limit: 162 MB Submit: 1848 Solved: 936 [Submit][Sta ...
- poj 1228 凸包
题目链接:http://poj.org/problem?id=1228 #include<cstdio> #include<cstring> #include<cmath ...
- 【内部竞聘】华东/华南 -区域招商高级经理/经理 - 荐才纳贤 - 京东内部论坛 - Powered by Discuz!
[内部竞聘]华东/华南 -区域招商高级经理/经理 - 荐才纳贤 - 京东内部论坛 - Powered by Discuz! [内部竞聘]华东/华南 -区域招商高级经理/经理 [复制链接] ...