Created 02-08-2019 01:05 AM
Hello every one.
I try to use Docker on YARN.
I want to know how to manage the docker container application on YARN.
My Environment :
My Node count : 1 (This is pseudo distributed mode)
My Node has below components :
I have tried below.
https://jp.hortonworks.com/blog/trying-containerized-applications-apache-hadoop-yarn-3-1/
To use docker on YARN, I have to configure two files, yarn-site.xml and container-executor.cfg.
Below is my configuration.
■ yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>my-hdp01</value>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>3</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>1536</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>1536</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>128</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>my-hdp01:8050</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>my-hdp01:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>my-hdp01:8025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>my-hdp01:8141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>my-hdp01:8088</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>1024</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.log.retain-seconds</name>
<value>10800</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir</name>
<value>/app-logs</value>
</property>
<property>
<name>yarn.nodemanager.remote-app-log-dir-suffix</name>
<value>logs</value>
</property>
<property>
<name>yarn.nodemanager.health-checker.interval-ms</name>
<value>135000</value>
</property>
<property>
<name>yarn.nodemanager.health-checker.script.timeout-ms</name>
<value>60000</value>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/var/local/hadoop/cache/hadoop/nm-local-dir</value>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>/home/hadoop/hadoop-3.1.1/logs/userlogs</value>
</property>
<!-- Docker on YARN configuration properties -->
<property>
<name>yarn.nodemanager.container-executor.class</name>
<value>org.apache.hadoop.yarn.server.nodemanager.LinuxContainerExecutor</value>
<description>
This is the container executor setting that ensures that all applications
are started with the LinuxContainerExecutor.
</description>
</property>
<property>
<name>yarn.nodemanager.linux-container-executor.group</name>
<value>hadoop</value>
<description>
The POSIX group of the NodeManager. It should match the setting in
"container-executor.cfg". This configuration is required for validating
the secure access of the container-executor binary.
</description>
</property>
<property>
<name>yarn.nodemanager.linux-container-executor.nonsecure-mode.limit-users</name>
<value>true</value>
<description>
Whether all applications should be run as the NodeManager process' owner.
When false, applications are launched instead as the application owner.
</description>
</property>
<property>
<name>yarn.nodemanager.linux-container-executor.nonsecure-mode.local-user</name>
<value>nobody</value>
</property>
<property>
<name>yarn.nodemanager.runtime.linux.allowed-runtimes</name>
<value>default,docker</value>
<description>
Comma separated list of runtimes that are allowed when using
LinuxContainerExecutor. The allowed values are default, docker, and
javasandbox.
</description>
</property>
<property>
<name>yarn.nodemanager.runtime.linux.docker.allowed-container-networks</name>
<value>host,none,bridge</value>
<description>
Optional. A comma-separated set of networks allowed when launching
containers. Valid values are determined by Docker networks available from
`docker network ls`
</description>
</property>
<property>
<name>yarn.nodemanager.runtime.linux.docker.default-container-network</name>
<value>host</value>
<description>
The network used when launching Docker containers when no
network is specified in the request. This network must be one of the
(configurable) set of allowed container networks.
</description>
</property>
<property>
<name>yarn.nodemanager.runtime.linux.docker.privileged-containers.allowed</name>
<value>false</value>
<description>
Optional. Whether applications are allowed to run in privileged
containers.
</description>
</property>
<property>
<name>yarn.nodemanager.runtime.linux.docker.privileged-containers.acl</name>
<value></value>
<description>
Optional. A comma-separated list of users who are allowed to request
privileged contains if privileged containers are allowed.
</description>
</property>
<property>
<name>yarn.nodemanager.runtime.linux.docker.capabilities</name>
<value>CHOWN,DAC_OVERRIDE,FSETID,FOWNER,MKNOD,NET_RAW,SETGID,SETUID,SETFCAP,SETPCAP,NET_BIND_SERVICE,SYS_CHROOT,KILL,AUDIT_WRITE</value>
<description>
Optional. This configuration setting determines the capabilities
assigned to docker containers when they are launched. While these may not
be case-sensitive from a docker perspective, it is best to keep these
uppercase. To run without any capabilites, set this value to
"none" or "NONE"
</description>
</property>
</configuration>
■ container-executor.cfg
yarn.nodemanager.local-dirs=/var/local/hadoop/cache/hadoop/nm-local-dir yarn.nodemanager.log-dirs=/home/hadoop/hadoop-3.1.1/logs/userlogs yarn.nodemanager.linux-container-executor.group=hadoop # configured value of yarn.nodemanager.linux-container-executor.group banned.users=hdfs,yarn,mapred,bin # comma separated list of users who can not run applications min.user.id=50 # Prevent other super-users # allowed.system.users=# # comma separated list of system users who CAN run applications # feature.tc.enabled=1 # The configs below deal with settings for Docker [docker] module.enabled=true # enable/disable the module. set to "true" to enable, disabled by default docker.binary=/usr/bin/docker docker.allowed.capabilities=CHOWN,DAC_OVERRIDE,FSETID,FOWNER,MKNOD,NET_RAW,SETGID,SETUID,SETFCAP,SETPCAP,NET_BIND_SERVICE,SYS_CHROOT,KILL,AUDIT_WRITE,DAC_READ_SEARCH,SYS_PTRACE,SYS_ADMIN # docker.allowed.devices=## comma seperated list of devices that can be mounted into a container docker.allowed.networks=bridge,host,none ## comma seperated networks that can be used. e.g bridge,host,none docker.allowed.ro-mounts=/sys/fs/cgroup,/var/local/hadoop/cache/hadoop/nm-local-dir ## comma seperated volumes that can be mounted as read-only docker.allowed.rw-mounts=/var/local/hadoop/cache/hadoop/nm-local-dir,/home/hadoop/hadoop-3.1.1/logs/userlogs ## comma seperate volumes that can be mounted as read-write, add the yarn local and log dirs to this list to run Hadoop jobs docker.trusted.registries=local,local/centos # docker.privileged-containers.enabled=false # docker.allowed.volume-drivers=## comma seperated list of allowed volume-drivers # docker.no-new-privileges.enabled=## enable/disable the no-new-privileges flag for docker run. Set to "true" to enable, disabled by default # The configs below deal with settings for FPGA resource #[fpga] # module.enabled=## Enable/Disable the FPGA resource handler module. set to "true" to enable, disabled by default # fpga.major-device-number=## Major device number of FPGA, by default is 246. Strongly recommend setting this # fpga.allowed-device-minor-numbers=## Comma separated allowed minor device numbers, empty means all FPGA devices managed by YARN.
Next, I set below Environment variables.
Then, I executed below command with reference to upper URL.
$ yarn jar $DSHELL_JAR \ -shell_env YARN_CONTAINER_RUNTIME_TYPE="$RUNTIME" \ -shell_env YARN_CONTAINER_RUNTIME_DOCKER_IMAGE="$DOCKER_IMAGE" \ -shell_command $DSHELL_CMD \ -jar $DSHELL_JAR \ -num_containers $NUM_OF_CONTAINERS
The result is below.
hadoop@my-hdp01:~/hadoop-3.1.1$ yarn jar $DSHELL_JAR -shell_env YARN_CONTAINER_RUNTIME_TYPE="$RUNTIME" -shell_env YARN_CONTAINER_RUNTIME_DOCKER_IMAGE="$DOCKER_IMAGE" -shell_command $DSHELL_CMD -jar $DSHELL_JAR -num_containers $NUM_OF_CONTAINERS
2019-02-05 17:43:09,271 INFO distributedshell.Client: Initializing Client
2019-02-05 17:43:09,282 INFO distributedshell.Client: Running Client
2019-02-05 17:43:09,805 INFO client.RMProxy: Connecting to ResourceManager at my-hdp01/192.168.56.2:8050
2019-02-05 17:43:10,530 INFO distributedshell.Client: Got Cluster metric info from ASM, numNodeManagers=1
2019-02-05 17:43:10,564 INFO distributedshell.Client: Got Cluster node info from ASM
2019-02-05 17:43:10,568 INFO distributedshell.Client: Got node report from ASM for, nodeId=my-hdp01:43059, nodeAddress=my-hdp01:8042, nodeRackName=/default-rack, nodeNumContainers=0
2019-02-05 17:43:10,612 INFO distributedshell.Client: Queue info, queueName=default, queueCurrentCapacity=0.0, queueMaxCapacity=1.0, queueApplicationCount=0, queueChildQueueCount=0
2019-02-05 17:43:10,638 INFO distributedshell.Client: User ACL Info for Queue, queueName=root, userAcl=SUBMIT_APPLICATIONS
2019-02-05 17:43:10,639 INFO distributedshell.Client: User ACL Info for Queue, queueName=root, userAcl=ADMINISTER_QUEUE
2019-02-05 17:43:10,639 INFO distributedshell.Client: User ACL Info for Queue, queueName=default, userAcl=SUBMIT_APPLICATIONS
2019-02-05 17:43:10,639 INFO distributedshell.Client: User ACL Info for Queue, queueName=default, userAcl=ADMINISTER_QUEUE
2019-02-05 17:43:10,692 INFO distributedshell.Client: Max mem capability of resources in this cluster 2048
2019-02-05 17:43:10,693 INFO distributedshell.Client: Max virtual cores capability of resources in this cluster 4
2019-02-05 17:43:10,712 WARN distributedshell.Client: AM Memory not specified, use 100 mb as AM memory
2019-02-05 17:43:10,712 WARN distributedshell.Client: AM vcore not specified, use 1 mb as AM vcores
2019-02-05 17:43:10,712 WARN distributedshell.Client: AM Resource capability=<memory:100, vCores:1>
2019-02-05 17:43:10,713 INFO distributedshell.Client: Copy App Master jar from local filesystem and add to local environment
2019-02-05 17:43:12,361 INFO distributedshell.Client: Set the environment for the application master
2019-02-05 17:43:12,362 INFO distributedshell.Client: Setting up app master command
2019-02-05 17:43:12,363 INFO distributedshell.Client: Completed setting up app master command {{JAVA_HOME}}/bin/java -Xmx100m org.apache.hadoop.yarn.applications.distributedshell.ApplicationMaster --container_type GUARANTEED --container_memory 10 --container_vcores 1 --num_containers 1 --priority 0 --shell_env YARN_CONTAINER_RUNTIME_TYPE=docker --shell_env YARN_CONTAINER_RUNTIME_DOCKER_IMAGE=local/centos:latest 1><LOG_DIR>/AppMaster.stdout 2><LOG_DIR>/AppMaster.stderr
2019-02-05 17:43:12,385 INFO distributedshell.Client: Submitting application to ASM
2019-02-05 17:43:12,495 INFO impl.YarnClientImpl: Submitted application application_1549355593168_0002
2019-02-05 17:43:13,507 INFO distributedshell.Client: Got application report from ASM for, appId=2, clientToAMToken=null, appDiagnostics=AM container is launched, waiting for AM container to Register with RM, appMasterHost=N/A, appQueue=default, appMasterRpcPort=-1, appStartTime=1549356192417, yarnAppState=ACCEPTED, distributedFinalState=UNDEFINED, appTrackingUrl=http://my-hdp01:8088/proxy/application_1549355593168_0002/, appUser=hadoop
2019-02-05 17:43:14,511 INFO distributedshell.Client: Got application report from ASM for, appId=2, clientToAMToken=null, appDiagnostics=AM container is launched, waiting for AM container to Register with RM, appMasterHost=N/A, appQueue=default, appMasterRpcPort=-1, appStartTime=1549356192417, yarnAppState=ACCEPTED, distributedFinalState=UNDEFINED, appTrackingUrl=http://my-hdp01:8088/proxy/application_1549355593168_0002/, appUser=hadoop
2019-02-05 17:43:15,516 INFO distributedshell.Client: Got application report from ASM for, appId=2, clientToAMToken=null, appDiagnostics=AM container is launched, waiting for AM container to Register with RM, appMasterHost=N/A, appQueue=default, appMasterRpcPort=-1, appStartTime=1549356192417, yarnAppState=ACCEPTED, distributedFinalState=UNDEFINED, appTrackingUrl=http://my-hdp01:8088/proxy/application_1549355593168_0002/, appUser=hadoop
2019-02-05 17:43:16,522 INFO distributedshell.Client: Got application report from ASM for, appId=2, clientToAMToken=null, appDiagnostics=AM container is launched, waiting for AM container to Register with RM, appMasterHost=N/A, appQueue=default, appMasterRpcPort=-1, appStartTime=1549356192417, yarnAppState=ACCEPTED, distributedFinalState=UNDEFINED, appTrackingUrl=http://my-hdp01:8088/proxy/application_1549355593168_0002/, appUser=hadoop
2019-02-05 17:43:17,530 INFO distributedshell.Client: Got application report from ASM for, appId=2, clientToAMToken=null, appDiagnostics=AM container is launched, waiting for AM container to Register with RM, appMasterHost=N/A, appQueue=default, appMasterRpcPort=-1, appStartTime=1549356192417, yarnAppState=ACCEPTED, distributedFinalState=UNDEFINED, appTrackingUrl=http://my-hdp01:8088/proxy/application_1549355593168_0002/, appUser=hadoop
2019-02-05 17:43:18,538 INFO distributedshell.Client: Got application report from ASM for, appId=2, clientToAMToken=null, appDiagnostics=AM container is launched, waiting for AM container to Register with RM, appMasterHost=N/A, appQueue=default, appMasterRpcPort=-1, appStartTime=1549356192417, yarnAppState=ACCEPTED, distributedFinalState=UNDEFINED, appTrackingUrl=http://my-hdp01:8088/proxy/application_1549355593168_0002/, appUser=hadoop
2019-02-05 17:43:19,543 INFO distributedshell.Client: Got application report from ASM for, appId=2, clientToAMToken=null, appDiagnostics=AM container is launched, waiting for AM container to Register with RM, appMasterHost=N/A, appQueue=default, appMasterRpcPort=-1, appStartTime=1549356192417, yarnAppState=ACCEPTED, distributedFinalState=UNDEFINED, appTrackingUrl=http://my-hdp01:8088/proxy/application_1549355593168_0002/, appUser=hadoop
2019-02-05 17:43:20,548 INFO distributedshell.Client: Got application report from ASM for, appId=2, clientToAMToken=null, appDiagnostics=, appMasterHost=my-hdp01/192.168.56.2, appQueue=default, appMasterRpcPort=-1, appStartTime=1549356192417, yarnAppState=RUNNING, distributedFinalState=UNDEFINED, appTrackingUrl=http://my-hdp01:8088/proxy/application_1549355593168_0002/, appUser=hadoop
2019-02-05 17:43:21,552 INFO distributedshell.Client: Got application report from ASM for, appId=2, clientToAMToken=null, appDiagnostics=, appMasterHost=my-hdp01/192.168.56.2, appQueue=default, appMasterRpcPort=-1, appStartTime=1549356192417, yarnAppState=RUNNING, distributedFinalState=UNDEFINED, appTrackingUrl=http://my-hdp01:8088/proxy/application_1549355593168_0002/, appUser=hadoop
2019-02-05 17:43:22,581 INFO distributedshell.Client: Got application report from ASM for, appId=2, clientToAMToken=null, appDiagnostics=, appMasterHost=my-hdp01/192.168.56.2, appQueue=default, appMasterRpcPort=-1, appStartTime=1549356192417, yarnAppState=RUNNING, distributedFinalState=UNDEFINED, appTrackingUrl=http://my-hdp01:8088/proxy/application_1549355593168_0002/, appUser=hadoop
2019-02-05 17:43:23,589 INFO distributedshell.Client: Got application report from ASM for, appId=2, clientToAMToken=null, appDiagnostics=, appMasterHost=my-hdp01/192.168.56.2, appQueue=default, appMasterRpcPort=-1, appStartTime=1549356192417, yarnAppState=RUNNING, distributedFinalState=UNDEFINED, appTrackingUrl=http://my-hdp01:8088/proxy/application_1549355593168_0002/, appUser=hadoop
2019-02-05 17:43:24,597 INFO distributedshell.Client: Got application report from ASM for, appId=2, clientToAMToken=null, appDiagnostics=, appMasterHost=my-hdp01/192.168.56.2, appQueue=default, appMasterRpcPort=-1, appStartTime=1549356192417, yarnAppState=RUNNING, distributedFinalState=UNDEFINED, appTrackingUrl=http://my-hdp01:8088/proxy/application_1549355593168_0002/, appUser=hadoop
2019-02-05 17:43:25,607 INFO distributedshell.Client: Got application report from ASM for, appId=2, clientToAMToken=null, appDiagnostics=, appMasterHost=my-hdp01/192.168.56.2, appQueue=default, appMasterRpcPort=-1, appStartTime=1549356192417, yarnAppState=RUNNING, distributedFinalState=UNDEFINED, appTrackingUrl=http://my-hdp01:8088/proxy/application_1549355593168_0002/, appUser=hadoop
2019-02-05 17:43:26,614 INFO distributedshell.Client: Got application report from ASM for, appId=2, clientToAMToken=null, appDiagnostics=, appMasterHost=my-hdp01/192.168.56.2, appQueue=default, appMasterRpcPort=-1, appStartTime=1549356192417, yarnAppState=RUNNING, distributedFinalState=UNDEFINED, appTrackingUrl=http://my-hdp01:8088/proxy/application_1549355593168_0002/, appUser=hadoop
2019-02-05 17:43:27,621 INFO distributedshell.Client: Got application report from ASM for, appId=2, clientToAMToken=null, appDiagnostics=, appMasterHost=my-hdp01/192.168.56.2, appQueue=default, appMasterRpcPort=-1, appStartTime=1549356192417, yarnAppState=RUNNING, distributedFinalState=UNDEFINED, appTrackingUrl=http://my-hdp01:8088/proxy/application_1549355593168_0002/, appUser=hadoop
2019-02-05 17:43:28,631 INFO distributedshell.Client: Got application report from ASM for, appId=2, clientToAMToken=null, appDiagnostics=, appMasterHost=my-hdp01/192.168.56.2, appQueue=default, appMasterRpcPort=-1, appStartTime=1549356192417, yarnAppState=RUNNING, distributedFinalState=UNDEFINED, appTrackingUrl=http://my-hdp01:8088/proxy/application_1549355593168_0002/, appUser=hadoop
2019-02-05 17:43:29,641 INFO distributedshell.Client: Got application report from ASM for, appId=2, clientToAMToken=null, appDiagnostics=, appMasterHost=my-hdp01/192.168.56.2, appQueue=default, appMasterRpcPort=-1, appStartTime=1549356192417, yarnAppState=FINISHED, distributedFinalState=SUCCEEDED, appTrackingUrl=http://my-hdp01:8088/proxy/application_1549355593168_0002/, appUser=hadoop
2019-02-05 17:43:29,643 INFO distributedshell.Client: Application has completed successfully. Breaking monitoring loop
2019-02-05 17:43:29,644 INFO distributedshell.Client: Application completed successfully
I confirmed that it shows "Application completed successfully" on the last part.
But I don't know how to check my docker container on YARN.
How do I confirm that YARN manages docker container application ?
Created 03-07-2019 06:16 AM
I have another error...
2019-03-07 15:09:59,925 INFO distributedshell.Client: Got application report from ASM for, appId=3, clientToAMToken=null, appDiagnostics=Application Failure: desired = 1, completed = 1, allocated = 1, failed = 1, diagnostics = [2019-03-07 15:09:53.099]Exception from container-launch. Container id: container_1551938387294_0003_01_000002 Exit code: 32 Exception message: Launch container failed Shell error output: Feature disabled: docker Shell output: main : command provided 4 main : run as user is massu main : requested yarn user is root
Can you help me ?
Created on 02-17-2020 12:49 AM - edited 02-17-2020 12:53 AM
Hi @t_masuoka , in your question you mentioned that Application completed successfully. What did you change to get the following error:
Shell error output: Feature disabled: docker
Created 03-07-2019 02:29 PM
Hi,
I tried the below URL.
https://community.hortonworks.com/articles/226331/dockerized-yarn-services-quickstart.html
But I can't lanch the Docker Container application on YARN.
I have error when I run the below command.
$ curl -X POST -H "Content-Type: application/json" http://my-hdp01.test.com:8088/app/v1/services?user.name=massu -d @yarnservice.json
ERROR↓
<html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"/> <title>Error 500 Server Error</title> </head> <body><h2>HTTP ERROR 500</h2> <p>Problem accessing /app/v1/services. Reason: <pre> Server Error</pre></p><h3>Caused by:</h3><pre>javax.servlet.ServletException: API-Service@8899a5c2==com.sun.jersey.spi.container.servlet.ServletContainer,jsp=null,order=-1,inst=false at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:664) at org.eclipse.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:499) at org.eclipse.jetty.servlet.ServletHolder.ensureInstance(ServletHolder.java:791) at org.eclipse.jetty.servlet.ServletHolder.prepare(ServletHolder.java:776) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:579) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) at org.eclipse.jetty.server.Server.handle(Server.java:534) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) at java.lang.Thread.run(Thread.java:748) Caused by: com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes. at com.sun.jersey.server.impl.application.RootResourceUriRules.<init>(RootResourceUriRules.java:99) at com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1359) at com.sun.jersey.server.impl.application.WebApplicationImpl.access$700(WebApplicationImpl.java:180) at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:799) at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:795) at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193) at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:795) at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:790) at com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:509) at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:339) at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:605) at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:207) at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:394) at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:577) at javax.servlet.GenericServlet.init(GenericServlet.java:244) at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:643) ... 26 more </pre> <h3>Caused by:</h3><pre>com.sun.jersey.api.container.ContainerException: The ResourceConfig instance does not contain any root resource classes. at com.sun.jersey.server.impl.application.RootResourceUriRules.<init>(RootResourceUriRules.java:99) at com.sun.jersey.server.impl.application.WebApplicationImpl._initiate(WebApplicationImpl.java:1359) at com.sun.jersey.server.impl.application.WebApplicationImpl.access$700(WebApplicationImpl.java:180) at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:799) at com.sun.jersey.server.impl.application.WebApplicationImpl$13.f(WebApplicationImpl.java:795) at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:193) at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:795) at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:790) at com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:509) at com.sun.jersey.spi.container.servlet.ServletContainer$InternalWebComponent.initiate(ServletContainer.java:339) at com.sun.jersey.spi.container.servlet.WebComponent.load(WebComponent.java:605) at com.sun.jersey.spi.container.servlet.WebComponent.init(WebComponent.java:207) at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:394) at com.sun.jersey.spi.container.servlet.ServletContainer.init(ServletContainer.java:577) at javax.servlet.GenericServlet.init(GenericServlet.java:244) at org.eclipse.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:643) at org.eclipse.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:499) at org.eclipse.jetty.servlet.ServletHolder.ensureInstance(ServletHolder.java:791) at org.eclipse.jetty.servlet.ServletHolder.prepare(ServletHolder.java:776) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:579) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) at org.eclipse.jetty.server.Server.handle(Server.java:534) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:108) at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) at java.lang.Thread.run(Thread.java:748) </pre> </body> </html>
Can you help me?
Created 02-17-2020 01:31 AM
Share yarnservice.json file which you are POSTing via curl.