cdh集群节点系统文件损坏,重装系统恢复Hdfs数据

由于意外,集群中的一个节点系统坏了,重装系统后,把该节点添加集群中,恢复hdfs数据。

思路:主要问题是把hdfs的数据恢复,由于hdfs的机制very good,只要把节点从集群中删掉,再添加进集群中,配置hdfs对应目录就好。

背景:安装的cdh5.8,使用cm界面进行管理

流程:

1.从集群中删除节点,删除的时候,勾选解除授权。


2.从主机管理中删除节点

3.走集群添加新节点流程

  • 节点上的一些对应安装配置(略过)
  • 在cm界面中添加新节点
         




新节点ok,hdfs没有任何问题,没有丢块。


在Java中,如果你需要将一个TXT文件的操作(比如读取内容并入库到HDFS)与Apache CDH(Cloudera Distribution Hadoop)集成,通常会使用Hadoop API,如Hadoop File System (HDFS) Client。以下是一个简的示例,展示如何从本地读取TXT文件并将内容写入HDFS: ```java import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; public class FileToHdfsExample { public static void main(String[] args) throws Exception { // 创建配置对象,指定HDFS的地址 Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs://<your_cluster_host>:<port>"); // 例如hdfs://localhost:9000 // 初始化FileSystem FileSystem fs = FileSystem.get(conf); // 定义源文件路径和目标HDFS路径 Path localFilePath = new Path("/path/to/local/file.txt"); Path hdfsTargetPath = new Path("/path/in/hdfs/output.txt"); // 检查目标路径是否存在,如果不存在则创建 if (!fs.exists(hdfsTargetPath)) { fs.mkdirs(hdfsTargetPath); } // 使用FSDataOutputStream写入文件 FSDataOutputStream out = fs.create(hdfsTargetPath); try (BufferedReader reader = new BufferedReader(new FileReader(localFilePath))) { String line; while ((line = reader.readLine()) != null) { out.writeBytes(line + "\n"); // 写入每行后换行 } } finally { out.close(); // 关闭流 } System.out.println("File copied to HDFS successfully."); fs.close(); // 关闭连接 } } ``` 在这个例子中,你需要替换`<your_cluster_host>`和`<port>`为实际的CDH集群的主机和端口。注意这只是一个基本示例,实际操作可能会涉及到错误处理、权限管理以及更复杂的文件处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sunyang098

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值