首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >copyToLocalFile报错:(null) entry in command string: null chmod 0644

copyToLocalFile报错:(null) entry in command string: null chmod 0644

作者头像
程裕强
发布于 2022-05-06 12:49:21
发布于 2022-05-06 12:49:21
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

1、测试程序,从HDFS上下载文件到本地

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.cntaiping.tpa.storage;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.io.IOException;
import java.net.URI;
public class GetFileDemo {

    public static void main(String[] args) throws IOException{
        String hdfsPath="hdfs://192.168.1.180:8020/a/b.txt";
        String localPath="D:/copy.txt";
        Configuration conf = new Configuration();
        FileSystem fs = FileSystem.get(URI.create(hdfsPath), conf);
        Path hdfs_path = new Path(hdfsPath);
        Path local_path = new Path(localPath);
        fs.copyToLocalFile(hdfs_path, local_path);
        fs.close();

    }

}

2、报错

(null) entry in command string: null chmod 0644

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
log4j:WARN No appenders could be found for logger (org.apache.hadoop.util.Shell).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" java.io.IOException: (null) entry in command string: null chmod 0644 D:\copy.txt
    at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:770)
    at org.apache.hadoop.util.Shell.execCommand(Shell.java:866)
    at org.apache.hadoop.util.Shell.execCommand(Shell.java:849)
    at org.apache.hadoop.fs.RawLocalFileSystem.setPermission(RawLocalFileSystem.java:733)
    at org.apache.hadoop.fs.RawLocalFileSystem$LocalFSFileOutputStream.<init>(RawLocalFileSystem.java:225)
    at org.apache.hadoop.fs.RawLocalFileSystem$LocalFSFileOutputStream.<init>(RawLocalFileSystem.java:209)
    at org.apache.hadoop.fs.RawLocalFileSystem.createOutputStreamWithMode(RawLocalFileSystem.java:307)
    at org.apache.hadoop.fs.RawLocalFileSystem.create(RawLocalFileSystem.java:296)
    at org.apache.hadoop.fs.RawLocalFileSystem.create(RawLocalFileSystem.java:328)
    at org.apache.hadoop.fs.ChecksumFileSystem$ChecksumFSOutputSummer.<init>(ChecksumFileSystem.java:398)
    at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:461)
    at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:440)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:911)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:892)
    at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:789)
    at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:365)
    at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:338)
    at org.apache.hadoop.fs.FileUtil.copy(FileUtil.java:289)
    at org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:2034)
    at org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:2003)
    at org.apache.hadoop.fs.FileSystem.copyToLocalFile(FileSystem.java:1979)
    at com.cntaiping.tpa.storage.GetFileDemo.main(GetFileDemo.java:16)

3、解决办法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
        fs.copyToLocalFile(false,hdfs_path, local_path,true);

说明: 第一个false参数表示不删除源文件,第4个true参数表示使用本地原文件系统,因为这个Demo程序是在Windows系统下运行的。

4、原因分析

查看官方API http://hadoop.apache.org/docs/r2.7.6/api/

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public void copyToLocalFile(boolean delSrc,
                            Path src,
                            Path dst,
                            boolean useRawLocalFileSystem)
                     throws IOException
