hdfsapi第一个案例(先创建一个包)
本地上传文件到hdfs
然后就可以直接运行
在终端输入查看命令,发现用户名是Windows的用户名
所以需要开启权限
开启完权限后,分发到其他节点
然后可以运行,但是发现报错(因为用户权限不对,需要修改为指定的用户)
所以需要修改用户文件权限
有以下三种方法是修改用户权限的操作
第一种
vm options:
-DHADOOP_USER_NAME=root
第二种
设置系统环境变量
System.setProperty("HADOOP_USER_NAME","root");
第三种
获取操作hdfs的客户端时,可以指定user参数
FileSystem fs = FileSystem.get(new URI("hdfs://hadoop0001:9000"), conf, "root");
也就是说,权限开启之后,要修改权限
获取文件系统的客户端的方式:获取操作对象的6种方式
到此上传操作就OK了
下载文件的环境配置、调用本地api
是因为用的是分布式文件系统去操作本地文件是没有权限的,所以报错(差的就是没有操作本地文件系统的权限)
所以需要搭一个本地hadoop环境。
可以将下面的文件夹解压到任务的目录下面
所以要把这文件解压出来,然后配置环境变量,HADOOP_HOME path里面配置以下path
然后就可以直接执行下载。
如果没有配置本地环境,需要操作怎么办。可以把参数设置为本地
但是一般是 用shell脚本写程序,然后Linux 直接调用就可以了