执行hadoop任务遇到的问题:

Caused by: org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /user/hive/warehouse/rec_new2.db/user_session/.hive-staging_hive_2017-12-10_08-22-41_311_4339813855157373054-1/-ext-10000/_temporary/0/_temporary/attempt_20171210082241_0000_m_000000_3/appid=10017/dt=2017-12-09/part-00000 could only be replicated to 0 nodes instead of minReplication (=1).  There are 3 datanode(s) running and no node(s) are excluded in this operation

当时遇到无论是hive向hadoop写入数据还是spark、storm写入数据都报以上错误:

一开始网上各种找,冷静下仔细看hadoop运行日志信息,

日志查看:

$HADOOP_HOME/logs

通过在master节点查看,tail –f hadoop-root-namenode-hadoop-master.log  监听namenode运行日志信息,发现问题所在:

原来在hadoop配置文件中,预留磁盘大小为20G,通过df -hl 命令查看磁盘空间大小,发现hadoop-slave3 磁盘空间只剩17G,导致数据无法插入;

解决方案:增大磁盘空间或删除较大文件,达到配置预留磁盘空间即可;

由于spark配置的是standalone模式,导致每执行一个spark任务,运行日志中都会有一个运行任务所需jar包;累积下来占用磁盘空间;可定期删除,也可以配置spark-env.sh 每执行完后直接删除运行日志信息及jar包;

spark运行任务查看运行日志信息及jar包所在位置:$SPARK_HOME/work

运行完直接删除运行日志信息及jar包,在spark-env.sh中加入如下内容:

SPARK_WORKER_OPTS=”-Dspark.worker.cleanup.enabled=true”

注意官方文档中说不管程序是否已经停止,都会删除文件夹,这是不准确的,只有停止掉的程序文件夹才会被删除

附:

Hdfs-site.xml:

可以通过配置,修改配置只需停掉集群重启即可:

$HADOOP_HOME/conf/hdfs-site.xml 文件里的 dfs.datanode.du.reserved 属性来配置HDFS预留磁盘的空间大小,从而限制 data node 的磁盘使用量(单位是字节数),如以下配置会给磁盘预留20GB的空间:

<property>

<name>dfs.datanode.du.reserved</name>

<!-- reserved space in bytes -->

<value>21474836480</value>

<description>Reserved space in bytes per volume. Always leave this much space free for non dfs use.

</description>

</property>

hadoop日常维护之问题解决01的更多相关文章

  1. Hadoop日常维护系列——Hadoop添加删除节点

    添加节点 1.修改host    和普通的datanode一样.添加namenode的ip 2.修改namenode的配置文件conf/slaves    添加新增节点的ip或host 3.在新节点的 ...

  2. MS SQL 日常维护管理常用脚本(二)

    监控数据库运行 下面是整理.收集监控数据库运行的一些常用脚本,也是MS SQL 日常维护管理常用脚本(一)的续集,欢迎大家补充.提意见. 查看数据库登录名信息   Code Snippet SELEC ...

  3. Nginx日常维护操作(3)

    一.简明nginx常用命令 1. 启动 Nginx /sbin/nginx   service nginx start   2. 停止 Nginx /sbin/nginx -s stop   /sbi ...

  4. SQL Server 日常维护经典应用

    SQL Server日常维护常用的一些脚本整理. 1.sql server开启clr权限: GO RECONFIGURE GO ALTER DATABASE HWMESTC SET TRUSTWORT ...

  5. SaltStack日常维护-第七篇

    练习内容 远程执行其他模块 官方模块有很多超过300+ 1.cmd.run 2.network 3.service 4.state 5.其它日常维护 演示 cmd.run模块 可以执行系统命令,超级模 ...

  6. oracle 容灾库日常维护 ,健康检查脚本 以及常见问题分析

    select DEST_ID, APPLIED_SCN FROM v$archive_dest select * from v$dataguard_status; SELECT gvi.thread# ...

  7. MapReduce On Yarn的配置详解和日常维护

    MapReduce On Yarn的配置详解和日常维护 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MapReduce运维概述 MapReduce on YARN的运维主要是 ...

  8. MC-BE基岩版服务器搭建与日常维护

    有部分内容被csdn和谐,强烈建议移步我的个人博客以获得更好的排版和阅读体验: xzajyjs.cn. 目录 环境搭建 开始部署 日常维护 服务器的白名单机制 定时备份 服务器升级 服务器模组安装 搭 ...

  9. ORACLE分区表梳理系列(二)- 分区表日常维护及注意事项(红字需要留意)

    版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...

随机推荐

  1. PS制作gif动图以及背景透明与消除残影

    摘要: 用Photoshop制作gif动画的要点:在窗口菜单中找到“时间轴”选中打开时间轴,单击一帧,设置该帧显示持续时间在图层里将该帧要显示的图层显示,并将不该显示的层隐藏,新建一帧,接下来就是重复 ...

  2. 签署您的应用--手动签署 APK

    签署您的应用 本文内容 证书和密钥库 签署您的调试构建 调试证书的有效期 管理您的密钥 使用 Google Play 应用签名 自行管理您的密钥和密钥库 签署 APK 生成密钥和密钥库 手动签署 AP ...

  3. python匿名函数 高阶函数 内置函数 文件操作

    1.匿名函数 匿名就是没有名字 def func(x,y,z=1): return x+y+z 匿名 lambda x,y,z=1:x+y+z #与函数有相同的作用域,但是匿名意味着引用计数为0,使用 ...

  4. python queue和生产者和消费者模型

    queue队列 当必须安全地在多个线程之间交换信息时,队列在线程编程中特别有用. class queue.Queue(maxsize=0) #先入先出 class queue.LifoQueue(ma ...

  5. Enum,Int,String的互相转换

    Enum为枚举提供基类,其基础类型可以是除 Char 外的任何整型.如果没有显式声明基础类型,则使用Int32.编程语言通常提供语法来声明由一组已命名的常数和它们的值组成的枚举. 注意:枚举类型的基类 ...

  6. vue-cli的webpack模板项目配置文件说明

    如果没有vue-cli,那么进行vue项目的开发环境配置将是很费力的一件事情,现在脚手架可以快速构建一个开发环境,是很不错的.不过对于脚手架构建的配置,还是要大概了解一下,方便自己调试配置. 初始化一 ...

  7. CRM总结

    一.CRM初始 CRM,客户关系管理系统(Customer Relationship Management).企业用CRM技术来管理与客户之间的关系,以求提升企业成功的管理方式,其目的是协助企业管理销 ...

  8. "字符串"经过strip 之后还是字符串, 而"字符串"经过split 分开后,就变成了一个列表["x","xx","xxx"]

    "字符串"经过strip 之后还是字符串, 而"字符串"经过split 分开后,就变成了一个列表["x","xx",&q ...

  9. 第一篇,编译生成libcef_dll_wrapper

    因为工作原因需要在程序里面嵌入地图,在网上看了百度地图和高德地图都没有提供c++的接口,提供有web接口,那只好在程序里面嵌入web控件了,第一想到的是web browser控件,接着脑海里又想到IE ...

  10. 【问题定位】tcpdump 抓包简易命令

    tcpdump -A -i lo port 2003 or port 2103 or port 2203 | grep '.*system.*'