Eclipse Hadoop之FileSystem

Eclipse Hadoop之FileSystem

  • 添加依赖
    • 添加配置文件
    • 测试运行

添加依赖

有大量的博客和帖子,都是用Maven搭建的。但是不知道怎么回事,我搭建的时候,总是出现各种错误。所以才选择添加本地依赖:
eclipse中,新建user library->add external jars

  • /hadoop的安装路径/share/hadoop/hdfs/hadoop-hdfs-3.2.1.jar
  • /hadoop的安装路径/share/hadoop/hdfs/hadoop-hdfs-client-3.2.1.jar
  • /hadoop的安装路径/share/hadoop/mapreduce/ 下的所有jar包,注意不要误选择目录
  • /hadoop的安装路径/share/hadoop/hdfs/lib/ 下的所有jar包,注意不要直接点lib文件夹,而是全选lib文件夹下的jar包
  • /hadoop的安装路径/share/hadoop/common/hadoop-common-3.2.1.jar
  • /hadoop的安装路径/share/hadoop/common/lib/ 下的所有jar包,注意不要直接点lib文件夹,而是全选lib文件夹下的jar包

user library添加好后,就右键项目->build path->add library->user library即可

添加配置文件

  • 配置文件:/hadoop安装路径/etc/hadoop 下的,core-site.xml、hdfs-site.xml
    Eclipse Hadoop之FileSystem_第1张图片
  • 复制粘贴到/src/下,不要放到package
    Eclipse Hadoop之FileSystem_第2张图片

测试运行

  • 启动hadoop
./sbin/start-dfs.sh
  • 看看hadoop下有什么
hdfs dfs -ls /
  • 下面的代码,实现将 hdfs系统下的/test2/upload.txt,下载到本地的/home/hadoop/test2/upload.txt
package hadoop;

import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.commons.io.IOUtils;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class TestMain {

	public static void main(String[] args) throws IOException {
		
		Configuration conf = new Configuration();
		
		FileSystem fs = FileSystem.get(conf);
		
		Path path = new Path("hdfs://localhost:9000/test2/upload.txt");
		
		FSDataInputStream in = fs.open(path);
		
		FileOutputStream out = new FileOutputStream("/home/hadoop/test2/upload.txt");
		
		IOUtils.copy(in, out);
		
	}
}

  • 注意上面的core-site.xml文件是这样的:
    Eclipse Hadoop之FileSystem_第3张图片
  • 对应代码
Path path = new Path("hdfs://localhost:9000/test2/upload.txt");

你可能感兴趣的:(没人看系列)