解决hadoop使用put上传报错问题

2023-09-14 17:36:27

hadoop使用put上传报错

WARN hdfs.DataStreamer: DataStreamer Exception
org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /input/yxqzdata.COPYING could only be replicated to 0 nodes instead of minReplication (=1). There are 0 datanode(s) running and no node(s) are excluded in this operation.

image-20210525133543993

原因是多次格式化了Hadoop或者hdfs。因为id不一致。

停止集群

在hadoop的sbin目录下操作

./stop-all.sh

删除HDFS中的文件

查看Hadoop配置,hadoop安装目录下的ect下的hadoop下的core-size.xml

删除tmp文件

tmp中存储的是hdfs文件

image-20210525134042693

我的配置是将数据存储在/opt/hadoop-2.9.2/tmp下的

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:8020</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/hadoop-2.9.2/tmp</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>8192</value>
    </property>
    <property>
        <name>ha.zookeeper.quorum</name>
        <value>master:2181</value>
    </property>
</configuration>

image-20210525134116681

可以通过ub系统界面,直接删除tmp目录,也可以使用rm-f删除数据

image-20210525134248325

删除id文件

这里是个大坑,网上很多照抄的某人的,都没有提到删除找个id文件。找到hadoop的安装目录下的dfs目录下的data,其实是删除的data下的文件是hadoop更目录下的dfs下的文件,某些人抄着别人的博客,就抄成了删除从core-size.xml配置文件中的hdfs的数据data文件了。也是醉了严重误导了我这种小白,所以最好这两个data文件都删除,删除后执行下面的格式化删除后执行下面的格式化删除后执行下面的格式化

image-20210525142502476

还有一种方式

找到tmp下的data下的一个文件中断 current下的VERSION

这个tmp就是我配置文件中设置的tmp,可以看上面core-size.xml中的 hadoop.tmp.dir的配置

image-20210525143332001

然后找到hadoop安装目录下的dfs下的data下的一个VERSION

image-20210525143446572

clusterID使两个的clusterID相同,就可以解决了,可以打开对比来看看,一致就没问题了

image-20210525143518379

格式化Hadoop

我配置了全局变量的hadoop,所以可以直接输入hadoop的操作命令

 hadoop namenode -format

image-20210525134500504

启动Hadoop集群

在hadoop的sbin目录下操作

 ./start-all.sh

查看HDFS文件

查看一下hdfs更目录下有没有文件,因为删除了tmp目录,所以这里啥都没有

hadoop fs -ls /

创建目录Input

重新创建一个目录input

hadoop fs -mkdir /input
hadoop fs -ls /

image-20210525134803477

上传文件

 hadoop fs -put ~/yxqzdata /input

image-20210525143631913

更多推荐

全面了解SpringBoot拦截器

在本文中,我们将详细介绍SpringBoot中的拦截器,包括拦截器的概念、作用、实现方式、执行顺序、生命周期以及高级应用。最后,我们还将探讨拦截器的性能优化策略和常见问题。1.拦截器的概念和作用1.1什么是拦截器拦截器(Interceptor)是一种特殊的组件,它可以在请求处理的过程中对请求和响应进行拦截和处理。拦截器

前端代码规范

HTML编码规约(WC-HTML)-HTML编码规约前言本规约涉及HTML语言的编码风格、最佳实践。参与和反馈对规约有任何意见和建议,欢迎留言讨论:)1【推荐】使用2个空格缩进。统一使用2个空格缩进,不要使用4个空格或tab缩进:<!DOCTYPEhtml><html><head><title>Pagetitle</t

Rust中的结构体

专栏简介:本专栏作为Rust语言的入门级的文章,目的是为了分享关于Rust语言的编程技巧和知识。对于Rust语言,虽然历史没有C++、和python历史悠远,但是它的优点可以说是非常的多,既继承了C++运行速度,还拥有了Java的内存管理,就我个人来说,还有一个优点就是集成化的编译工具cargo,语句风格和C++极其相

rom修改----安卓系列机型如何内置app 如何选择so文件内置

系统内置app的需求在与各工作室对接中操作单中,很多需要内置客户特定的有些app到系统里,这样方便客户刷入固件后直接调用。例如内置apk去开机引导去usb调试默认开启usb安全设置等等。那么很多app内置有不同的反应。有的可以直接内置。有的需要加so才能解决我们先来看一张图片1---直接内置方法将需要的app直接放置系

应急响应LINUX&Windows

应急响应LINUX&Windowslinux文件名说明/etc/passwd用户信息文件/etc/crontab定时任务文件/etc/anacrontab异步定时任务文件/etc/rc.d/rc.local开机启动项/var/log/btmp登录失败日志,使用last命令查看/var/log/cron定时任务执行日志/

内存管理之虚拟内存

本篇遵循内存管理->地址空间->虚拟内存的顺序描述了内存管理、地址空间与虚拟内存见的递进关系,较为详细的介绍了作为在校大学生对于虚拟内存的理解。内存管理引入RAM(内存)是计算机中非常重要的资源,由于造价的昂贵,我们家用的计算机一般是8/16G。对于如此紧俏的资源我们当然需要对它好好管理,尽力做到不浪费,高效压榨它的每

助力工业物联网,工业大数据之服务域:Shell调度测试【三十三】

文章目录知识点07:Shell调度测试知识点08:依赖调度测试知识点09:Python调度测试知识点10:Oracle与MySQL调度方法知识点11:大数据组件调度方法知识点07:Shell调度测试目标:实现Shell命令的调度测试实施需求:使用BashOperator调度执行一条Linux命令代码创建#默认的Airf

TorchLens--可视化任何PyTorch模型

0.简介PyTorch是一个深度学习框架,它使用张量(tensor)作为核心数据结构。在可视化PyTorch模型时,了解每个张量运算的意义非常重要。张量运算作为神经网络模型中的基本操作。它们用于处理输入数据、执行权重更新和生成预测结果。同时张量运算还用于计算损失函数。损失函数衡量了模型预测与真实标签之间的差异。通过使用

docker network

一、默认的三种网络模式:Bridge模式:这是Docker默认创建的网络模式。在Bridge模式下,Docker会为每个容器创建一个虚拟网络接口,并分配独立的IP地址。容器之间可以相互通信,而且可以通过端口映射让容器内部的服务可以通过主机的IP地址和端口进行访问。Host模式:在Host模式下,容器与主机共享同一个网络

代码随想录算法训练营第46天| 单词拆分,背包问题总结

139.单词拆分给你一个字符串s和一个字符串列表wordDict作为字典。请你判断是否可以利用字典中出现的单词拼接出s。注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。示例1:输入:s=“leetcode”,wordDict=[“leet”,“code”]输出:true解释:返回true因为“le

内网隧道代理技术(二十七)之 DNS隧道介绍

DNS隧道介绍DNS协议介绍域名系统(DomainNameSystem,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。DNS协议是用来将域名转

热文推荐