• 本地上传文件到hadoop的hdfs文件系统里


    引言:通过Java本地把windows里的文件资源上传到centOs环境下的 hdfs文件系统里,中间遇到了很多问题,不过最终还是把文件上传到了hdfs里了

    环境:centos-7.0,hadoop.2.8.5.gz,jdk1.8,eclipse

    1、下载hadoop.2.8.5.tar.gz和jdk1.8的linux版本安装包,上传到linux的根目录下并配置环境变量,useradd hadoop一个用户,这点就不再详细说了,自己百度一下,随便把hadoop.tar.gz解压到一目录里,比如/opt/hadoop/hadoop.2.8.5,配置好以后可以看到版本。


    2、我们进入到/opt/hadoop/hadoop.2.8.5/etc/里面又很多配置文件,我们修改hdfs.site.xml文件跟core.site.xml文件

    dfs.replication 1 dfs.namenode.rpc-bind-host 0.0.0.0 dfs.permissions false

    core.site.xml 192.168.159.134是我本机的ip,通过ip add可以进行查看,每个人都不一样。

    fs.defaultFS hdfs://192.168.159.134:9000

    3、一些常用命令:

    cd /opt/hadoop/hadoop.2.8.5/etc/ service iptables stop// 要把防火墙关掉,不然无法进行网络连接

    cd /opt/hadoop/hadoop.2.8.5/bin/ hdfs namenode -format //格式化名称节点

    cd /opt/hadoop/hadoop.2.8.5/sbin/ start-dfs.sh//重启hadoop

    cd /opt/hadoop/hadoop.2.8.5/sbin/ start-dfs.sh//stop hadoop

    hadoop fs -ls hdfs://192.168.159.134:9000/ //查看上传的文件

    hadoop fs -put /a hdfs:192.168.159.134:9000 //centos环境下本地上传文件到hdfs

    netstat -lnp//查看网络端口


    4、编写Java 代码

    package edu.jmi.hdfsclient;

    import java.io.IOException;

    import java.net.Socket;

    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FileStatus;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.Path;

    /**
    * Hello world!
    *
    */
    public class AppTest
    {
    public static void main( String[] args ) throws Exception, IOException
    {
    upload();
    }

    public static void download() throws IOException {
    Configuration conf = new Configuration();
    conf.set(“fs.defaultFS”,“hdfs://192.168.159.134:9000”);
    FileSystem fs = FileSystem.newInstance(conf);
    fs.copyToLocalFile(new Path(“/start-all.sh”),new Path(“e://”));
    }

    public static void upload() throws IOException {
    Configuration conf = new Configuration();
    conf.set(“fs.defaultFS”,“hdfs://192.168.159.134:9000”);
    FileSystem fs = FileSystem.get(conf);
    Path src=new Path(“d://my.txt”);
    Path dest=new Path(“/”);
    fs.copyFromLocalFile(src,dest);
    FileStatus[] fileStatus = fs.listStatus(dest);
    for(FileStatus file:fileStatus){
    System.out.println(file.getPath());
    }
    System.out.println(“上传成功”);
    }

    public static void test()throws Exception{
    Socket socket=new Socket(“192.168.159.134”,9000);
    System.out.println(socket);//查看网络是否相同,拒绝说明防火墙开了,外界无法访问到网络。关一下就好了
    }

    }

    5、效果图


  • 相关阅读:
    SaaSBase:什么是腾讯企点客服?
    PWA 踩坑 - 第一次加载页面后无法获取CacheStorage某些资源
    Ae 动态图形模板
    My Seventy-seventh Page - 零钱兑换 - By Nicolas
    Zebec联合Visa推出实体借记卡持续利好生态,$ZBC表现强劲
    2022年跨境电商卖家必知的黑色星期五营销策略
    Hadoop面试题+详解
    用纯HTML写一个凭证并打印
    格式工厂多个图片合并成一个PDF的报错
    焱融看 | 混合云时代下,如何制定多云策略
  • 原文地址:https://blog.csdn.net/web15286201346/article/details/126616301