安装maven并导入相关依赖
将maven安装包解压后在conf/setting.xml中设置maven默认仓库位置
windows下配置环境变量
在pom.xml文件中右键,点击Maven,然后再点击“Reload project”,可以自动下载jar包
进入IDEA在创建项目后设置自己的maven
在pom中导入相关的hadoop依赖
在maven仓库中寻找对应版本的hadoop依赖
在pom中加入依赖
IDEA编写java代码上传文件到hdfs
注意,fs.defaultFS属性在core-site.xml中查看,用于连接hdfs
java代码如下:
package hdfs;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import java.io.FileInputStream;
import java.io.IOException;
public class OP_HDFS {
public static void main(String[] args) throws IOException {
Configuration conf = new Configuration();
//属性用来指定namenode的hdfs协议的文件系统通信地址
conf.set("fs.defaultFS", "hdfs://hadoop01:9000");
//获取操作hdfs对象
FileSystem fileSystem = FileSystem.get(conf);
//获取本地文件输入流
FileInputStream fileInputStream = new FileInputStream("D:\\cty.txt");
//获取hdfs输出流
FSDataOutputStream fsDataOutputStream = fileSystem.create(new Path("/cty.txt"));
//将输入流拷贝到输出流中
/*
* @in:输入流
* @out:输出流
* @buffSize:缓冲区大小,用于存储读取的数据临时存储的缓冲区大小。可以根据需要选择合适的大小
* @close:是否在复制完成后关闭输入流和输出流
*/
IOUtils.copyBytes(fileInputStream, fsDataOutputStream, 1024, true);
}
}
修改配置文件hdfs-site.xml,去掉hdfs的用户权限检验机制
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop01:50090</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>
同步到另外两个节点
运行程序后到hdfs中查看