It is actually the other way round. The AM does not know about the
components. The components lookup the registry to find the AM host:port
and then heartbeat into it. In one of the heartbeat cycle it sends all its
config info to AM. This design works well for AM fault tolerance as well.

-Gour

On 1/13/16, 12:40 PM, "Josh Elser" <josh.el...@gmail.com> wrote:

>Yeah, I'm with you Manoj. It seems wrong to not see the exports for
>jmemcached.
>
>Gour -- am I missing something too?
>
>Manoj Samel wrote:
>> Shouldn't it also show component host:port in ZK when they are being
>> exported in registry ? I thought that was the idea of registry ...
>>
>> On Tue, Jan 12, 2016 at 10:25 PM, Gour Saha<gs...@hortonworks.com>
>>wrote:
>>
>>> The only host port that is in zk is that of the AM.
>>>
>>> -Gour
>>>
>>>> On Jan 12, 2016, at 6:21 PM, "Manoj Samel"<manojsamelt...@gmail.com>
>>> wrote:
>>>> Agreed. But I am not seeing even the host/port that is supposed to be
>>>>in
>>> ZK
>>>> Thanks,
>>>>
>>>> Manoj
>>>>
>>>>> On Tue, Jan 12, 2016 at 5:52 PM, Gour Saha<gs...@hortonworks.com>
>>> wrote:
>>>>> In case you are expecting the data to be in zk, then you should know
>>> that
>>>>> Slider stores a very small amount of metadata (primarily endpoints
>>>>>and
>>>>> resource paths to AM) using which you can retrieve the actual data.
>>>>>Most
>>>>> of the information is stored in AM runtime memory and not persisted
>>>>> anywhere. In case of AM failure all the AM state is rebuilt.
>>>>>
>>>>> -Gour
>>>>>
>>>>>> On 1/12/16, 5:24 PM, "Manoj Samel"<manojsamelt...@gmail.com>  wrote:
>>>>>>
>>>>>> Hi Gour,
>>>>>>
>>>>>> As you asked, the urls and their outputs
>>>>>>
>>>>>> http://host36:1025/ws/v1/slider/publisher/exports
>>>>>>
>>>>>>
>>> 
>>>{"exports":{"container_log_dirs":{"description":"container_log_dirs","up
>>>da
>>>>>> ted":1452647463881,"updatedTime":"Wed
>>>>>> Jan 13 01:11:03 UTC
>>>>>>
>>> 
>>>2016","entries":{},"empty":true},"container_work_dirs":{"description":"c
>>>on
>>>>>> tainer_work_dirs","updated":1452647463881,"updatedTime":"Wed
>>>>>> Jan 13 01:11:03 UTC 2016","entries":{},"empty":true}}}
>>>>>>
>>>>>> http://host36:1025/ws/v1/slider/publisher
>>>>>>
>>>>>> {"uris":{"slider":"http://host36:1025/ws/v1/slider/publisher/slider
>>>>> ","expo
>>>>>> rts":"http://host36:1025/ws/v1/slider/publisher/exports"}}
>>>>>>
>>>>>> http://host36:1025/ws/v1/slider/publisher/slider
>>>>>>
>>>>>> {"configurations":{"hdfs-site":{"description":"HDFS site
>>>>>>
>>> 
>>>settings","updated":0,"entries":{},"empty":true},"yarn-site":{"descripti
>>>on
>>>>>> ":"YARN
>>>>>> site
>>>>>>
>>> 
>>>settings","updated":0,"entries":{},"empty":true},"complete-config":{"des
>>>cr
>>>>>> iption":"Complete
>>>>>> slider application
>>>>>>
>>> 
>>>settings","updated":0,"entries":{},"empty":true},"core-site":{"descripti
>>>on
>>>>>> ":"Core
>>>>>> site
>>>>>>
>>> 
>>>settings","updated":0,"entries":{},"empty":true},"componentinstancedata"
>>>:{
>>> 
>>>"description":"ComponentInstanceData","updated":0,"entries":{},"empty":t
>>>ru
>>>>>> e}}}
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> Manoj
>>>>>>
>>>>>>
>>>>>>> On Tue, Jan 12, 2016 at 3:03 PM, Gour Saha<gs...@hortonworks.com>
>>> wrote:
>>>>>>> When you do the below get, you will see an api entry for
>>>>>>> "classpath:org.apache.slider.publisher.exports"
>>>>>>>
>>>>>>> get /registry/users/foo/services/org-apache-slider/<appname>
>>>>>>>
>>>>>>> Do a curl on the uri value. The uri will be in the format of
>>>>>>> http://host:port/ws/v1/slider/publisher/exports. Do you find the
>>>>>>>info
>>>>>>> you
>>>>>>> are looking for there?
>>>>>>>
>>>>>>> Also do a curl on the path ws/v1/slider/publisher and its
>>>>>>>sub-paths.
>>>>>>> What
>>>>>>> do you see?
>>>>>>>
>>>>>>> -Gour
>>>>>>>
>>>>>>> From: Manoj Samel<manojsamelt...@gmail.com<mailto:
>>>>>>> manojsamelt...@gmail.com>>
>>>>>>> Reply-To: "dev@slider.incubator.apache.org<mailto:
>>>>>>> dev@slider.incubator.apache.org>"
>>>>>>> <dev@slider.incubator.apache.org<mailto:
>>>>>>> dev@slider.incubator.apache.org>>
>>>>>>> Date: Tuesday, January 12, 2016 at 11:24 AM
>>>>>>> To: "dev@slider.incubator.apache.org<mailto:
>>>>>>> dev@slider.incubator.apache.org>"
>>>>>>> <dev@slider.incubator.apache.org<mailto:
>>>>>>> dev@slider.incubator.apache.org>>
>>>>>>> Subject: Re: Component level host:port export seen in AM but not
>>>>>>>in ZK
>>>>>>>
>>>>>>> Hi Josh,
>>>>>>>
>>>>>>> I have created a minimal use case using the jmemcached to reproduce
>>> the
>>>>>>> problem. The only change from OOB jmemcached is I am passing
>>> additional
>>>>>>> ports (not relevant for jmem but relevant for my ultimate use
>>>>>>>case),
>>>>>>> one of
>>>>>>> which I try to export.
>>>>>>>
>>>>>>> I have attached the 3 config files as well as a output file
>>>>>>>containing
>>>>>>> the
>>>>>>> slider-am URL output (which contains the component host:port) and
>>>>>>>ZK
>>>>>>> output
>>>>>>> (which does not contains component host:port).
>>>>>>>
>>>>>>> Thanks for looking into the issue&  let me know if you need
>>>>>>>additional
>>>>>>> info
>>>>>>>
>>>>>>> Manoj
>>>>>>>
>>>>>>> On Sun, Jan 10, 2016 at 11:26 AM, Josh Elser
>>>>>>> <josh.el...@gmail.com<mailto:
>>>>>>> josh.el...@gmail.com>>  wrote:
>>>>>>> Hey Manoj,
>>>>>>>
>>>>>>> I'm not sure at a glance, but it might be a bug in Slider's use of
>>>>>>>the
>>>>>>> registry? I'm not quite sure, I'd have to dig into the source to be
>>>>>>> sure.
>>>>>>>
>>>>>>> Do you have an example that I could run which exhibits this?
>>>>>>>
>>>>>>>
>>>>>>> Manoj Samel wrote:
>>>>>>> Any thoughts ?
>>>>>>>
>>>>>>> Thanks,
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Jan 7, 2016 at 10:25 AM, Manoj
>>>>>>>Samel<manojsamelt...@gmail.com
>>>>>>> <mailto:manojsamelt...@gmail.com>>
>>>>>>> wrote:
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> Slider 0.80 with secured cluster. Registry is enabled *** without
>>>>>>>***
>>>>>>> security
>>>>>>>
>>>>>>> Export is configured as follows
>>>>>>>
>>>>>>> 1. No application level export
>>>>>>> 2. Component level port allocated per container. In appConfig.json,
>>> ***
>>>>>>> "global" *** section
>>>>>>>      "site.global.user1.http_port":
>>>>>>> "${user1.ALLOCATED_PORT}{PER_CONTAINER}",
>>>>>>> 3. Each component exports its own host/port (slider allocated).
>>>>>>> metainfo.xml
>>>>>>>            <components>
>>>>>>>              <component>
>>>>>>>                    <name>user1</name>
>>>>>>>                    <category>MASTER</category>
>>>>>>>                    <componentExports>
>>>>>>>                       <componentExport>
>>>>>>>                         <name>my_info</name>
>>>>>>>            
>>>>>>><value>${THIS_HOST}:${user1.http_port}</value>
>>>>>>>                      </componentExport>
>>>>>>>                    </componentExports>
>>>>>>>                    <commandScript>
>>>>>>>                      <script>scripts/memcached.py</script>
>>>>>>>                      <scriptType>PYTHON</scriptType>
>>>>>>>                    </commandScript>
>>>>>>>                  </component>
>>>>>>>
>>>>>>> At runtime, in
>>>>>>>
>>> http://am-host:1025/ws/v1/slider/publisher/slider/componentinstancedata
>>>>> ,
>>>>>>> the host:port info can be seen as expected
>>>>>>>
>>>>>>>
>>>>>>>
>>> 
>>>{"description":"ComponentInstanceData","updated":0,"entries":{"container
>>>_
>>>>>>> 1452045276360_0005_01_000004.my_info":"host1:33786",
>>>>>>> ....
>>>>>>>
>>>>>>> However, when I look at ZK data,
>>>>>>>
>>>>>>> get
>>>>>>>
>>>>>>>
>>> 
>>>/registry/users/foo/services/org-apache-slider/<appname>/components/cont
>>>a
>>>>>>> iner-1452045276360-0005-01-000004,
>>>>>>> I don't see the host:port info. It only shows
>>>>>>>
>>>>>>> {
>>>>>>>    "type" : "JSONServiceRecord",
>>>>>>>    "description" : "user1",
>>>>>>>    "external" : [ ],
>>>>>>>    "internal" : [ ],
>>>>>>>    "yarn:id" : "container-1452045276360-0005-01-000004",
>>>>>>>    "yarn:persistence" : "container"
>>>>>>> }
>>>>>>>
>>>>>>> Any thought what I may be missing ?
>>>>>>>
>>>>>>> Related question - looking @
>>> 
>>>https://hadoop.apache.org/docs/r2.7.1/hadoop-yarn/hadoop-yarn-site/regis
>>>t
>>>>>>> ry/yarn-registry.html,
>>>>>>> the spec and all examples of export list "protocol"
>>>>>>>
>>>>>>> e.g. REST, rmi etc. Its not clear if and how is that protocol to be
>>>>>>> specified in the component export section ? Can anyone give a
>>>>>>>example
>>> ?
>>>>>>> Thanks,
>>>>>>>
>>>>>>> Manoj
>>>>>
>>
>

Reply via email to