Unable to Get Kylo UI to work properly.

Description

Hello Kylo Support,

We are trying to install Kylo 0.8.2 on CDH 5.10.2 on a 5 node cluster using RHEL 7.3 using m4.xlarge configuration.

1 - NameNode
3 - Data Nodes
1 - Edge node

We are installing Kylo using the instructions found here:

http://kylo.readthedocs.io/en/v0.8.2/installation/KyloManualDeploymentGuide.html

We used the setup-wizard and online options to install it on the edge node. We further let kylo install the JDK 1.8 as CDH 5.10.2 is using JDK 7. It installed it under /opt/java and we let the setup wizard setup all other components, nifi, activemq, elasticsearch, etc all on the single edge node.

Installation goes well. However, when we try to do any data transformations, we get the following error ->

Visual Query -> Select our Hive Database -> Add Table -> Continue (The screen renders for a bit and finally errors out)

Error executing the query

An error occurred while executing the transformation
An unexpected error occurred An error occurred while executing the transformation.

In the /var/log/kylo-services, we see:

2017-08-11 11:39:48 INFO http-nio-8420-exec-2BCPConnectionPoolTableInfo:259 - describing Table brainergydev.test1 against Controller Service: BrainergyDev (ce59445c-015d-1000-c974-90166df73275) with uri of jdbc:hive2://ec2-35-182-72-15.ca-central-1.compute.amazonaws.com:10000/brainergydev
2017-08-11 11:40:10 ERROR http-nio-8420-exec-9:JerseyRestClient:367 - Failed to process request /api/v1/spark/shell/transform/fc085d0734ca4af593ce1ca81318caf1
javax.ws.rs.InternalServerErrorException: HTTP 500 Internal Server Error
at org.glassfish.jersey.client.JerseyInvocation.convertToException(JerseyInvocation.java:1020)
at org.glassfish.jersey.client.JerseyInvocation.translate(JerseyInvocation.java:816)
at org.glassfish.jersey.client.JerseyInvocation.access$700(JerseyInvocation.java:92)
at org.glassfish.jersey.client.JerseyInvocation$2.call(JerseyInvocation.java:700)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:228)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:444)
at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:696)
at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:420)
at org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:316)
at com.thinkbiganalytics.rest.JerseyRestClient.get(JerseyRestClient.java:361)
at com.thinkbiganalytics.rest.JerseyRestClient.get(JerseyRestClient.java:343)
at com.thinkbiganalytics.spark.shell.JerseySparkShellRestClient.getTable(JerseySparkShellRestClient.java:57)
at com.thinkbiganalytics.spark.rest.controller.SparkShellProxyController.getTable(SparkShellProxyController.java:148)
at sun.reflect.GeneratedMethodAccessor427.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161)
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160)
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)
at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.process(Errors.java:267)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)
at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473)
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)

In the spark.err log, we don't see much, eg:

08:44:21,204 Utils.parseURL: Resolved authority: ec2-35-182-72-15.ca-central-1.compute.amazonaws.com:10000
11:39:57,530 SparkScriptEngine.execute: Executing script:
class Script (engine: com.thinkbiganalytics.spark.repl.ScriptEngine) extends com.thinkbiganalytics.spark.repl.Script (engine) {
override def eval (): Any = {
class Transform (destination: String, profiler: com.thinkbiganalytics.spark.dataprofiler.Profiler, sqlContext: org.apache.spark.sql.SQLContext, sparkContextService: com.thinkbiganalytics.spark.SparkContextService) extends com.thinkbiganalytics.spark.metadata.TransformScript16(destination, profiler, sqlContext, sparkContextService) {
override def dataFrame: org.apache.spark.sql.DataFrame = {import org.apache.spark.sql._
val tbl10 = datasourceProvider.getTableFromDatasource("brainergydev.test1", "74b8553a-818f-47e7-be81-a9d81b7e42b6", sqlContext).alias("tbl10")
var df = tbl10.select(tbl10.col("r1"))
df = df.limit(1000)
df
}
}
new Transform(tableName, profiler, sqlContext, sparkContextService).run()
}
def profiler (): com.thinkbiganalytics.spark.dataprofiler.Profiler = getValue("profiler")
def sparkContextService (): com.thinkbiganalytics.spark.SparkContextService = getValue("sparkContextService")
def tableName (): String = getValue("tableName")
def datasourceProvider (): com.thinkbiganalytics.spark.shell.DatasourceProvider[org.apache.spark.sql.DataFrame] = getValue("datasourceProvider")
}
new Script(engine).run()

11:39:57,747 Utils.parseURL: Supplied authorities: <hostname>:10000
11:39:57,747 Utils.parseURL: Resolved authority: <hostname>::10000

It seems like that the job gets submitted, but never get's executed properly under spark. I can run spark-shell and issue sqlcontext queries using it manually from the edge node, but this one we can't get it to run.

Environment

None

Status

Assignee

Greg Hart

Reporter

samir kapoor

Labels

None

Reviewer

None

Story point estimate

None

Components

Affects versions

Priority

Highest
Configure