我正在遵循教程,在单个集群测试环境中运行时,我突然无法运行任何 MR 作业或将数据写入 HDFS。它以前工作得很好,突然间我总是遇到以下错误(重新启动没有帮助)。
我可以从 HDFS 读取和删除文件,但不能写入。
$ hdfs dfs -put war-and-peace.txt /user/hands-on/
19/03/25 18:28:29 WARN hdfs.DataStreamer: Exception for BP-1098838250-127.0.0.1-1516469292616:blk_1073742374_1550
java.io.EOFException: Unexpected EOF while trying to read response from server
at org.apache.hadoop.hdfs.protocolPB.PBHelperClient.vintPrefixed(PBHelperClient.java:399)
at org.apache.hadoop.hdfs.protocol.datatransfer.PipelineAck.readFields(PipelineAck.java:213)
at org.apache.hadoop.hdfs.DataStreamer$ResponseProcessor.run(DataStreamer.java:1020)
put: All datanodes [DatanodeInfoWithStorage[127.0.0.1:50010,DS-b90326de-a499-4a43-a66a-cc3da83ea966,DISK]] are bad. Aborting...
Run Code Online (Sandbox Code Playgroud)
“hdfs dfsadmin -report”显示一切都很好,有足够的磁盘空间。我几乎没有运行任何工作,只有一些测试 MR 和很少的测试数据。
$ hdfs dfsadmin -report
Configured Capacity: 52710469632 (49.09 GB)
Present Capacity: 43335585007 (40.36 GB)
DFS Remaining: 43334025216 (40.36 GB)
DFS Used: 1559791 (1.49 MB)
DFS Used%: 0.00%
Under replicated blocks: 0
Blocks …Run Code Online (Sandbox Code Playgroud) 在 Kubernetes 上备份 Postgres 的最佳方法是什么?
我的第一个猜测是创建一个支持复制的主从架构。进行初始 pg_basebackup,然后获取 WAL 日志。一个月一次,我会用 cron 安排另一个 pg_basebackup,但是容器化环境不喜欢 cron 守护进程(没有可用的 systemd)。如何安排基础备份?
我想对 Openshift 中部署的 postgres 数据库进行简单备份。运行 cron 作业的最佳实践是什么?由于 systemd 在容器上不可用并且只能通过黑客启用,所以我宁愿使用“更干净”的方法。除了 cronie 或 systemd 计时器单元之外,还有哪些选择?似乎可以在早期的Openshift 版本中启用 cron,但是 Openshift v4.x 不再支持此功能,并且文档仅提到 Kubernetes Cron Jobs 对象。