Пример #1
0
        /// <summary>Create the payload for the HeartBeat.</summary>
        /// <remarks>
        /// Create the payload for the HeartBeat. Mainly the list of
        /// <see cref="Org.Apache.Hadoop.Yarn.Server.Nodemanager.Api.Protocolrecords.LocalResourceStatus
        ///     "/>
        /// es
        /// </remarks>
        /// <returns>
        /// a
        /// <see cref="Org.Apache.Hadoop.Yarn.Server.Nodemanager.Api.Protocolrecords.LocalizerStatus
        ///     "/>
        /// that can be sent via heartbeat.
        /// </returns>
        /// <exception cref="System.Exception"/>
        private LocalizerStatus CreateStatus()
        {
            IList <LocalResourceStatus> currentResources = new AList <LocalResourceStatus>();

            // TODO: Synchronization??
            for (IEnumerator <LocalResource> i = pendingResources.Keys.GetEnumerator(); i.HasNext
                     ();)
            {
                LocalResource       rsrc = i.Next();
                LocalResourceStatus stat = recordFactory.NewRecordInstance <LocalResourceStatus>();
                stat.SetResource(rsrc);
                Future <Path> fPath = pendingResources[rsrc];
                if (fPath.IsDone())
                {
                    try
                    {
                        Path localPath = fPath.Get();
                        stat.SetLocalPath(ConverterUtils.GetYarnUrlFromPath(localPath));
                        stat.SetLocalSize(FileUtil.GetDU(new FilePath(localPath.GetParent().ToUri())));
                        stat.SetStatus(ResourceStatusType.FetchSuccess);
                    }
                    catch (ExecutionException e)
                    {
                        stat.SetStatus(ResourceStatusType.FetchFailure);
                        stat.SetException(SerializedException.NewInstance(e.InnerException));
                    }
                    catch (CancellationException e)
                    {
                        stat.SetStatus(ResourceStatusType.FetchFailure);
                        stat.SetException(SerializedException.NewInstance(e));
                    }
                    // TODO shouldn't remove until ACK
                    i.Remove();
                }
                else
                {
                    stat.SetStatus(ResourceStatusType.FetchPending);
                }
                currentResources.AddItem(stat);
            }
            LocalizerStatus status = recordFactory.NewRecordInstance <LocalizerStatus>();

            status.SetLocalizerId(localizerId);
            status.AddAllResources(currentResources);
            return(status);
        }
Пример #2
0
        internal static LocalResourceStatus CreateLocalResourceStatus()
        {
            LocalResourceStatus ret = recordFactory.NewRecordInstance <LocalResourceStatus>();

            NUnit.Framework.Assert.IsTrue(ret is LocalResourceStatusPBImpl);
            ret.SetResource(CreateResource());
            ret.SetLocalPath(ConverterUtils.GetYarnUrlFromPath(new Path("file:///local/foo/bar"
                                                                        )));
            ret.SetStatus(ResourceStatusType.FetchSuccess);
            ret.SetLocalSize(4443L);
            Exception e = new Exception("Dingos.");

            e.SetStackTrace(new StackTraceElement[] { new StackTraceElement("foo", "bar", "baz"
                                                                            , 10), new StackTraceElement("sbb", "one", "onm", 10) });
            ret.SetException(SerializedException.NewInstance(e));
            return(ret);
        }
Пример #3
0
        /// <exception cref="System.Exception"/>
        public virtual void TestLocalResourceStatusSerDe()
        {
            LocalResourceStatus rsrcS = CreateLocalResourceStatus();

            NUnit.Framework.Assert.IsTrue(rsrcS is LocalResourceStatusPBImpl);
            LocalResourceStatusPBImpl rsrcPb = (LocalResourceStatusPBImpl)rsrcS;
            DataOutputBuffer          @out   = new DataOutputBuffer();

            rsrcPb.GetProto().WriteDelimitedTo(@out);
            DataInputBuffer @in = new DataInputBuffer();

            @in.Reset(@out.GetData(), 0, @out.GetLength());
            YarnServerNodemanagerServiceProtos.LocalResourceStatusProto rsrcPbD = YarnServerNodemanagerServiceProtos.LocalResourceStatusProto
                                                                                  .ParseDelimitedFrom(@in);
            NUnit.Framework.Assert.IsNotNull(rsrcPbD);
            LocalResourceStatus rsrcD = new LocalResourceStatusPBImpl(rsrcPbD);

            NUnit.Framework.Assert.AreEqual(rsrcS, rsrcD);
            NUnit.Framework.Assert.AreEqual(CreateResource(), rsrcS.GetResource());
            NUnit.Framework.Assert.AreEqual(CreateResource(), rsrcD.GetResource());
        }
Пример #4
0
 public virtual void AddResourceStatus(LocalResourceStatus resource)
 {
     stats.AddItem(resource);
 }
Пример #5
0
 private YarnServerNodemanagerServiceProtos.LocalResourceStatusProto ConvertToProtoFormat
     (LocalResourceStatus s)
 {
     return(((LocalResourceStatusPBImpl)s).GetProto());
 }
Пример #6
0
 public virtual void AddResourceStatus(LocalResourceStatus resource)
 {
     InitResources();
     this.resources.AddItem(resource);
 }