> On Jan. 16, 2015, 12:07 a.m., Jonathan Hurley wrote: > > ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/journalnode_upgrade.py, > > line 50 > > <https://reviews.apache.org/r/29950/diff/1/?file=823094#file823094line50> > > > > If not specified, this should be defaulted to HTTP_ONLY
Will fix this. > On Jan. 16, 2015, 12:07 a.m., Jonathan Hurley wrote: > > ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/journalnode_upgrade.py, > > lines 55-56 > > <https://reviews.apache.org/r/29950/diff/1/?file=823094#file823094line55> > > > > This will not work in HA mode. The NameNode is a combination of > > `dfs.namenode.http-address`, the HA cluster name, and the `nn` identifier. > > Such as: > > > > dfs.namenode.http-address.c1ha.nn2 With the current code, it returns a value like "c6408.ambari.apache.org:50070" And the function get_jmx_data will convert it to something like "http://c6408.ambari.apache.org:50070/jmx", which does appear to work > On Jan. 16, 2015, 12:07 a.m., Jonathan Hurley wrote: > > ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/journalnode_upgrade.py, > > lines 87-88 > > <https://reviews.apache.org/r/29950/diff/1/?file=823094#file823094line87> > > > > kinit needed here? kinit happens just before in line 83 - Alejandro ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/29950/#review68366 ----------------------------------------------------------- On Jan. 15, 2015, 10:43 p.m., Alejandro Fernandez wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/29950/ > ----------------------------------------------------------- > > (Updated Jan. 15, 2015, 10:43 p.m.) > > > Review request for Ambari, Dmitro Lisnichenko, Jonathan Hurley, Nate Cole, > Srimanth Gunturi, Sid Wagle, Tom Beerbower, and Yurii Shylov. > > > Bugs: AMBARI-9163 > https://issues.apache.org/jira/browse/AMBARI-9163 > > > Repository: ambari > > > Description > ------- > > The active namenode shutdowns during the first call to get the safemode > status. > ` > su - hdfs -c 'hdfs dfsadmin -safemode get' > ` > > returned > ` > failed on connection exception: java.net.ConnectException: Connection > refused; For more details see: > http://wiki.apache.org/hadoop/ConnectionRefused > ` > > The active namenode shows the following during the same time window, > ` > 2015-01-15 00:35:04,233 WARN client.QuorumJournalManager > (IPCLoggerChannel.java:call(388)) - Remote journal 192.168.64.106:8485 failed > to write txns 52-52. Will try to write to this JN again after the next log > roll. > org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.qjournal.protocol.JournalOutOfSyncException): > Can't write, no segment open > at > org.apache.hadoop.hdfs.qjournal.server.Journal.checkSync(Journal.java:470) > at > org.apache.hadoop.hdfs.qjournal.server.Journal.journal(Journal.java:344) > at > org.apache.hadoop.hdfs.qjournal.server.JournalNodeRpcServer.journal(JournalNodeRpcServer.java:148) > at > org.apache.hadoop.hdfs.qjournal.protocolPB.QJournalProtocolServerSideTranslatorPB.journal(QJournalProtocolServerSideTranslatorPB.java:158) > at > org.apache.hadoop.hdfs.qjournal.protocol.QJournalProtocolProtos$QJournalProtocolService$2.callBlockingMethod(QJournalProtocolProtos.java:25421) > at > org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:619) > at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:962) > at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2039) > at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2035) > at java.security.AccessController.doPrivileged(Native Method) > at javax.security.auth.Subject.doAs(Subject.java:415) > at > org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1628) > at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2033) > > at org.apache.hadoop.ipc.Client.call(Client.java:1468) > at org.apache.hadoop.ipc.Client.call(Client.java:1399) > at > org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:232) > at com.sun.proxy.$Proxy12.journal(Unknown Source) > at > org.apache.hadoop.hdfs.qjournal.protocolPB.QJournalProtocolTranslatorPB.journal(QJournalProtocolTranslatorPB.java:167) > at > org.apache.hadoop.hdfs.qjournal.client.IPCLoggerChannel$7.call(IPCLoggerChannel.java:385) > at > org.apache.hadoop.hdfs.qjournal.client.IPCLoggerChannel$7.call(IPCLoggerChannel.java:378) > at java.util.concurrent.FutureTask.run(FutureTask.java:262) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > ` > > This issue is intermittent because it depends on the behavior of the > Journalnodes, so this will require more work to the scripts. > > Today, our orchestration restarts one Journalnode at a time. However, the > current log segment is null because it has not yet rolled to a new one, which > can be forced by the command "hdfs dfsadmin -rollEdit" and waiting til some > conditions are true. > > The runbook has more details, > ` > // Function to ensure all JNs are up and are functional > ensureJNsAreUp(Jn1, Jn2, Jn3) { > rollEdits at the namenode // hdfs dfsadmin -rollEdit > get “LastAppliedOrWrittenTxId” from NN jmx > wait till "LastWrittenTxId" from all JNs is >= previous step transaction > ID, timeout after 3 mins > } > > // Before bringing down a journal node ensure that the other two journal > nodes are up > ensureJNsAreUp > for each JN { > do upgrade of one JN > ensureJNsAreUp > } > > ` > > Root caused to: > https://github.com/apache/hadoop/blob/ae91b13a4b1896b893268253104f935c3078d345/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/qjournal/server/Journal.java > line 344 > > > Diffs > ----- > > > ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/metainfo.xml > ce0ab297a8c8e665e8ffde79b9b36be2d29d117c > > ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/journalnode.py > 15e068947307a321566385fb670232af7f78d71b > > ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/journalnode_upgrade.py > PRE-CREATION > > ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/namenode_upgrade.py > 93efae35281e7d3d175ecc95b3af4e531cf69b64 > > ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/utils.py > f185ea0d6b2e7dfe1cd8ce95287d2a2f1970e682 > > Diff: https://reviews.apache.org/r/29950/diff/ > > > Testing > ------- > > Copied changes files to a 3-node HA cluster and verified that the upgrade > worked twice. > Unit Tests passed, > > [INFO] > ------------------------------------------------------------------------ > [INFO] BUILD SUCCESS > [INFO] > ------------------------------------------------------------------------ > [INFO] Total time: 30:23.410s > [INFO] Finished at: Thu Jan 15 14:43:23 PST 2015 > [INFO] Final Memory: 61M/393M > [INFO] > ------------------------------------------------------------------------ > > > Thanks, > > Alejandro Fernandez > >
