添加依赖
有大量的博客和帖子,都是用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
- 复制粘贴到/src/下,不要放到package
测试运行
- 启动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文件是这样的:
- 对应代码
Path path = new Path("hdfs://localhost:9000/test2/upload.txt");