我的hadoop集群HA活动名称节点(host1)突然切换到备用名字节点(host2)。我在hadoop日志中找不到任何错误(在任何服务器中)以确定根本原因。
切换名称节点后,经常出现在hdfs日志中的错误,非应用程序可以读取HDFS文件。
2014-07-17 01:58:53,381 WARN namenode.FSNamesystem (FSNamesystem.java:getCorruptFiles(6769)) - 获取损坏的文件块 返回错误:状态不支持操作类别READ 待机
重新启动新的活动节点(host2)后,namenode将切换回新的备用节点(host1)。然后群集正常工作,用户也可以检索HDFS文件。
我使用的是Hortonworks 2.1.2.0和HDFS版本2.4.0.2.1
编辑:2014年第21届 当活动 - 备用名称节点切换发生时,在活动的名称节点日志中找到以下日志
NT_SETTINGS-1675610.csv dst = null perm = null 2014-07-20 09:06:44,746 INFO FSNamesystem.audit (FSNamesystem.java:logAuditMessage(7755)) - allowed = true
ugi = storm(auth:SIMPLE)ip = / 10.0.1.50 cmd = getfileinfo SRC = /用户/钨/分段/ LEAPSET /产品/产品-138018 6.csv dst = null perm = null 2014-07-20 09:06:44,747 INFO FSNamesystem.audit(FSNamesystem.java:logAuditMessage(7755)) - allowed = true ugi = storm(auth:SIMPLE)ip = / 10.0.1.50
CMD = getfileinfo SRC = /用户/钨/分段/ LEAPSET / MERCHANT_SETTINGS / MERCHA NT_SETTINGS-1695794.csv dst = null perm = null 2014-07-20 09:06:44,747 INFO FSNamesystem.audit (FSNamesystem.java:logAuditMessage(7755)) - allowed = true
ugi = storm(auth:SIMPLE)ip = / 10.0.1.50 cmd = getfileinfo SRC = /用户/钨/分段/ LEAPSET /产品/产品-139954 1.csv dst = null perm = null 2014-07-20 09:06:44,748 INFO namenode.FSNamesystem(FSNamesystem.java:stopActiveServices(1095)) - 停止为活跃状态启动服务2014-07-20 09:06:44,750 INFO namenode.FSEditLog(FSEditLog.java:endCurrentLogSegment(1153)) - 结束日志段842249 2014-07-20 09:06:44,752 INFO namenode.FSEditLog(FSEditLog.java:printStatistics(673)) - 数量 交易:2交易总时间(毫秒):0 在Syncs中批处理的事务:0同步数:1 SyncTimes(ms):4 35 2014-07-20 09:06:44,774 INFO namenode.FSEditLog (FSEditLog.java:printStatistics(673)) - 交易数量:2 事务总时间(毫秒):0批量处理的事务数 同步:0同步数:2 SyncTimes(ms):24 37 2014-07-20 09:06:44,805 INFO namenode.FSNamesystem(FSNamesystem.java:run(4362)) - NameNodeEditLogRoller被中断,退出2014-07-20 09:06:44,824 INFO namenode.FileJournalManager (FileJournalManager.java:finalizeLogSegment(130)) - 完成编辑 文件 / EBS / hadoop的/ HDFS /名称节点/电流/ edits_inprogress_0000000000000842249 - > / ebs / hadoop / hdfs / name node / current / edits_0000000000000842249-0000000000000842250 2014-07-20 09:06:44,874 INFO blockmanagement.CacheReplicationMonitor (CacheReplicationMonitor.java:run(168)) - 关闭 CacheReplicationMonitor 2014-07-20 09:06:44,876 INFO namenode.FSNamesystem(FSNamesystem.java:startStandbyServices(1136)) - 待机状态所需的启动服务2014-07-20 09:06:44,927 信息ha.EditLogTailer(EditLogTailer.java:(117)) - 会滚动 在hadoop-client-us-west-1b / 10.0.254.10:8020每次登录活动节点 120秒2014-07-20 09:06:44,929 INFO ha.StandbyCheckpointer (StandbyCheckpointer.java:start(129)) - 启动待机检查点 线程...检查点活动NN在 http:// hadoop-client-us-west-1b:50070服务检查站在 http:// hadoop-client-us-west-1a:50070 2014-07-20 09:06:44,930 INFO ipc.Server(Server.java:run(2027)) - 8020上的IPC服务器处理程序3, 从org.apache.hadoop.hdfs.protocol.ClientProtocol.getFileInfo调用 10.0.1.50:57297调用#8431877重试#0:org.apache.hadoop.ipc.StandbyException:操作类别READ不是 状态待机支持2014-07-20 09:06:44,930 INFO ipc.Server (Server.java:run(2027)))80820上的IPC服务器处理程序16,调用 来自的org.apache.hadoop.hdfs.protocol.ClientProtocol.getFileInfo 10.0.1.50:57294调用#130105071重试#0:org.apache.hadoop.ipc.StandbyException:操作类别READ不是 状态待机支持2014-07-20 09:06:44,940 INFO ipc.Server (Server.java:run(2027)) - 在8020上的IPC服务器处理程序14,调用 来自的org.apache.hadoop.hdfs.protocol.ClientProtocol.getFileInfo 10.0.1.50:57294调用#130105072重试#0:org.apache.hadoop.ipc.StandbyException:操作类别READ不是 在状态待机状态下支持
编辑:2014年8月13日 我们找到了namenode切换的根本原因,namenode获取了大量的文件信息请求,然后发生了namenode切换。
但仍然无法解决状态待机错误不支持操作类别READ。
编辑:2014年12月7日 我们发现,由于解决方案应用程序需要在以前活动的namenode失败后手动连接当前活动的namenode。 HA模式下名称节点的流量不会自动定向到活动节点。
答案 0 :(得分:0)
我有同样的问题。您需要更新客户端库。使用amabari设置spark并让它在服务器上安装客户端。然后设置SPARK_HOME环境变量。