Hadoop权威指南说 -
每个Namenode都运行一个轻量级故障转移控制器进程,其工作是监视其Namenode的故障(使用简单的心跳机制),并在namenode失败时触发故障转移.
为什么namenode可以运行某些东西来检测自己的失败?
谁向谁发送心跳?
这个过程在哪里运行?
它如何检测namenode失败?
它向谁通知过渡?
我们有两个HDP集群的设置让我们称它们为A和B.
集群一个节点:
CLUSTER B NODES:
我们的应用程序中有三个主要组件,它们对传入的文件执行ETL(提取,转换和加载)操作.我将这些组件分别称为E,T和L.
组件E特征:
组件T特征:
组分L特征:
组件L是所有三个组件中的宝石,我们没有遇到任何故障.组分E中存在轻微的无法解释的毛刺,但组分T是最麻烦的.
组件E和T都使用DFS客户端与namenode进行通信.
以下是我们在运行组件T时间歇性地观察到的异常的摘录:
clusterA.namenode.com/10.141.160.141:8020. Trying to fail over immediately.
java.io.IOException: Failed on local exception: java.io.IOException: Connection reset by peer; Host Details : local host is: "clusterB.datanode.com"; destination host is: "clusterA.namenode.com":8020;
at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:782)
at org.apache.hadoop.ipc.Client.call(Client.java:1459)
at org.apache.hadoop.ipc.Client.call(Client.java:1392)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:229)
at com.sun.proxy.$Proxy15.complete(Unknown Source)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.complete(ClientNamenodeProtocolTranslatorPB.java:464)
at sun.reflect.GeneratedMethodAccessor1240.invoke(Unknown Source) …Run Code Online (Sandbox Code Playgroud) 当我尝试在主节点上启动hadoop时,我得到以下输出.并且namenode没有启动.
[hduser@dellnode1 ~]$ start-dfs.sh
starting namenode, logging to /usr/local/hadoop/bin/../logs/hadoop-hduser-namenode-dellnode1.library.out
dellnode1.library: datanode running as process 5123. Stop it first.
dellnode3.library: datanode running as process 4072. Stop it first.
dellnode2.library: datanode running as process 4670. Stop it first.
dellnode1.library: secondarynamenode running as process 5234. Stop it first.
[hduser@dellnode1 ~]$ jps
5696 Jps
5123 DataNode
5234 SecondaryNameNode
Run Code Online (Sandbox Code Playgroud) 我一直试图Hadoop在Windows 7 上安装很长一段时间.我正在关注此博客以获取相关说明.但不幸的是,我还没有能够运行Namenode.hdfs-site.xml文件似乎有问题,但我没有看到任何错误.请看一下
HDFS-site.xml中
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>F:\hadoop-2.7.2\data\namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>F:\hadoop-2.7.2\data\datanode</value>
</property>
</configuration>
Run Code Online (Sandbox Code Playgroud)
和我hdfs namenode -format在命令提示符下运行命令时得到的错误日志:
C:\Users\ABC>hdfs namenode -format
Hadoop common not found.
16/08/05 12:44:53 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = ABC-PC/172.20.0.51
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 2.7.2
STARTUP_MSG: classpath = F:\hadoop-2.7.2\etc\hadoop;F:\hadoop-2.7.2\share\hado
op\common\lib\commons-compress-1.4.1.jar;F:\hadoop-2.7.2\share\hadoop\common\lib
\jersey-server-1.9.jar;F:\hadoop-2.7.2\share\hadoop\common\lib\jets3t-0.9.0.jar;
F:\hadoop-2.7.2\share\hadoop\common\lib\jersey-core-1.9.jar;F:\hadoop-2.7.2\shar
e\hadoop\common\lib\hadoop-auth-2.7.2.jar;F:\hadoop-2.7.2\share\hadoop\common\li
b\commons-digester-1.8.jar;F:\hadoop-2.7.2\share\hadoop\common\lib\log4j-1.2.17.
jar;F:\hadoop-2.7.2\share\hadoop\common\lib\java-xmlbuilder-0.4.jar;F:\hadoop-2.
7.2\share\hadoop\common\lib\curator-client-2.7.1.jar;F:\hadoop-2.7.2\share\hadoo
p\common\lib\jetty-util-6.1.26.jar;F:\hadoop-2.7.2\share\hadoop\common\lib\xmlen
c-0.52.jar;F:\hadoop-2.7.2\share\hadoop\common\lib\activation-1.1.jar;F:\hadoop-
2.7.2\share\hadoop\common\lib\jackson-core-asl-1.9.13.jar;F:\hadoop-2.7.2\share\
hadoop\common\lib\jaxb-impl-2.2.3-1.jar;F:\hadoop-2.7.2\share\hadoop\common\lib\ …Run Code Online (Sandbox Code Playgroud) 任何人都知道在Hdfs的namenode中每个文件占用多少字节?我想估计有多少文件可以存储在32G内存的单个名称节点中.
在执行“hadoop namenode -format”时,出现以下消息。
Re-format filesystem in Storage Directory /opt/data/temp/dfs/name ? (Y or N)
Run Code Online (Sandbox Code Playgroud)
在这里应该给予什么?“Y”或“N”。
如果给Y,它会丢失HDFS中的数据吗?
我们有一个旧的hadoop集群机器hadoop-版本2.6
集群中的所有计算机均为Redhat版本-7.3
我们在启动最后一台主计算机上的备用名称节点时遇到问题
从日志(在/ var / log / hadoop / hdf下),我们可以看到错误-未找到有效的图像文件
我不确定我的解决方案,但这是否意味着我们需要删除/ hadoop / hdfs / journal / hdfsha / current下的文件-(edits_inprogress_XXXXX),然后重新启动备用名称节点服务?
2018-01-24 16:10:27,826 ERROR namenode.NameNode (NameNode.java:main(1774)) - Failed to start namenode.
java.io.FileNotFoundException: No valid image files found
at org.apache.hadoop.hdfs.server.namenode.FSImageTransactionalStorageInspector.getLatestImages(FSImageTransactionalStorageInspector.java:165)
at org.apache.hadoop.hdfs.server.namenode.FSImage.loadFSImage(FSImage.java:618)
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:289)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFSImage(FSNamesystem.java:1045)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.loadFromDisk(FSNamesystem.java:703)
at org.apache.hadoop.hdfs.server.namenode.NameNode.loadNamesystem(NameNode.java:688)
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:752)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:992)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:976)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1701)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1769)
2018-01-24 16:10:27,829 INFO util.ExitUtil (ExitUtil.java:terminate(124)) - Exiting with status 1
2018-01-24 16:10:27,845 INFO namenode.NameNode …Run Code Online (Sandbox Code Playgroud) 我有一个名称节点,在紧急情况下必须关闭,该节点已经 9 个月没有获取 FSImage,并且有大约 5TB 的编辑文件需要在下次重新启动时处理。从大约 9 个月前开始,辅助名称节点就没有运行过(或执行过任何检查点操作),因此 FSImage 已经存在 9 个月了。
HDFS集群中大约有780万个inode。该机总内存约为260GB。
我们已经尝试了 Java 堆大小、GC 算法等的几种不同组合...但无法找到一种组合,可以让重新启动完成,而不会最终因 FGC 而减慢速度。
我有两个问题: 1. 有没有人找到一个名称节点配置,允许成功完成如此大的编辑文件积压?
我知道这两个属性都与namenode有关.但它们之间的实际区别是什么?
我已使用从节点的主机名更新了Hadoop主节点上的/ conf / slaves文件,但无法从主节点启动从节点。我必须单独启动从站,然后我的5节点群集已启动并正在运行。如何通过主节点上的单个命令启动整个集群?
同样,SecondaryNameNode在所有从属服务器上运行。那是问题吗?如果是这样,如何将它们从奴隶中删除?我认为在具有一个NameNode的群集中应该只有一个SecondaryNameNode,对吗?
谢谢!