HDFS命令和java API

HDFS命令和java API
实验步骤

  1. 搭建Hadoop伪分布式模式、或者完全分布式模式
  2. Windows里安装配置JDK+Eclipse+Maven
  3. 在Eclipse里新建Maven Project,新建包,新建class
  4. 编程上述4个Java程序
  5. 虚拟机的namenode主机上,启动Hadoop
  6. 在eclipse里运行上述4个Java程序
  7. 使用hdfs的shell命令查看运行结果
  8. 使用web console查看运行结果
    Linux的shell命令
    常用的linux的shell命令:
    cd /aa 转到/aa目录
    pws 显示当前目录
    ll /aa 显示/aa目录
    mkdir /aa 新建/aa目录
    rm /aa/out.txt 删除/aa目录下的out.txt文件
    cat /aa/out.txt 查看/aa目录下的out.txt文件的内容
    vi /aa/out.txt 编辑/aa目录下的out.txt文件的内容
    ifconfig 查看IP地址
    ip addr 查看IP地址
    hdfs的shell命令
    hdfs的shell命令,有三种形式,用前面两个。
    hdfs dfs √
    hadoop fs √
    hadoop dfs ×
    常用的hdfs的shell命令:
    hdfs dfs -ls / 查看hdfs根目录下文件和目录
    hdfs dfs -ls -R / 查看hdfs根目录下包括子目录在内的所有文件和目录
    hdfs dfs -mkdir /aa/bb 在hdfs的/aa目录下新建/bb目录
    hdfs dfs -rm -r /aa/bb 删除hdfs的/aa目录下的/bb目录
    hdfs dfs -rm /aa/out.txt 删除hdfs的/aa目录下的out.txt文件
    hdfs dfs -put anaconda-ks.cfg /aa 把本地文件上传到hdfs
    hdfs dfs -copyFromLocal a.txt / 把本地文件上传到hdfs
    hdfs dfs -get /bb.txt bbcopy.txt 从hdfs下载文件到本地
    hdfs dfs -copyToLocal /bb.txt bbcopy.txt 从hdfs下载文件到本地
    1、获取 HDFS 文件系统
    public static FileSystem getFileSystem() throws IOException, URISyntaxException{
    //1、获取配置文件
    Configuration conf = new Configuration();

// FileSystem fs = FileSystem.get(conf);//集群环境下直接获取默认文件系统
//2、指定的文件系统地址
URI path = new URI(“hdfs://test:9000”);
//3、返回指定的文件系统地址 ------本地测试使用此方法
FileSystem fs = FileSystem.get(path, conf);
//4、此处关闭文件系统流会报错,导致之后的操作无法进行
/**
* fs.close();
* Exception in thread “main” java.io.IOException: Filesystem closed
at org.apache.hadoop.hdfs.DFSClient.checkOpen(DFSClient.java:795)
at org.apache.hadoop.hdfs.DFSClient.primitiveMkdir(DFSClient.java:2743)
at org.apache.hadoop.hdfs.DFSClient.mkdirs(DFSClient.java:2724)
at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:870)
at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:866)
at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)
at org.apache.hadoop.hdfs.DistributedFileSystem.mkdirsInternal(DistributedFileSystem.java:866)
at org.apache.hadoop.hdfs.DistributedFileSystem.mkdirs(DistributedFileSystem.java:859)
at org.apache.hadoop.fs.FileSystem.mkdirs(FileSystem.java:1817)
at com.dajiangtai.hdfsJavaAPI.FileTest.mkdir(FileTest.java:33)
at com.dajiangtai.hdfsJavaAPI.FileTest.main(FileTest.java:46)

     * 
     * */
    return fs;
}




如果放到 hadoop 集群上面运行,获取文件系统可以直接使用 FileSystem.get(conf)。

2、创建文件目录

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值