Although it was not mentioned in my most recent correspondence, I was using the shade plugin to build an uber jar for slider in my most recent attempts. After seeing some hints at http://stackoverflow.com/questions/8594707/jersey-exception-severe-a-message-body-reader-for-java-class, I looked at that interaction and disabled the uber jar creation. I'm not sure why the uberjars failed here. Based on the test, I think that the json deserialization issue is resolved in the AM, but the jmemcache now has unresolved runtime dependencies (even when building jmemcached as an uberjar using the assembly plugin) and is failing.
The jmemcached container reports in errors-2.txt (errors-1.txt is empty): 017-04-29 07:06:10,960 - Error while executing command 'start': Traceback (most recent call last): File "/var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/root/appcache/application_1493430076245_0007/filecache/71/slider-agent.tar.gz/slider-agent/resource_management/libraries/script/script.py", line 116, in execute method(env) File "/var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/root/appcache/application_1493430076245_0007/filecache/108/jmemcached-1.0.1.zip/package/scripts/memcached.py", line 43, in start poll_after = 5 File "/var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/root/appcache/application_1493430076245_0007/filecache/71/slider-agent.tar.gz/slider-agent/resource_management/core/base.py", line 148, in __init__ self.env.run() File "/var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/root/appcache/application_1493430076245_0007/filecache/71/slider-agent.tar.gz/slider-agent/resource_management/core/environment.py", line 149, in run self.run_action(resource, action) File "/var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/root/appcache/application_1493430076245_0007/filecache/71/slider-agent.tar.gz/slider-agent/resource_management/core/environment.py", line 115, in run_action provider_action() File "/var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/root/appcache/application_1493430076245_0007/filecache/71/slider-agent.tar.gz/slider-agent/resource_management/core/providers/system.py", line 260, in action_run raise ex Fail: Execution of '/usr/lib/jvm/java//bin/java -Xmx256m -Xms128m -classpath /var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/root/appcache/application_1493430076245_0007/container_1493430076245_0007_01_000002/app/install/*: com.thimbleware.jmemcached.Main --memory=200M --port=11211' returned 1. Error: A JNI error has occurred, please check your installation and try again Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/cli/CommandLineParser at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) at java.lang.Class.privateGetMethodRecursive(Class.java:3048) at java.lang.Class.getMethod0(Class.java:3018) at java.lang.Class.getMethod(Class.java:1784) at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544) at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526) Caused by: java.lang.ClassNotFoundException: org.apache.commons.cli.CommandLineParser at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 7 more command-1.txt reads: { "clusterName": "jmemcached", "componentName": "MEMCACHED", "hostname": "quickstart.cloudera", "hostLevelParams": { "java_home": "/usr/lib/jvm/java/", "container_id": "container_1493430076245_0007_01_000002", "package_list": "[{\"type\":\"tarball\",\"name\":\"files/jmemcached-1.0.1.tar\"}]" }, "commandType": "EXECUTION_COMMAND", "roleCommand": "INSTALL", "serviceName": "jmemcached", "role": "MEMCACHED", "commandParams": { "record_config": "false", "service_package_folder": "${AGENT_WORK_ROOT}/work/app/definition/package", "script": "scripts/memcached.py", "schema_version": "2.0", "command_timeout": "600", "script_type": "PYTHON" }, "taskId": 1, "public_hostname": "quickstart.cloudera", "appmaster_hostname": "quickstart.cloudera", "commandId": "1-1", "configurations": { "global": { "security_enabled": "false", "additional_cp": "", "app_container_id": "container_1493430076245_0007_01_000002", "listen_port": "11211", "xms_val": "128m", "app_root": "/var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/root/appcache/application_1493430076245_0007/container_1493430076245_0007_01_000002/app/install", "app_log_dir": "/var/log/hadoop-yarn/containers/application_1493430076245_0007/container_1493430076245_0007_01_000002", "xmx_val": "256m", "pid_file": "/var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/root/appcache/application_1493430076245_0007/container_1493430076245_0007_01_000002/app/run/component.pid", "memory_val": "200M", "app_container_tag": "1", "app_pid_dir": "/var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/root/appcache/application_1493430076245_0007/container_1493430076245_0007_01_000002/app/run", "app_install_dir": "/var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/root/appcache/application_1493430076245_0007/container_1493430076245_0007_01_000002/app/install", "app_input_conf_dir": "/var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/root/appcache/application_1493430076245_0007/container_1493430076245_0007_01_000002/propagatedconf" } } } With best regards: Bill ________________________________ From: Foolish Ewe <foolish...@hotmail.com> Sent: Friday, April 28, 2017 6:56 PM To: dev@slider.incubator.apache.org Subject: Re: Slider fails to launch the memcached container in my version of the example, Registration Response gets a Error 415 Unsupported Media Type Thanks for the quick response Billie. I've done a fresh run, I'm still seeing the same issue. I suspect that the json deserialization is not occurring, and that the deserializer is not being found at run time. For the current run, I've made a small change to the appConfig.json to remove the agent.ini, but didn't change the --manager lines. [root@quickstart mybuild]# cat ./incubator-slider/app-packages/memcached/appConfig.json { "schema": "http://example.org/specification/v2.0.0", "metadata": { }, "global": { "application.def": ".slider/package/jmemcached/jmemcached-1.0.1.zip", "java_home": "/usr/lib/jvm/java/", "site.global.additional_cp": "", "site.global.xmx_val": "256m", "site.global.xms_val": "128m", "site.global.memory_val": "200M", "site.global.listen_port": "11211" }, "components": { "slider-appmaster": { "jvm.heapsize": "256M" } } } The python version is: [root@quickstart mybuild]# python -V Python 2.7.5 So that we can isolate relevant data based on log time stamps, the slider-agent.log shows the first failure at: INFO 2017-04-28 18:45:48,109 Controller.py:138 - Registering with the server at https://quickstart.cloudera:36837/ws/v1/slider/agents/container_1493405038155_0001_01_000002___MEMCACHED/register with data '{"actualState": 0, "logFolders": {}, "agentVersion": "1", "allocatedPorts": {}, "timestamp": 1493405148109, "expectedState": 0, "tags": "", "responseId": -1, "publicHostname": "quickstart.cloudera", "label": "container_1493405038155_0001_01_000002___MEMCACHED"}' INFO 2017-04-28 18:45:48,109 security.py:89 - SSL Connect being called.. connecting to the server INFO 2017-04-28 18:45:48,181 security.py:51 - SSL connection established. Two-way SSL authentication is turned off on the server. INFO 2017-04-28 18:45:48,194 Controller.py:140 - Registration response = '<html>\n<head>\n<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>\n<title>Error 415 Unsupported Media Type</title>\n</head>\n<body><h2>HTTP ERROR 415</h2>\n<p>Problem accessing /ws/v1/slider/agents/container_1493405038155_0001_01_000002___MEMCACHED/register. Reason:\n<pre> Unsupported Media Type</pre></p><hr /><i><small>Powered by Jetty://</small></i><br/> \n<br/> \n<br/> \n<br/> \n<br/> \n<br/> \n<br/> \n<br/> \n<br/> \n<br/> \n<br/> \n<br/> \n<br/> \n<br/> \n<br/> \n<br/> \n<br/> \n<br/> \n<br/> \n<br/> \n\n</body>\n</html>\n' The AM logs have slider have slider-err.txt which has repeated reports corresponding to the SEVERE message at the end: SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/root/appcache/application_1493405038155_0001/filecache/74/slider.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/root/appcache/application_1493405038155_0001/filecache/20/slider-core-0.60.0-incubating.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/root/appcache/application_1493405038155_0001/filecache/27/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J Error Codes<http://www.slf4j.org/codes.html#multiple_bindings> www.slf4j.org SLF4J warning or error messages and their meanings No SLF4J providers were found. This warning, i.e. not an error, message is reported when no SLF4J ... SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] Apr 28, 2017 6:45:39 PM com.sun.jersey.api.core.PackagesResourceConfig init INFO: Scanning for root resource and provider classes in the packages: org.apache.slider.server.appmaster.web.rest.agent Apr 28, 2017 6:45:41 PM com.sun.jersey.api.core.ScanningResourceConfig logClasses INFO: Root resource classes found: class org.apache.slider.server.appmaster.web.rest.agent.AgentWebServices Apr 28, 2017 6:45:41 PM com.sun.jersey.api.core.ScanningResourceConfig init INFO: No provider classes found. Apr 28, 2017 6:45:42 PM com.sun.jersey.server.impl.application.WebApplicationImpl _initiate INFO: Initiating Jersey application, version 'Jersey: 1.9 09/02/2011 11:17 AM' Apr 28, 2017 6:45:48 PM com.sun.jersey.spi.inject.Errors processErrorMessages WARNING: The following warnings have been detected with resource and/or provider classes: WARNING: A sub-resource method, public javax.ws.rs.core.Response org.apache.slider.server.appmaster.web.rest.agent.AgentResource.endpointRoot(), with URI template, "/", is treated as a resource method Apr 28, 2017 6:45:48 PM com.sun.jersey.spi.container.ContainerRequest getEntity SEVERE: A message body reader for Java class org.apache.slider.server.appmaster.web.rest.agent.Register, and Java type class org.apache.slider.server.appmaster.web.rest.agent.Register, and MIME media type application/json was not found. The registered message body readers compatible with the MIME media type are: */* -> com.sun.jersey.core.impl.provider.entity.FormProvider com.sun.jersey.core.impl.provider.entity.StringProvider com.sun.jersey.core.impl.provider.entity.ByteArrayProvider com.sun.jersey.core.impl.provider.entity.FileProvider com.sun.jersey.core.impl.provider.entity.InputStreamProvider com.sun.jersey.core.impl.provider.entity.DataSourceProvider com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General com.sun.jersey.core.impl.provider.entity.ReaderProvider com.sun.jersey.core.impl.provider.entity.DocumentProvider com.sun.jersey.core.impl.provider.entity.SourceProvider$StreamSourceReader com.sun.jersey.core.impl.provider.entity.SourceProvider$SAXSourceReader com.sun.jersey.core.impl.provider.entity.SourceProvider$DOMSourceReader com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$General com.sun.jersey.core.impl.provider.entity.EntityHolderReader The AM Logs for slider.log reports: 2017-04-28 18:45:45,398 [main] INFO agent.AgentClientProvider - Validating app definition .slider/package/jmemcached/jmemcached-1.0.1.zip 2017-04-28 18:45:45,416 [AmExecutor-006] INFO state.AppState - Reviewing RoleStatus{name='MEMCACHED', key=1, minimum=0, maximum=1, desired=1, actual=0, requested=0, releasing=0, failed=0, started=0, startFailed=0, completed=0, failureMessage=''} : expected 1 2017-04-28 18:45:45,417 [AmExecutor-006] INFO state.AppState - MEMCACHED: Asking for 1 more nodes(s) for a total of 1 2017-04-28 18:45:45,422 [AmExecutor-006] INFO state.AppState - Container ask is Capability[<memory:256, vCores:1>]Priority[1073741825] and label = null 2017-04-28 18:45:46,805 [AMRM Heartbeater thread] INFO impl.AMRMClientImpl - Received new token for : quickstart.cloudera:42111 2017-04-28 18:45:46,806 [AMRM Callback Handler Thread] INFO appmaster.SliderAppMaster - onContainersAllocated(1) 2017-04-28 18:45:46,808 [AMRM Callback Handler Thread] INFO state.AppState - Assigning role MEMCACHED to container container_1493405038155_0001_01_000002, on quickstart.cloudera:42111, 2017-04-28 18:45:46,811 [AMRM Callback Handler Thread] INFO appmaster.SliderAppMaster - Diagnostics: RoleStatus{name='slider-appmaster', key=0, minimum=0, maximum=1, desired=1, actual=1, requested=0, releasing=0, failed=0, started=1, startFailed=0, completed=0, failureMessage=''} RoleStatus{name='MEMCACHED', key=1, minimum=0, maximum=1, desired=1, actual=1, requested=0, releasing=0, failed=0, started=0, startFailed=0, completed=0, failureMessage=''} 2017-04-28 18:45:46,826 [RoleLaunchService-007] INFO agent.AgentProviderService - Build launch context for Agent 2017-04-28 18:45:46,830 [RoleLaunchService-007] INFO agent.AgentProviderService - AGENT_WORK_ROOT set to $PWD 2017-04-28 18:45:46,830 [RoleLaunchService-007] INFO agent.AgentProviderService - AGENT_LOG_ROOT set to <LOG_DIR> 2017-04-28 18:45:46,830 [RoleLaunchService-007] INFO agent.AgentProviderService - PYTHONPATH set to ./infra/agent/slider-agent/ 2017-04-28 18:45:46,846 [RoleLaunchService-007] INFO agent.AgentProviderService - Using ./infra/agent/slider-agent/agent/main.py for agent. 2017-04-28 18:45:46,852 [RoleLaunchService-007] INFO appmaster.RoleLaunchService - Starting container with command: python ./infra/agent/slider-agent/agent/main.py --label container_1493405038155_0001_01_000002___MEMCACHED --zk-quorum localhost:2181 --zk-reg-path /registry/users/root/services/org-apache-slider/jmemcached > <LOG_DIR>/slider-agent.out 2>&1 ; 2017-04-28 18:45:46,852 [RoleLaunchService-007] INFO appmaster.RoleLaunchService - Container launch delay for MEMCACHED set to 0 seconds 2017-04-28 18:45:46,906 [AmExecutor-006] WARN appmaster.SliderAppMaster - No delegation tokens obtained and set for launch context 2017-04-28 18:45:46,984 [org.apache.hadoop.yarn.client.api.async.impl.NMClientAsyncImpl #0] INFO impl.NMClientAsyncImpl - Processing Event EventType: START_CONTAINER for Container container_1493405038155_0001_01_000002 2017-04-28 18:45:46,987 [org.apache.hadoop.yarn.client.api.async.impl.NMClientAsyncImpl #0] INFO impl.ContainerManagementProtocolProxy - Opening proxy : quickstart.cloudera:42111 2017-04-28 18:45:47,066 [org.apache.hadoop.yarn.client.api.async.impl.NMClientAsyncImpl #0] INFO appmaster.SliderAppMaster - Started Container container_1493405038155_0001_01_000002 2017-04-28 18:45:47,228 [org.apache.hadoop.yarn.client.api.async.impl.NMClientAsyncImpl #0] INFO appmaster.SliderAppMaster - Deployed instance of role MEMCACHED onto container_1493405038155_0001_01_000002 2017-04-28 18:45:47,229 [AmExecutor-006] INFO appmaster.SliderAppMaster - Registering component container_1493405038155_0001_01_000002 2017-04-28 18:45:47,232 [org.apache.hadoop.yarn.client.api.async.impl.NMClientAsyncImpl #1] INFO impl.NMClientAsyncImpl - Processing Event EventType: QUERY_CONTAINER for Container container_1493405038155_0001_01_000002 2017-04-28 18:45:47,232 [org.apache.hadoop.yarn.client.api.async.impl.NMClientAsyncImpl #1] INFO impl.ContainerManagementProtocolProxy - Opening proxy : quickstart.cloudera:42111 2017-04-28 18:45:47,243 [AmExecutor-006] INFO zk.RegistryOperationsService - Bound at /users/root/services/org-apache-slider/jmemcached/components/container-1493405038155-0001-01-000002 : ServiceRecord{description='MEMCACHED'; external endpoints: {}; internal endpoints: {}, attributes: {"yarn:id"="container-1493405038155-0001-01-000002" "yarn:persistence"="container" }} 2017-04-28 18:47:44,870 [Thread-37] WARN agent.HeartbeatMonitor - Component ComponentInstanceState{containerIdAsString='container_1493405038155_0001_01_000002', state=INIT, failuresSeen=0, lastHeartbeat=1493405146852, containerState=UNHEALTHY, componentName='MEMCACHED'} marked UNHEALTHY. Last heartbeat received at 1493405146852 approx. 118017 ms. back. 2017-04-28 18:48:44,872 [Thread-37] WARN agent.HeartbeatMonitor - Component ComponentInstanceState{containerIdAsString='container_1493405038155_0001_01_000002', state=INIT, failuresSeen=0, lastHeartbeat=1493405146852, containerState=HEARTBEAT_LOST, componentName='MEMCACHED'} marked HEARTBEAT_LOST. Last heartbeat received at 1493405146852 approx. 178020 ms. back. 2017-04-28 18:48:44,873 [AmExecutor-006] INFO appmaster.SliderAppMaster - containerLostContactWithProvider: container container_1493405038155_0001_01_000002 lost 2017-04-28 18:48:44,875 [AmExecutor-006] INFO appmaster.SliderAppMaster - Container released; triggering review 2017-04-28 18:48:44,875 [AmExecutor-006] INFO state.AppState - Reviewing RoleStatus{name='MEMCACHED', key=1, minimum=0, maximum=1, desired=1, actual=1, requested=0, releasing=1, failed=0, started=1, startFailed=0, completed=0, failureMessage=''} : expected 1 2017-04-28 18:48:45,282 [AMRM Callback Handler Thread] INFO appmaster.SliderAppMaster - onContainersCompleted([1] 2017-04-28 18:48:45,282 [AMRM Callback Handler Thread] INFO appmaster.SliderAppMaster - Container Completion for containerID=container_1493405038155_0001_01_000002, state=COMPLETE, exitStatus=-100, diagnostics=Container released by application 2017-04-28 18:48:45,283 [AMRM Callback Handler Thread] INFO state.AppState - Container was queued for release : container_1493405038155_0001_01_000002 2017-04-28 18:48:45,283 [AMRM Callback Handler Thread] INFO state.AppState - decrementing role count for role MEMCACHED to 0; releasing=0, completed=0 2017-04-28 18:48:45,737 [AMRM Callback Handler Thread] INFO state.AppState - Removing node ID container_1493405038155_0001_01_000002 2017-04-28 18:48:45,738 [AmExecutor-006] INFO appmaster.SliderAppMaster - Unregistering component container_1493405038155_0001_01_000002 ________________________________ From: Billie Rinaldi <billie.rina...@gmail.com> Sent: Friday, April 28, 2017 3:23 PM To: dev@slider.incubator.apache.org Subject: Re: Slider fails to launch the memcached container in my version of the example, Registration Response gets a Error 415 Unsupported Media Type I tried spinning up a memcached app and did not encounter this issue. I don't really see anything wrong with your configuration. We do not recommend trying to use a custom agent.ini, so I'd remove that. Also you don't have to specify --manager localhost:8032 in the Slider create command when Slider is reading that info from the yarn-site.xml. I don't expect those changes to affect the issue you're seeing, though. What version of Python are you using? What does the AM log say? On Thu, Apr 27, 2017 at 5:47 PM, Foolish Ewe <foolish...@hotmail.com> wrote: > Hello All: > > > First, thanks to Billie Rinaldi for the previous help, however I am still > trying to get the memcached example to work in my slider environment and I > could use some guidance as to whether there is some configuration error or > an actual slider issue. > > Informally it looks like the application master container is launched but > the container that is supposed to launch memcached is failing at > registration time, in particular, after adding some logging, I wee that the > Registration Response is as follows: > > INFO 2017-04-27 21:58:40,722 Controller.py:140 - Registration response = > '<html>\n<head>\n<meta http-equiv="Content-Type" content="text/html; > charset=ISO-8859-1"/>\n<title>Error 415 Unsupported Media > Type</title>\n</head>\n<body><h2>HTTP ERROR 415</h2>\n<p>Problem > accessing > /ws/v1/slider/agents/container_1493330089109_0001_01_000002___MEMCACHED/register. > Reason:\n<pre> Unsupported Media Type</pre></p><hr /><i><small>Powered > by Jetty://</small></i><br/> > \n<br/> \n<br/> > \n<br/> > \n<br/> > \n<br/> \n<br/> > \n<br/> > \n<br/> > \n<br/> \n<br/> > \n<br/> > \n<br/> > \n<br/> \n<br/> > \n<br/> > \n<br/> > \n<br/> \n<br/> > \n<br/> > \n\n</body>\n</html>\n' > > > > > Here is a more detailed description of what I did and my configuration. I > run the following commands in a single node docker instance (effectively on > a logical edge node): > > To install the package I run the command: > > /usr/lib/slider/bin/slider install-package --package > /tmp/mybuild/incubator-slider/app-packages/memcached/jmemcached-1.0.1.zip > --name jmemcached --debug --replacepkg > > To launch the package I run the command: > > /usr/lib/slider/bin/slider create jmemcached --template > /tmp/mybuild/incubator-slider/app-packages/memcached/appConfig.json > --resources > /tmp/mybuild/incubator-slider/app-packages/memcached/resources-default.json > --manager localhost:8032 --debug > > Where the configuration files read: > > [root@quickstart mybuild]# cat /tmp/mybuild/incubator-slider/ > app-packages/memcached/appConfig.json > > { > > "schema": "http://example.org/specification/v2.0.0", > > "metadata": { > > }, > > "global": { > > "agent.conf": "artifacts/agent/conf/agent.ini", > > "application.def": ".slider/package/jmemcached/jmemcached-1.0.1.zip", > > "java_home": "/usr/lib/jvm/java/", > > "site.global.additional_cp": "", > > "site.global.xmx_val": "256m", > > "site.global.xms_val": "128m", > > "site.global.memory_val": "200M", > > "site.global.listen_port": "11211" > > }, > > "components": { > > "slider-appmaster": { > > "jvm.heapsize": "256M" > > } > > } > > } > > [root@quickstart mybuild]# cat /tmp/mybuild/incubator-slider/ > app-packages/memcached/resources-default.json > > { > > "schema" : "http://example.org/specification/v2.0.0", > > "metadata" : { > > }, > > "global" : { > > }, > > "components": { > > "slider-appmaster": { > > }, > > "MEMCACHED": { > > "yarn.role.priority": "1", > > "yarn.component.instances": "1", > > "yarn.memory": "256" > > } > > } > > } > > [root@quickstart mybuild]# cat ./incubator-slider/app-package > s/memcached/metainfo.xml > > <?xml version="1.0"?> > > <!-- > > Licensed to the Apache Software Foundation (ASF) under one or more > > contributor license agreements. See the NOTICE file distributed with > > this work for additional information regarding copyright ownership. > > The ASF licenses this file to You under the Apache License, Version 2.0 > > (the "License"); you may not use this file except in compliance with > > the License. You may obtain a copy of the License at > > > http://www.apache.org/licenses/LICENSE-2.0 Apache License 2.0 - Apache Software Foundation<http://www.apache.org/licenses/LICENSE-2.0> www.apache.org Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions ... Apache License 2.0 - Apache Software Foundation<http://www.apache.org/licenses/LICENSE-2.0> Apache License 2.0 - Apache Software Foundation<http://www.apache.org/licenses/LICENSE-2.0> www.apache.org Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions ... www.apache.org<http://www.apache.org> Welcome to The Apache Software Foundation!<http://www.apache.org/> www.apache.org Open. The Apache Software Foundation. provides support for the Apache Community of open-source software projects, which provide software products for the public good. Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions ... Apache Licenses - Apache Software Foundation<http://www.apache.org/licenses/> www.apache.org The Apache Software Foundation uses various licenses to distribute software and documentation, to accept regular contributions from individuals and corporations, and ... > > > Unless required by applicable law or agreed to in writing, software > > distributed under the License is distributed on an "AS IS" BASIS, > > WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. > > See the License for the specific language governing permissions and > > limitations under the License. > > --> > > > <metainfo> > > <schemaVersion>2.0</schemaVersion> > > <application> > > <name>MEMCACHED</name> > > <comment>Memcache is a network accessible key/value storage system, > often used as a distributed cache.</comment> > > <!-- Changed version to see if I can get a hand built fat jar to work, > where I control dependencies > > <version>1.0.0</version> > > --> > > <version>1.0.1-SNAPSHOT-jar-with-dependencies</version> > > <exportedConfigs>None</exportedConfigs> > > <exportGroups> > > <exportGroup> > > <name>Servers</name> > > <exports> > > <export> > > <name>host_port</name> > > <value>${MEMCACHED_HOST}:${site.global.listen_port}</value> > > </export> > > </exports> > > </exportGroup> > > </exportGroups> > > > <components> > > <component> > > <name>MEMCACHED</name> > > <category>MASTER</category> > > <compExports>Servers-host_port</compExports> > > <commandScript> > > <script>scripts/memcached.py</script> > > <scriptType>PYTHON</scriptType> > > </commandScript> > > </component> > > </components> > > > <osSpecifics> > > <osSpecific> > > <osType>any</osType> > > <packages> > > <package> > > <type>tarball</type> > > <name>files/jmemcached-1.0.1.tar</name> > > </package> > > </packages> > > </osSpecific> > > </osSpecifics> > > > </application> > > </metainfo> > > I did some code diving and enhance the logging, based on earlier > observations: > In Controller.py I added some logging, in particular look at the > Registration Response and to determine if the registerUrl was well formed. > > self.registerUrl = self.server_url + SLIDER_PATH_AGENTS + self.label + > SLIDER_REL_PATH_REGISTER > > #Some code omitted > > while not self.isRegistered: > try: > data = json.dumps(self.register.build( > self.componentActualState, > self.componentExpectedState, > self.actionQueue.customServiceOrchestrator.allocated_ports, > self.actionQueue.customServiceOrchestrator.log_folders, > self.tags, > id)) > logger.info("Registering with the server at " + self.registerUrl + > " with data " + pprint.pformat(data)) > response = self.sendRequest(self.registerUrl, data) > logger.info("Registration response = " + pprint.pformat(response)) > logger.info("Dumping dir(self) = " + pprint.pformat(dir(self))) > logger.info("Dumping vars(self) = " + pprint.pformat(vars(self))) > logger.info("Dumping vars(self.config" + > pprint.pformat(vars(self.config))) > regResp = json.loads(response) > > The logs indicated several HTTP 415 error responses, that seemed to > prevent the launch. > > INFO 2017-04-27 21:58:40,606 Controller.py:138 - Registering with the > server at https://quickstart.cloudera:42131/ws/v1/slider/agents/contai > ner_1493330089109_0001_01_000002___MEMCACHED/register with data > '{"actualState": 0, "logFolders": {}, "agentVersion": "1", > "allocatedPorts": {}, "timestamp": 1493330320605, "expectedState": 0, > "tags": "", "responseId": -1, "publicHostname": "quickstart.cloudera", > "label": "container_1493330089109_0001_01_000002___MEMCACHED"}' > > > [ Lines removed to reduce log noise] > > INFO 2017-04-27 21:58:40,722 Controller.py:140 - Registration response = > '<html>\n<head>\n<meta http-equiv="Content-Type" content="text/html; > charset=ISO-8859-1"/>\n<title>Error 415 Unsupported Media > Type</title>\n</head>\n<body><h2>HTTP ERROR 415</h2>\n<p>Problem > accessing > /ws/v1/slider/agents/container_1493330089109_0001_01_000002___MEMCACHED/register. > Reason:\n<pre> Unsupported Media Type</pre></p><hr /><i><small>Powered > by Jetty://</small></i><br/> > \n<br/> \n<br/> > \n<br/> > \n<br/> > \n<br/> \n<br/> > \n<br/> > \n<br/> > \n<br/> \n<br/> > \n<br/> > \n<br/> > \n<br/> \n<br/> > \n<br/> > \n<br/> > \n<br/> \n<br/> > \n<br/> > \n\n</body>\n</html>\n' > [Lines removed here to reduce log noise] > INFO 2017-04-27 21:58:40,724 Controller.py:143 - Dumping > vars(self.config{'label': 'container_1493330089109_0001_ > 01_000002___MEMCACHED', > 'logroot': '/var/log/hadoop-yarn/containers/application_1493330089109_ > 0001/container_1493330089109_0001_01_000002', > 'workroot': '/var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/root > /appcache/application_1493330089109_0001/container_149333008 > 9109_0001_01_000002'} > INFO 2017-04-27 21:58:40,725 Controller.py:185 - Unable to connect to: > https://quickstart.cloudera:42131/ws/v1/slider/agents/contai > ner_1493330089109_0001_01_000002___MEMCACHED/register > Traceback (most recent call last): > File "/var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/root > /appcache/application_1493330089109_0001/filecache/21/ > slider-agent.tar.gz/slider-agent/agent/Controller.py", line 144, in > registerWithServer > regResp = json.loads(response) > File "/usr/lib64/python2.7/json/__init__.py", line 338, in loads > return _default_decoder.decode(s) > File "/usr/lib64/python2.7/json/decoder.py", line 366, in decode > obj, end = self.raw_decode(s, idx=_w(s, 0).end()) > File "/usr/lib64/python2.7/json/decoder.py", line 384, in raw_decode > raise ValueError("No JSON object could be decoded") > ValueError: No JSON object could be decoded > > > I did some code diving and enhance the logging, where I put strings in a > python list and dump the information once the logging output is configured > (hence the multiple logged messages at line 265). > i.e, main.py has: > > def main(): > parser = OptionParser() > parser.add_option("-v", "--verbose", dest="verbose", help="verbose log > output", default=False) > parser.add_option("-l", "--label", dest="label", help="label of the > agent", default=None) > parser.add_option("--zk-quorum", dest=Constants.ZK_QUORUM, > help="Zookeeper Quorum", default=None) > parser.add_option("--zk-reg-path", dest=Constants.ZK_REG_PATH, > help="Zookeeper Registry Path", default=None) > parser.add_option("--debug", dest="debug", help="Agent debug hint", > default="") > (options, args) = parser.parse_args() > preLogConfigStrs = ["after parse_args, args = " + pprint.pformat(args), > "after parse_args, options = " + pprint.pformat(options), > "after parse_args, vars(options) = " + pprint.pformat(vars(options)), > "after parse_args, sys.argv = " + pprint.pformat(sys.argv)] > > #some code omitted > > logger.info("Using AGENT_WORK_ROOT = " + options.root_folder) > logger.info("Using AGENT_LOG_ROOT = " + options.log_folder) > logger.info("logFile = " + repr(logFile)) > logger.info("Dumping data to log acquired before logging configuration > was complete") > for str in preLogConfigStrs: > logger.info(str) > > Further inspection of the failed containers launching jmemcached, shows > that the command line arguments have the > > INFO 2017-04-27 21:58:40,285 main.py:97 - Newloglevel=logging.DEBUG > INFO 2017-04-27 21:58:40,285 main.py:260 - Using AGENT_WORK_ROOT = > /var/lib/hadoop-yarn/cache/yarn/nm-local-dir/usercache/root/ > appcache/application_1493330089109_0001/container_1493330089 > 109_0001_01_000002 > INFO 2017-04-27 21:58:40,285 main.py:261 - Using AGENT_LOG_ROOT = > /var/log/hadoop-yarn/containers/application_1493330089109_ > 0001/container_1493330089109_0001_01_000002 > INFO 2017-04-27 21:58:40,285 main.py:262 - logFile = > '/var/log/hadoop-yarn/containers/application_1493330089109_ > 0001/container_1493330089109_0001_01_000002/./slider-agent.log' > INFO 2017-04-27 21:58:40,285 main.py:263 - Dumping data to log acquired > before logging configuration was complete > INFO 2017-04-27 21:58:40,285 main.py:265 - after parse_args, args = [] > INFO 2017-04-27 21:58:40,285 main.py:265 - after parse_args, options = > <Values at 0x2bde2d8: {'debug': '', 'zk_quorum': 'localhost:2181', > 'zk_reg_path': '/registry/users/root/services > /org-apache-slider/jmemcached', 'verbose': False, 'label': > 'container_1493330089109_0001_01_000002___MEMCACHED'}> > INFO 2017-04-27 21:58:40,285 main.py:265 - after parse_args, vars(options) > = {'debug': '', > 'label': 'container_1493330089109_0001_01_000002___MEMCACHED', > 'verbose': False, > 'zk_quorum': 'localhost:2181', > 'zk_reg_path': '/registry/users/root/services > /org-apache-slider/jmemcached'} > INFO 2017-04-27 21:58:40,285 main.py:265 - after parse_args, sys.argv = > ['./infra/agent/slider-agent/agent/main.py', > '--label', > 'container_1493330089109_0001_01_000002___MEMCACHED', > '--zk-quorum', > 'localhost:2181', > '--zk-reg-path', > '/registry/users/root/services/org-apache-slider/jmemcached'] > > > I'm still trying to get to the bottom of this, any ideas of what should be > done next? > > > With best regards: > > > Bill >