云计算 上传大文件至hadoop

1 启动HDFS服务,查看HDFS的Web用户管理界面

手动创建一个大文件,并使用 HDFS Shell Command 进行操作,包括 dfsadmin(查看文件系统状态)、fsck(测试系统完
整性)和常规文件操作(ls、put、get 等);
①首次启动hdfs,需要格式化文件系统,后面不需要重复运行
在hadoop文件的bin目录下,执行 hdfs namenode -format

②到hadoop文件的sbin目录下,执行
./start-yarn.sh
./start-dfs.sh
再次输入jps出现jps、SecondaryNameNode、NameNode、DataNode则证明成功
本轮实现时并未出现DataNode,发现是配置文件出现问题,在hadoop文件下
找到hdfs-site.xml,增加对应tmp文件夹的子文件夹name和data即可
启动HDFS服务
③在本机浏览器输入localhost:50070可以实现web访问
访问HDFS的Web用户管理界面

2 手动创建一个大文件,并使用 HDFS Shell Command 进行操作

①手动创建大文件
在想要创建文件夹的路径下打开中端
输入dd if=/dev/zero of=BiggestFile bs=1M count=2049
出现对应文件加载成功并能看见对应文件即成功
创建大文件
②使用 HDFS Shell Command 进行操作
1、 hdfs dfsadmin -report
在这里插入图片描述
2、 上传大文件
hadoop fs -mkdir /B19031517
hadoop fs -ls /
hadoop fs -put /home/ubuntu-2/YunJiSuan/BiggestFile.txt /B19031517
上传
3、 测试系统完整性
hdfs fsck /B19031517/BiggestFile.txt
上传成功后可在文件系统查看到相应文件夹和文件
全部的文件夹
新创建的B19031517文件夹

3 查阅 HDFS 的应用开发文档(JAVA API),编写 Java 客户端

(放到主机IDEA进行编译)
文件进行上传/下载操作;
后面为java源码
源码:import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.Test;

/**

  • author LEMON

  • date 2022-05-12-22:08
    /
    public class test {
    /
    *

    • IP地址:端口
      /
      static String STR = “hdfs://192.168.216.130:9000/”;
      /
      *

    • 上传文件本地地址
      /
      static String UPLOAD_FILE = “D:\云计算\实验二\download.txt”;
      /
      *

    • 上传Hadoop文件系统的地址
      /
      static String DES_POS = “/B19031517”;
      /
      *

    • 从Hadoop文件系统下载文件地址
      /
      static String DOWNLOAD_FILE = “/B19031517/download.txt”;
      /
      *

    • 下载文件存放地址
      /
      static String DOWNLOAD_POS = “D:\云计算\实验二”;
      /
      *

    • 用户
      */
      static String USER = “ubuntu-2”;
      public static void main(String[] args) throws Exception {
      //上传

      //1实例化configuration
      Configuration configuration = new Configuration();
      configuration.set(“fs.hdfs.impl”,“org.apache.hadoop.hdfs.DistributedFileSystem”);
      //2.获取操作文件系统的客户端实例
      FileSystem fs = FileSystem.get(new URI(STR), configuration, USER);
      //3.执行上传操作 (src 本地资源 ,dst 上传目的地)
      fs.copyFromLocalFile(new Path(UPLOAD_FILE), new Path(DES_POS));//两次上传一样的会被覆盖
      //4.关闭链接
      fs.close();
      }

    @Test
    public void download() throws Exception{
    //下载

     Configuration configuration = new Configuration();
    
     FileSystem fs = FileSystem.get(new URI(STR), configuration, USER);
    
     fs.copyToLocalFile(false, new Path(DOWNLOAD_FILE), new Path(DOWNLOAD_POS), true);
    
     fs.close();
    

    }
    }

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值