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的更多相关文章

  1. [b0007] windows 下 eclipse 开发 hdfs程序样例

    目的: 学习使用hdfs 的java命令操作 相关: 进化: [b0010] windows 下 eclipse 开发 hdfs程序样例 (二) [b0011] windows 下 eclipse 开 ...

  2. windows下Eclipse安装Perl插件教程

    windows下Eclipse安装Perl插件教程 想用eclipse编写perl.网上看了很多资料.但EPIC插件的下载连接都失效了.无奈,只好自己动手写个教程记录一下. 准备工作: 安装好Ecli ...

  3. 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- ...

  4. windows下eclipse远程连接hadoop集群开发mapreduce

    转载请注明出处,谢谢 2017-10-22 17:14:09  之前都是用python开发maprduce程序的,今天试了在windows下通过eclipse java开发,在开发前先搭建开发环境.在 ...

  5. [b0011] windows 下 eclipse 开发 hdfs程序样例 (三)

    目的: 学习windows 开发hadoop程序的配置. [b0007] windows 下 eclipse 开发 hdfs程序样例 太麻烦 [b0010] windows 下 eclipse 开发 ...

  6. [b0010] windows 下 eclipse 开发 hdfs程序样例 (二)

    目的: 学习windows 开发hadoop程序的配置 相关: [b0007] windows 下 eclipse 开发 hdfs程序样例 环境: 基于以下环境配置好后. [b0008] Window ...

  7. Windows下Eclipse提交MR程序到HadoopCluster

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 欢迎转载,转载请注明出处. 以前Eclipse上写好的MapReduce项目经常是打好包上传到Hadoop测试集 ...

  8. Windows下Eclipse连接hadoop

    2015-3-27 参考: http://www.cnblogs.com/baixl/p/4154429.html http://blog.csdn.net/u010911997/article/de ...

  9. 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 ...

随机推荐

  1. 修改窗口属性(全部都是SetWindowLong设置)

    说明: 以下函数对于POPUP窗口有效,对于子窗口好像不行. //最小化按钮有效 ::SetWindowLong(m_hWnd,GWL_STYLE,GetWindowLong(m_hWnd,GWL_S ...

  2. 【CF】244C Checkposts

    题目需要求啥很明确了.主要思想是先计算机联通块,然后每个块内找到一个最小值(以及该值的次数).最小值和结果1,次数乘积为结果2.联通块tarjan可解. /* 427C */ #include < ...

  3. Win7 64位系统U盘安装Centos6.5双系统

    (win764位旗舰版系统 Centos6.5亲测成功) 安装前准备: U盘.软碟通(UltraISO).CentOS-6.5-x86_64-bin-DVD1(DVD 2只是一些软件,安装系统只要DV ...

  4. Linux驱动的两种加载方式过程分析

    一.概念简述 在Linux下可以通过两种方式加载驱动程序:静态加载和动态加载. 静态加载就是把驱动程序直接编译进内核,系统启动后可以直接调用.静态加载的缺点是调试起来比较麻烦,每次修改一个地方都要重新 ...

  5. google font和@font-face

    会使用google字体 网址: http://www.google.com/fonts/ 选择字体, quick use 引用css: <link href='http://fonts.goog ...

  6. 【转】Unity 相关经典博客资源总结(持续更新)

    原文:http://blog.csdn.net/prothi/article/details/20123319 就作为一个记录吧,把平时看过的Unity相关的一些好的Blog记录并分享. 好的论坛: ...

  7. 这几天阅读的shadowgun的几个shader

    直接从阅读时记录的笔记摘抄过来,写的比较随意. 1. MADFINGER-blinking-god-rays 除了可以用于实现太阳光线效果,还能调整参数让颜色随时间淡入淡出闪烁,能做出想灯光之类的效果 ...

  8. .Net remoting 的文件传输

    http://www.codeproject.com/Articles/14100/Dot-Net-Remoting-Handling-Remote-Events-using-Dele

  9. dp poj 1080 Human Gene Functions

    题目链接: http://poj.org/problem?id=1080 题目大意: 给两个由A.C.T.G四个字符组成的字符串,可以在两串中加入-,使得两串长度相等. 每两个字符匹配时都有个值,求怎 ...

  10. Python爬取CSDN博客文章

    0 url :http://blog.csdn.net/youyou1543724847/article/details/52818339Redis一点基础的东西目录 1.基础底层数据结构 2.win ...