Ah, I got this failure to find commons-cli the first time I tried to run it. I got around it by adding the hadoop common lib dir under the additional_cp property (the path will be different on your VM): "site.global.additional_cp": "/usr/local/share/hadoop/share/hadoop/common/lib/*"
On Mon, May 1, 2017 at 9:45 AM, Foolish Ewe <foolish...@hotmail.com> wrote: > 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 > > >