精华内容
下载资源
问答
  • 本地文件上传到HDFS......................... String localsrc="/home/hadoop/origin/test0"; String hdfsdst="hdfs://master:9000/user/input0/test0"; uploadLocalFile2HDFS(localsrc,hdfsdst); } } //.............

    这是我的代码和在网上看到的差不多//..................................................................importjava.io.IOException;importorg.apache.hadoop.conf.Configuration;i...

    这是我的代码 和在网上看到的差不多

    //..................................................................

    import java.io.IOException;

    import org.apache.hadoop.conf.Configuration;

    import org.apache.hadoop.fs.FileSystem;

    import org.apache.hadoop.fs.Path;

    public class File_Operation {

    /*

    * upload the local file to the hds

    * notice that the path is full like /tmp/test.c

    */

    public static void uploadLocalFile2HDFS(String s, String d)

    throws IOException

    {

    Configuration config = new Configuration();

    FileSystem hdfs = FileSystem.get(config);

    Path src = new Path(s);

    Path dst = new Path(d);

    hdfs.copyFromLocalFile(src, dst);

    hdfs.close();

    }

    public static void main(String[] args) throws Exception {

    //.....................本地文件上传到HDFS.........................

    String localsrc="/home/hadoop/origin/test0";

    String hdfsdst="hdfs://master:9000/user/input0/test0";

    uploadLocalFile2HDFS(localsrc,hdfsdst);

    }

    }

    //....................................................................

    编译时报错:

    Exception in thread "main" java.lang.IllegalArgumentException: Wrong FS: hdfs://master:9000/user/input0/test0, expected: file:///

    at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:310)

    at org.apache.hadoop.fs.RawLocalFileSystem.pathToFile(RawLocalFileSystem.java:47)

    at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:357)

    at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:245)

    at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:648)

    at org.apache.hadoop.fs.FileUtil.checkDest(FileUtil.java:334)

    at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:190)

    at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:142)

    at org.apache.hadoop.fs.LocalFileSystem.copyFromLocalFile(LocalFileSystem.java:55)

    at org.apache.hadoop.fs.FileSystem.copyFromLocalFile(FileSystem.java:1137)

    at File_Operation.uploadLocalFile2HDFS(File_Operation.java:25)

    at File_Operation.main(File_Operation.java:37)

    如果我把HDFS中的目标文件的路径改成

    String hdfsdst="/user/input0/test0";

    又报这样的错误:

    Exception in thread "main" java.io.IOException: Mkdirs failed to create /user/input0

    at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:366)

    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:484)

    .....

    很奇怪 不知道为什么

    展开

    展开全文
  • 本地上传文件到HDFS目录 hdfs dfs -put 本地目录 hdfs目录

    从本地上传文件到HDFS目录

    hdfs dfs -put 本地目录 hdfs目录
    
    展开全文
  • 一、场景描述比如我们的网站共有5台Web设备,日志文件存放在/data/logs/日期(20180114)/access.log。日志为默认的Nginx定义格式,如下所示:10.2.2.234 - - [12/Jan/2018:08:36:23 +0800] "POST /statistics/count/...

    一、场景描述

    比如我们的网站共有5台Web设备,日志文件存放在/data/logs/日期(20180114)/access.log。日志为默认的Nginx定义格式,如下所示:

    10.2.2.234 - - [12/Jan/2018:08:36:23 +0800] "POST /statistics/count/collection?company=6F79078F79D77550739EF61CD0DC2A83&nonce_str=nbmmn8bds4j84spu0c50ed0tm2ihfk3e&timeStamp=1515717383974&sign=91803CDB91BD598F29643F899E529D4A&client=ios&server=statistics HTTP/1.1" 200 287 "-" "CareHeart/2.2.7 (iPhone; iOS 10.3.1; Scale/2.00)"共有12列数据(空格分隔)分别为:

    1)客户端IP

    2)空白(远程登录名称)

    3)空白(认证的远程用户)

    4)请求时间

    5)UTF时差

    6)方法

    7)资源(访问的路径)

    8)协议

    9)状态码

    10)发送的字节数

    11)访问来源

    12)客户端信息(不具体拆分)

    二、编写部署HDFS的客户端

    这里,我们新建脚本文件hdfsput.py,具体通过subprocess.Popen()方法调用HDFS相关外部命令,实现创建HDFS目录及客户端文件上传,具体代码如下:

    【/usr/local/python/source/hdfsput.py】

    # -*- coding:UTF-8 -*-

    '''

    Created on 2018年1月14日

    @author: liuyazhuang

    '''

    import subprocess

    import sys

    import datetime

    webid = "web1" #HDFS存储日志的标志,其他Web服务器分别为web2、web3、web4、web5

    currdate = datetime.datetime.now().strftime('%Y%m%d')

    #日志本地存储路径

    logspath = "/data/logs/" + currdate + "/access.log"

    #HDFS存储日志名

    logname = "access.log." + webid

    try:

    #创建HDFS目录,格式为website.com/20180114

    subprocess.Popen(["/usr/local/hadoop-2.5.2/bin/hadoop", "fs", "-mkdir", "hdfs://liuyazhuang121:9000/user/root/website.com/" + currdate], stdout = subprocess.PIPE)

    except Exception,e:

    pass

    #上传本地日志到HDFS

    putinfo = subprocess.Popen(["/usr/local/hadoop-2.5.2/bin/hadoop", "fs", "-put", logspath, "hdfs://liuyazhuang121:9000/user/root/website.com/" + currdate+ "/" + logname], stdout = subprocess.PIPE)

    for line in putinfo.stdout:

    print line

    三、部署HDFS的客户端

    我们需要在5台Web服务器部署HDFS的客户端,以便定期上传Web日志到HDFS存储平台,最终实现分布式计算。需要安装JDK(配置环境变量)、Hadoop(配置环境变量)。然后添加上传日志的功能到crontab,内容如下:

    55 23 * * * /usr/bin/python /usr/local/python/source/hdfsput.py >> /dev/null 2>&1截止目前,数据的分析源已经准备就绪,接下来的工作便是分析了。

    展开全文
  • 本地上传文件到hdfs

    2021-09-08 17:12:15
    本地上传文件到hdfs 使用javaApi上传文件 本地上传文件到hdfs 使用javaApi上传文件 import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs....

    本地上传文件到hdfs

    1. 使用javaApi上传文件

    本地上传文件到hdfs
    使用javaApi上传文件
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.fs.FileSystem;
    import org.apache.hadoop.fs.Path;
    
    public class PutHdfsFile {
        public static void main(String[] args) throws Exception {
    
            Configuration conf = new Configuration();
            //本地文件
            String localDir = "D:/11.txt";
            //hdfs目标目录
            String hdfsDir = "hdfs://cluster/test";
            try {
                Path localPath = new Path(localDir);
                Path hdfsPath = new Path(hdfsDir);
                FileSystem hdfs = FileSystem.get(conf);
                if (!hdfs.exists(hdfsPath)) {
                    hdfs.mkdirs(hdfsPath);
                    System.out.println("hdfs目录创建");
                }
                System.out.println("本地文件开始上传....");
                long start = System.currentTimeMillis();
                hdfs.copyFromLocalFile(localPath, hdfsPath);
                System.out.println("本地文件已上传成功,耗时:" + (System.currentTimeMillis() - start));
    
            } catch (Exception e) {
                e.printStackTrace();
                System.out.println(e.getMessage());
            }
        }
    
    
    }
    
    
    1.将core-site.xml,hdfs-site.xml放到resources目录下
    
    2.更改本地文件目录即可上传。
    

    使用远程工具上传文件到hdfs

    https://blog.csdn.net/thethefighter/article/details/106864009

    展开全文
  • 本地文件上传到HDFS

    2021-06-30 20:59:01
    需求:按照配置文件的内容解析要上传文件的路径,HDFS的目标路径,文件格式匹配 具体代码实现 hdfsETL.json文件 { "hdfsProjectList":[ { "projectName":"data_collection", "localSrcPath":"E:/hadoop/...
  • 记录如何将本地文件上传HDFS中前提是已经启动了hadoop成功(nodedate都成功启动)①先切换到HDFS用户②创建一个input文件夹zhangsf@hadoop1:~$ hdfs dfs -mkdir /input查看创建的文件夹在 hadoop1:50070中查看(我...
  • } } } 工程打成jar包后,执行以下命令即可: hadoop jar hadoopExample-1.0-SNAPSHOT.jar com.jason.hadoop.example.PutMerge /home/jason/hadoop-1.0.1/put_merge hdfs://localhost:9000 /example/put_...
  • 这里使用的是CDH 5.13.0分布式系统在网上搜集了很久,找到一套能上传文件的java代码package com.data.sysatem.crawler;import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;...
  • 首先在网上找了好久没有找到从本地文件系统上传整个目录到hdfs文件系统的程序,权威指南上也没有,都是单个文件上传,所以这里自己编写了一个程序,封装成jar包执行能够复制。先说明一下代码:须要手动输入两个路径...
  • 一、什么是HDFS文件系统 文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。即:为用户建立文件、存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时...
  • 当使用 hadoop fs -put localfile /user/xxx 时提示:put: Permission denied: user=root, access=WRITE, inode="/user/shijin":hdfs:supergroup:...一个是本地文件系统中localfile 文件的权限,一个是HDFS上 /user...
  • 记录如何将本地文件上传HDFS中前提是已经启动了hadoop成功(nodedate都成功启动)①先切换到HDFS用户②创建一个input文件夹zhangsf@hadoop1:~$ hdfs dfs -mkdir /input查看创建的文件夹在 hadoop1:50070中查看(我...
  • 2.将本地的test.csv文件上传hdfs文件系统中 方法一:-put命令,其中/user/tmp/为hdfs中的路径 hdfs dfs -put test.csv /user/tmp/ 方法二:-moveFromLocal命令 hdfs dfs -moveFromLocal test.csv /user/tmp/ .....
  • 代码:import pyhdfsclient = pyhdfs.HdfsClient(':')可以 listclient.listdir('/')['apps','benchmarks','data','gj_data','hbase','system','test','tmp','user']不能把文件到本地client.copy_from_local(dest='/...
  • public class PutMergeCompression { //本地多压缩文件上传hdfs public static void putMergeFunc(String LocalDir, String fsFile) throws IOException { Configuration conf = new Configuration(); ...
  • HDFS文件上传下载步骤

    2020-12-23 17:52:14
    先来了解下分布式文件系统(Distributed FileSystem),它是跨越多台...1.当客户端要向HDFS文件系统上传文件时,第一步通过分布式文件系统先与NameNode建立连接,上传自己的元数据。(a)通过调用客户端的对象Distribute...
  • FS Shell调用文件系统(FS)Shell命令应使用bin/hadoop...对HDFS文件系统,scheme是hdfs,对本地文件系统,scheme是file。其中scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme。一个H...
  • HDFS文件查改增删及上传下载

    千次阅读 2020-12-18 16:27:08
    1. linux中的文件上传到HDFS个人目录中 # 前面为本地文件路径,后面为HDFS中文件路径 hadoop fs -put /data/zz/aa.txt /user/zz/ 或 hdfs dfs -put /data/zz/aa.txt /user/zz/ # 上传文件夹 hadoop fs -put /...
  • 本地文件到HDFS

    2021-03-16 10:46:17
    以下代码实现将本地文件到HDFS集群中package com.njupt.hadoop;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;public class CopyToHDFS...
  • 在Hadoop中用作文件操作的主类位于org.apache.hadoop....Hadoop文件API的起点是FileSystem类,这是一个与文件系统交互的抽象类,存在不同的具体实现子类来处理HDFS本地文件系统,可以通过调用factory方法FileSyst...
  • 将csv文件上传到hdfs集群详细步骤 xshell连接数据库 将scv文件上传到服务器:rz 回车; 从本地选择需要上传的csv文件,如下图,一起瞅瞅吧! 将刚刚上传服务器的文件,放到hdfs集群(hive目录下):hdfs ...
  • {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":6,"count":6}]},"card":[{"des":"云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT ...
  • 在做Hadoop数据挖掘项目的时候,我们第一步是源数据的获取,即相应的数据放置到HDFS中,以便Hadoop进行计算,手动将文件上传到HDFS中,未免太费时费力,所以我们可以采取像Flume一样的框架,或者采用Shell脚本进行...
  • 1.实时读取本地文件到HDFS案例 需求分析 实现步骤 1.Flume要想将数据输出到HDFS,必须持有Hadoop相关jar包 将commons-configuration-1.6.jar、 hadoop-auth-2.7.2.jar、 hadoop-common-2.7.2.jar、 ...
  • HDFS上传文件,如果是从某个datanode开始上传文件,会导致上传的数据优先写满当前datanode的磁盘,这对于运行分布式程序是非常不利的。解决的办法:1、从其他非datanode节点上传可以将Hadoop的安装目录复制一份...
  • 019-07-01 16:45:24,933 INFO org.apache.hadoop.ipc.Server: IPC Server handler 2 on 8020, call org.apache.hadoop.hdfs.protocol.ClientProtocol.addBlock from 58.211.111.42:63048 Call#3 Retry#0java.io.IOEx...
  • 1.1 新建表,并将本地csv文件上传到该表中(Linux命令行模式下) 准备本地文件,一般都是csv文件。 1、注意记下该文件的分隔符; 2、记下该文件字段名称和字段类型,以及字段顺序!!; 3、注意该文件是否有表头,...
  • hive -e将集群的数据拉取到本地,所 存储的格式是服务器默认存储的格式,这种格式存在的问题是:如果在将文件导入另外一台集群时,如果创建表的分割符与机器的默认分割不一致,就会导致列分割失败,所有的列会写入...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 41,749
精华内容 16,699
关键字:

把本地文件上传到hdfs