eclipse下操作hadoop例子
来源:互联网 发布:软件开发文档控制程序 编辑:程序博客网 时间:2024/06/14 10:03
一、准备环境
jdk1.6eclipse4.6hadoop1.1.2包ant.jar
二、在linux下启动hadoop
启动命令start-all.sh
查看命令jps
三、然后编辑代码
1.在eclipse中新建一个java项目名字为hadoop_001
2.导入所需要的包
(1)导入hadoop下lib下的jar
(2)导入hadoop根目录下的jar
(3)导入ant的包
3.新建一个java程序名字为App2.java
package hdfs;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.net.URI;import java.net.URISyntaxException;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;/** * 使用hadoop api 作者:hjduan 2017年5月15日 下午12:10:47 */public class App2 { static final String PATH = "hdfs://nodename:9000/"; static final String DIR = "/d1"; static final String FILE = "/d1/hello"; public static void main(String[] args) throws Exception { FileSystem fileSystem = getFileSystem(); // 创建文件夹 hadoop fs -mkdir /f1 mkdir(fileSystem); // 上传文件 -put src des putData(fileSystem); // 浏览文件夹 list(fileSystem); // 下载文件 hadoop fs -get src des getData(fileSystem); // 删除文件夹 // remove(fileSystem); } private static void list(FileSystem fileSystem) throws IOException { final FileStatus[] listStatus = fileSystem.listStatus(new Path("/")); for (FileStatus fileStatus : listStatus) { String isDir = fileStatus.isDir() ? "文件夹" : "文件"; final String permission = fileStatus.getPermission().toString(); final short replication = fileStatus.getReplication(); final long len = fileStatus.getLen(); final String path = fileStatus.getPath().toString(); System.out.println(isDir + "\t" + permission + "\t" + replication + "\t" + len + "\t" + path); } } private static void getData(FileSystem fileSystem) throws IOException { final FSDataInputStream in = fileSystem.open(new Path(FILE)); IOUtils.copyBytes(in, System.out, 1024, true); } private static void putData(FileSystem fileSystem) throws IOException, FileNotFoundException { final FSDataOutputStream out = fileSystem.create(new Path(FILE)); final FileInputStream in = new FileInputStream( "E:/readme.txt"); IOUtils.copyBytes(in, out, 1024, true); } private static void remove(FileSystem fileSystem) throws IOException { fileSystem.delete(new Path(DIR), true); } private static void mkdir(FileSystem fileSystem) throws IOException { fileSystem.mkdirs(new Path(DIR)); } private static FileSystem getFileSystem() throws IOException, URISyntaxException { return FileSystem.get(new URI(PATH), new Configuration()); }}
4.在运行之前先在E盘下新建一个readme.text内容如下
1.对hdfs操作的命令格式是hadoop fs 1.1 -ls <path> 表示对hdfs下一级目录的查看 1.2 -lsr <path> 表示对hdfs目录的递归查看 1.3 -mkdir <path> 创建目录 1.4 -put <src> <des> 从linux上传文件到hdfs 1.5 -get <src> <des> 从hdfs下载文件到linux 1.6 -text <path> 查看文件内容 1.7 -rm <path> 表示删除文件 1.7 -rmr <path> 表示递归删除文件2.hdfs在对数据存储进行block划分时,如果文件大小超过block,那么按照block大小进行划分;不如block size的,划分为一个块,是实际数据大小。*****PermissionDenyException 权限不足**********
5.运行结果
(1)eclipse控制台如下
(2)hadoop平台内容
6.如果运行出现域名不能解析 那么需要先配置一些windows下的hosts文件 对域名nodename进行一下配置。
阅读全文
0 0
- eclipse下操作hadoop例子
- eclipse下操作hadoop处理文件的简单的例子
- eclipse 下操作GIT
- [Hbase]eclipse下操作hbase
- linux下操作hadoop的常用命令
- .NET下操作注册表
- android下操作FrameBuffer
- linux下操作
- android下操作FrameBuffer
- android下操作FrameBuffer
- android下操作FrameBuffer
- vs2008下操作Excel
- linux下操作tomcat
- windows下操作mysql
- android下操作FrameBuffer
- Linux下操作Mysql
- jquery 下操作json
- ubuntu下操作mysql
- python自动配置java环境(linux)
- percona-toolkit的简介和安装
- Kalman滤波器
- /bin/sh^M:损坏的解释器: 没有那个文件或目录
- 字符串常量到底存放在哪个存储区
- eclipse下操作hadoop例子
- HDU 1879 继续畅通工程——最小生成树
- 第七届蓝桥杯决赛JavaA组第三题_棋子换位
- ApplicationContextAware接口使用实例
- static的基本规则
- 在salesforce中如何获取Security Token
- 设计模式之策略模式 | Strategy Pattern
- 如何告诉git哪个私钥要使用?
- 自动化测试与手工测试对比