在linux下成功的启动hadoop集群后 回到windows下搭建eclipse开发平台
1.安装hadoop插件
右击图表 选择属性
打开文件所在位置
进入plugins文件夹
将插件赋值到plugins文件夹
打开eclipse
先点击视图添加
再选择Map/reduc视图
将linux配置好的的hadoop文件发到windows下
在主节点下
选择hadoop文件直接拖到windows的盘符下
打开eclipse点击工具栏window->preferences
在搜索栏下搜索hadoop
选择路径(刚刚从linux系统拖到windows系统的hadoop配置文件夹)、
点击Apple
点击蓝色小象图标
配置信息
DFS的Prot与我们的hadoop配置文件中 一致
namenod1的端口号9000
设置好之后
展开DFP115
在主节点的linux下
查看hdfs并且创建test文件夹
回到windows下的eclipse查看 刷新后展示出HDFS上的文件结构
证明搭建平台成功
2.调用hdfsAPI
新建项目选择其他搜索MAP/reduce proj..
创建hdfsAPI项目点击完成
右击DFP115
选择 Edit hadoop....
修改hadoop.tmp.dir对于的路径这个路径来源于hadoop配置文件中的core-site.xml
在项目下建立包创建类
在主节点下查看hdfs dfs下文件又那些查看test文件为空
编写putfile.java
package com.aop.test;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class Putfile {
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
URI uri = new URI("hdfs://192.168.150.81:9000");
FileSystem fs = FileSystem.get(uri, conf);
//windows本地文件
Path src = new Path("E:\\BIG_3UP\\大数据\\data_source\\data_word.txt");
//虚拟机下的HDFS存放位置
Path dst = new Path("/test/test_data.txt");
fs.copyFromLocalFile(src, dst);
System.out.println("Upload to " + conf.get("fs.defaultFS"));
//以下相当于执行hdfs dfs -ls /
FileStatus files[] = fs.listStatus(dst);
for (FileStatus file : files) {
System.out.println(file.getPath());
}
}
}
解释一下
Path src = new Path("E:\\BIG_3UP\\大数据\\data_source\\data_word.txt");是windows下的数据确保存在这个数据
Path dst = new Path("/test/test_data.txt");
这个是文件的要目标地址
运行hadoop
运行完成之后我们在主节点下查询test文件还是为空
控制台并没有打印信息 是因为我们的用户并没有权限修改linux下的文件
我们修改我们的用户名方便我们操作 将UserName修改为115
进入linux下修改权限
我们查看到test文件夹的权限为root 和supergroup
修改权限输入下列命令
[root@namenod1 hadoop]# hdfs dfs -chown 115 /test
[root@namenod1 hadoop]# hdfs dfs -chgrp 115 /test
最后运行eclipse选择hadoop环境
进入linux系统看结果
查看文本信息hdfs dfs -cat /text/text.txt
(说明可能是系统原因我的用户权限115不能识别只能改为英文字符的administrator 如果你们在操作的时候上面的步骤正确执行还是不能上传文件建议吧eclipse的用户名改为英文字符)
点击test
在主节点下的50070也有信息
到这来我们就完成了api的调用让windows的文件上传到hdfs