Hdfs java API
1.在主机上启动hadoop
sbin/start-all.sh
这里有一个小窍门,可以在本机上打开8088端口查看三台机器的连接状态,以及可以打开50070端口,查看hdfs文件状况。以我的主虚拟机为例,ip地址为192.168.198.200,所以可以采用下面这种方法使用这两个端口:
http://192.168.198.200:8088/
http://192.168.198.200:500070/
没有对hdfs进行任何操作的话,50070端口不会有任何文件显示,这是正常的,不代表发生了异常。8088端口显示的节点正常来说至少要为3,不对的话,说明有从机启动失败,此时就需要到各个从机节点处排错,检查配置文件和环境变量事都有异常。排错完成后重启hadoop
---------------------------------------------------------------------------------------------------------------------------------
2.采用简单命令检查hdfs配置是否正常
采用这个命令查看hdfs目录,没有进行任何操作的话不会有任何显示,这是正常的现象
hadoop fs -ls /
---------------------------------------------------------------------------------------------------------------------------------
3.在idea中创建maven项目
jdk要采用和本机一致的jdk版本,Archetype随便选即可
可以使用java -version命令,查看本机jdk版本
---------------------------------------------------------------------------------------------------------------------------------
4.下载Hdfs依赖
在pom.xml中修改,有一个单独的文件,不是target目录下的pom.xml文件!
在project标签中插入以下内容:
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>3.3.4</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>3.3.4</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>3.3.4</version>
</dependency>
</dependencies>
要选择和hadoop版本一致的依赖文件的版本,我的hadoop版本是3.3.4所以version标签是3.3.4,修改完成后要按提示下载依赖配置文件,然后静静的等待这些文件下载即可
---------------------------------------------------------------------------------------------------------------------------------
5.创建java类
在main文件夹下创建java文件夹,创建java类。但是这里不会一开始就建立主类,要自行调整为主类(New->dictionary->class)
---------------------------------------------------------------------------------------------------------------------------------
6.编写java代码
首先要配置本机环境变量,这一步必须提前设置,不然后续会出现权限错误报错!
代码如下:
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import org.apache.hadoop.hdfs.DistributedFileSystem;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class test {
public static void main( String[] args ) throws IOException, URISyntaxException, InterruptedException {
Configuration config = new Configuration();
config.set("fs.defaultFS", "hdfs://192.168.198.200:9000");
FileSystem hdfs = FileSystem.get(new URI("hdfs://192.168.198.200:9000"),config,"root");
Path local = new Path("file:/C:/Users/csr/Desktop/ihadoop.txt");
Path remote = new Path("hdfs://192.168.198.200:9000/test/ihadoop.txt");
hdfs.copyFromLocalFile(local, remote);
System.out.print("file upload success!");
hdfs.close();
}
}
其中ip地址,文件地址替换为对应的正确地址即可,不要直接复制粘贴
---------------------------------------------------------------------------------------------------------------------------------
7.检查文件
输入指令查看或者在50070端口查看
---------------------------------------------------------------------------------------------------------------------------------
8.其他操作
和linux中文件的操作基本类似
1.查看目录:hadoop fs -ls /文件夹名字
2.删除文件夹:bin/hdfs dfs -rm -r /文件夹名
删除文件:bin/hdfs dfs -rm -f /文件夹名/文件名
3.创建文件夹:hadoop fs -mkdir /文件夹名
4.创建文件:mkdir 文件名(hadoop)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!