The src file is under FS, and the dst is on the local disk. Copy it from FS control to the local dst name. delSrc indicates if the src will be removed or not. useRawLocalFileSystem indicates whether to use RawLocalFileSystem as local file system or not. RawLocalFileSystem is non crc file system.So, It will not create any crc files at local.
Parameters:
delSrc - whether to delete the src
src - path
dst - path
useRawLocalFileSystem - whether to use RawLocalFileSystem as local file system or not.
Throws:
IOException - - if any IO error
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-08-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Spring Boot实现带STOMP的WebSocket
WebSocket协议是应用程序处理实时消息的方法之一。最常见的替代方案是长轮询(long polling)和服务器推送事件(server-sent events)。这些解决方案中的每个都有其优缺点。在本文中,我将向您展示如何使用 SpringBoot实现 WebSocket。我将介绍服务器端和客户端设置,使用 WebSocket协议之上的 STOMP进行相互通信。
乱敲代码
2019/06/26
5.9K0
Springboot整合Websocket实现一对一消息推送和广播消息推送
同时因为控制器有注解@SendTo所以会向@SendTo的地址广播消息,客户端订阅了广播地址所有控制台显示接收了消息
业余草
2020/06/23
2.1K0
Springboot整合Websocket实现一对一消息推送和广播消息推送
SpringBoot 实战 (十六) | 整合 WebSocket 基于 STOMP 协议实现广播消息
如题,今天介绍的是 SpringBoot 整合 WebSocket 实现广播消息。
JavaFish
2019/10/17
4.1K0
SpringBoot 实战 (十六) | 整合 WebSocket 基于 STOMP 协议实现广播消息
在Spring Boot框架下使用WebSocket实现消息推送
按:最近公众号文章主要是整理一些老文章,以个人CSDN上的博客为主,也会穿插一些新的技术点。 ---- Spring Boot的学习持续进行中。前面两篇博客我们介绍了如何使用Spring Boot容器搭建Web项目(使用Spring Boot开发Web项目/http://blog.csdn.net/u012702547/article/details/53784992)以及怎样为我们的Project添加HTTPS的支持(使用Spring Boot开发Web项目(二)之添加HTTPS支持/http://blo
江南一点雨
2018/04/02
3.2K0
在Spring Boot框架下使用WebSocket实现消息推送
使用消息队列轻松实现 分布式 webSocket
简单的概括一下:如果我们的项目是分布式环境,登录的用户被Nginx的反向代理分配到多个不同服务器,那么在其中一个服务器建立了WebSocket连接的用户如何给在另外一个服务器上建立了WebSocket连接的用户发送消息呢?
码猿技术专栏
2023/09/07
7200
使用消息队列轻松实现 分布式 webSocket
手把手搭建WebSocket多人在线聊天室
https://www.callicoder.com/spring-boot-websocket-chat-example/
Java3y
2019/08/27
4.8K1
手把手搭建WebSocket多人在线聊天室
Spring Boot + WebSocket 实现 IM 即时通讯
即时通讯(IM)已经成为现代应用中不可或缺的一部分,从社交媒体到企业协作工具,无不依赖于IM技术来实现实时消息传递。本文将介绍如何使用Spring Boot和WebSocket实现一个简单的即时通讯系统。
IT_陈寒
2025/06/01
2430
Spring Boot + WebSocket 实现 IM 即时通讯
使用消息队列实现 分布式 webSocket
陈某的《Spring Cloud Alibaba实战项目》 视频教程已经录完了,涉及到Alibaba的各种中间件、OAuth2微服务认证鉴权、全链路灰度发布、分布式事务实战,戳这里--->Spring Cloud Alibaba 实战 视频专栏 开放订阅~
码猿技术专栏
2023/05/01
1.5K0
使用消息队列实现 分布式 webSocket
实现一个基于 Spring Boot 和 Vue.js 的实时消息推送系统
在现代互联网应用中,实时消息推送已经成为一个非常重要的功能。不论是即时通讯、通知系统,还是其他需要实时互动的应用场景,消息的实时性直接影响到用户的体验和应用的效率。在这篇文章中,我将详细介绍如何使用 Spring Boot 和 Vue.js 创建一个实时消息推送系统,并确保每个用户只能接收属于自己的消息。这个系统不仅功能强大,而且实现起来并不复杂。
繁依Fanyi
2024/07/25
1K0
spring boot集成WebSocket实时输出日志到web页面
前言碎语 今天来做个有趣的东西,就是实时将系统日志输出的前端web页面,因为是实时输出,所有第一时间就想到了使用webSocket,而且在spring boot中,使用websocket超级方便,阅读本文,你会接触到以下关键词相关技术,WebSocket(stopmp服务端),stomp协议,sockjs.min.js,stomp.min.js(stomp客户端),本文使用到的其实就是使用spring boot自带的webSocket模块提供stomp的服务端,前端使用stomp.min.js做stomp的客户端,使用sockjs来链接,前端订阅后端日志端点的消息,后端实时推送,达到日志实时输出到web页面的目的,效果如下图
kl博主
2018/04/13
3.7K0
spring boot集成WebSocket实时输出日志到web页面
spring ws stomp接口式编程
在项目开发中,使用Websocket订阅可以实现实时推送数据更新和变化。但是,这也存在一些痛点。首先,Websocket订阅需要对订阅对象进行管理,确保订阅的准确性和及时性。其次,订阅的消息需要经过充分过滤和处理,以避免无效消息和重复消息的出现。同时,在高并发的情况下,Websocket订阅也需要进行限流和队列管理,以保证系统的稳定性和可靠性。除此之外,Websocket订阅还需要支持多种协议和格式,以适应不同类型的数据推送和处理场景。因此,在项目中使用Websocket订阅,需要充分考虑这些问题,确保系统的稳定性、可靠性和及时性。
查拉图斯特拉说
2023/10/25
4250
springboot整合websocket实现消息推送
maven依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" x
似水的流年
2018/06/20
2.6K1
[WebSocket入门]手把手搭建WebSocket多人在线聊天室(SpringBoot+WebSocket)
https://www.callicoder.com/spring-boot-websocket-chat-example/
Rude3Knife的公众号
2019/08/16
3K0
[WebSocket入门]手把手搭建WebSocket多人在线聊天室(SpringBoot+WebSocket)
基于spring boot 2.x的websocket示例
spring boot 2/spring 5自带了websocket,下面是最基本的示例(包括java服务端、java客户端以及js客户端)
菩提树下的杨过
2018/10/10
2K0
基于spring boot 2.x的websocket示例
Spring国际认证指南:使用 WebSocket 构建交互式 Web 应用程序
本指南将引导您完成创建“Hello, world”应用程序的过程,该应用程序在浏览器和服务器之间来回发送消息。WebSocket 是 TCP 之上的一个轻量级的薄层。这使得它适合使用“子协议”来嵌入消息。在本指南中,我们使用带有 Spring 的STOMP消息传递来创建交互式 Web 应用程序。STOMP 是在较低级别的 WebSocket 之上运行的子协议。
IT胶囊
2022/04/08
2.1K0
Spring Websocket 中文文档 (spring5)
这部分参考文档包括对Servlet堆栈的支持,包括原始WebSocket交互的WebSocket消息传递,通过SockJS的WebSocket仿真,以及通过STOMP作为WebSocket上的子协议的pub-sub消息传递。
gemron的空间
2019/11/04
13.1K1
spring boot集成WebSocket实时输出日志到web页面
前言碎语 今天来做个有趣的东西,就是实时将系统日志输出的前端web页面,因为是实时输出,所有第一时间就想到了使用webSocket,而且在spring boot中,使用websocket超级方便,阅读本文,你会接触到以下关键词相关技术,WebSocket(stopmp服务端),stomp协议,sockjs.min.js,stomp.min.js(stomp客户端),本文使用到的其实就是使用spring boot自带的webSocket模块提供stomp的服务端,前端使用stomp.min.js做stomp的客户端,使用sockjs来链接,前端订阅后端日志端点的消息,后端实时推送,达到日志实时输出到web页面的目的,效果如下图
kl博主
2023/11/18
1.3K0
spring boot集成WebSocket实时输出日志到web页面
补习系列(20)-大话WebSocket与"尬聊"的实现
这些场景,都需要 服务器能主动实时的给浏览器或客户端推送消息,注意关键词是主动,还有实时!而在HTML5一统江湖之前,由于HTTP在推送场景下的"薄弱",我们需要借助一些复杂或者非标准的手段来实现。
美码师
2019/05/10
8780
补习系列(20)-大话WebSocket与"尬聊"的实现
学习WebSocket
这些场景,都需要 服务器能主动实时的给浏览器或客户端推送消息,注意关键词是主动,还有实时!而在HTML5一统江湖之前,由于HTTP在推送场景下的"薄弱",我们需要借助一些复杂或者非标准的手段来实现。
Java3y
2019/11/21
1.4K0
代码审计| Spring框架实例篇
Java代码审计Spring框架思路篇中,斗哥为大家讲述了如何得到Spring审计的Demo,审计源码,根据IDEA与Spring框架审计思路初步判定是否存在漏洞。
漏斗社区
2018/08/20
1.3K0
代码审计| Spring框架实例篇
推荐阅读
相关推荐
Spring Boot实现带STOMP的WebSocket
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档