hadoop的namenode起不来,Directory /tmp/hadoop-hadoop/dfs/name is in an inconsistent state

Hadoop启动问题及解决方案
本文解决了Hadoop在系统重启后无法启动的问题,通过修改配置文件中的hadoop.tmp.dir路径来确保目录在每次重启时不会被删除。同时,提供了解决步骤和详细解释,帮助用户避免遇到类似问题。

hadoop第一次起启动时没有问题,但机子重启之后就会出现

irectory /tmp/hadoop-hadoop/dfs/name does not exist. 2013-02-02 16:49:29,297 ERROR org.apache.hadoop.hdfs.server.namenode.FSNamesystem: FSNamesystem initialization failed. org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /tmp/hadoop-hadoop/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible. at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:303) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:100) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:388) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.(FSNamesystem.java:362) at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:276) at org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:496) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1279) at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1288) 2013-02-02 16:49:29,298 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /tmp/hadoop-hadoop/dfs/name is in an inconsistent state: storage directory does not exist or is not accessible. at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:303) at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:100) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:388) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.(FSNamesystem.java:362) at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:276) at org.apache.hadoop.hdfs.server.namenode.NameNode.(NameNode.java:496) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1279) at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1288) 2013-02-02 16:49:29,299 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at hadoop-VirtualBox/127.0.1.1 ************************************************************/

/tmp/hadoop-hadoop/dfs/name是一个临时的文件夹,系统每次重启时都会进行删除,在配置文件中进行修改就可。

conf/core-site.xml

<property>
   <name>hadoop.tmp.dir</name>
   <value>/home/javoft/Documents/hadoop/hadoop-${user.name}</value>
   <description>A base for other temporary directories.</description>
</property>
<value>的值根据自己的情况调整。

重启hadoop

bin/stop-all.sh
bin/hadoop namenode -format
bin/start-all.sh
问题解决。namenode已经可以启动了。



在Windows Server上设置WebSocket服务器通常需要使用支持WebSocket功能的服务器端框架,如Node.js的WS库或Microsoft的ASP.NET Core。以下是使用Node.js作为示例的简要步骤: 1. **安装Node.js**: 首先确保你已经安装了Node.js,如果没有,访问https://nodejs.org/ 下载并按照官方文档安装。 2. **创建项目**: 打开命令提示符或PowerShell,进入你想创建项目的目录,然后运行 `npm init -y` 初始化一个新的Node.js项目。 3. **安装WebSocket库**: 使用 `npm install ws` 命令安装ws模块,它是一个流行的用于WebSocket通信的库。 4. **编写服务器代码**: 在项目根目录创建一个名为 `server.js` 或其他名字的文件,然后添加如下基本WebSocket服务器代码: ```javascript const WebSocket = require('ws'); const wss = new WebSocket.Server({ port: 8080 }); wss.on('connection', (ws) => { console.log('Client connected'); ws.on('message', (message) => { console.log(`Received: ${message}`); // 发送回客户端的消息 ws.send(`You said: ${message}`); }); ws.on('close', () => { console.log('Client disconnected'); }); }); ``` 5. **启动服务**: 运行 `node server.js` 启动WebSocket服务器。此时,服务器将在8080端口监听WebSocket连接。 6. **启用HTTPS**: 如果你需要HTTPS,你需要获取SSL证书并将它们放置在合适的路径,可以使用像Let's Encrypt这样的免费证书颁发机构。然后使用像`https-server`之类的工具,例如: ``` npm install https-server https-server -p 443 -c ./path/to/cert.pem -k ./path/to/key.pem ``` 注意:上面的过程涉及到命令行操作,并且HTTPS部分需要额外的SSL证书管理,如果你对这些操作不熟悉,可能需要查阅相关的技术文档或寻求专业帮助。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值