spark-redis icon indicating copy to clipboard operation
spark-redis copied to clipboard

does spark-redis support in CDH?

Open pengdaolong opened this issue 5 years ago • 1 comments

mycode :

object SparkToRedisDemo {
  def main(args: Array[String]): Unit = {
    val sparkSession = SparkSession.builder()
      .config("redis.host", "192.168.1.244")
      .config("redis.port", "6379")
      .appName("spark-redis")
      .getOrCreate()
    val sc = sparkSession.sparkContext
    val datas = sparkSession.read.textFile("hdfs://hadoop1:8020/testData/input/*")
    val save = sc.parallelize(Seq[(String, String)]((datas.take(1).toBuffer.toString(), "1")))
    sc.setLogLevel("ERROR")
    sc.toRedisKV(save)
  }
}

in idea is ok ,but i pack it in CDH hue run have a error

<<< Invocation of Spark command completed <<<

No child hadoop job is executed. java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.oozie.action.hadoop.LauncherAM.runActionMain(LauncherAM.java:410) at org.apache.oozie.action.hadoop.LauncherAM.access$300(LauncherAM.java:55) at org.apache.oozie.action.hadoop.LauncherAM$2.run(LauncherAM.java:223) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1726) at org.apache.oozie.action.hadoop.LauncherAM.run(LauncherAM.java:217) at org.apache.oozie.action.hadoop.LauncherAM$1.run(LauncherAM.java:153) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:422) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1726) at org.apache.oozie.action.hadoop.LauncherAM.main(LauncherAM.java:141) Caused by: redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool at redis.clients.jedis.util.Pool.getResource(Pool.java:59) at redis.clients.jedis.JedisPool.getResource(JedisPool.java:234) at com.redislabs.provider.redis.ConnectionPool$.connect(ConnectionPool.scala:33) at com.redislabs.provider.redis.RedisEndpoint.connect(RedisConfig.scala:68) at com.redislabs.provider.redis.RedisConfig.clusterEnabled(RedisConfig.scala:181) at com.redislabs.provider.redis.RedisConfig.getNodes(RedisConfig.scala:292) at com.redislabs.provider.redis.RedisConfig.getHosts(RedisConfig.scala:208) at com.redislabs.provider.redis.RedisConfig.(RedisConfig.scala:131) at com.redislabs.provider.redis.RedisConfig$.fromSparkConf(RedisConfig.scala:119) at com.redislabs.provider.redis.RedisContext.toRedisKV$default$3(redisFunctions.scala:251) at SparkToRedisDemo$.main(SparkToRedisDemo.scala:21) at SparkToRedisDemo.main(SparkToRedisDemo.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:775) at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180) at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:119) at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) at org.apache.oozie.action.hadoop.SparkMain.runSpark(SparkMain.java:181) at org.apache.oozie.action.hadoop.SparkMain.run(SparkMain.java:93) at org.apache.oozie.action.hadoop.LauncherMain.run(LauncherMain.java:101) at org.apache.oozie.action.hadoop.SparkMain.main(SparkMain.java:60) ... 16 more Caused by: redis.clients.jedis.exceptions.JedisConnectionException: Failed connecting to host localhost:6379 at redis.clients.jedis.Connection.connect(Connection.java:204) at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:100) at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1862) at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:117) at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:819) at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:429) at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:360) at redis.clients.jedis.util.Pool.getResource(Pool.java:50) ... 40 more Caused by: java.net.ConnectException: Connection refused (Connection refused) at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at redis.clients.jedis.Connection.connect(Connection.java:181) ... 47 more Failing Oozie Launcher, Could not get a resource from the pool

i set redis.host is 192.168.18.244 but it doesn't take effect . i don't know why? can i have somebody help me ? thanks
tip sorry for my english is bad ,hope you can understand

pengdaolong avatar Feb 28 '19 09:02 pengdaolong

Hi,

The name of configuration parameters are wrong, they should be prefixed with 'spark'

    val sparkSession = SparkSession.builder()
      .config("spark.redis.host", "192.168.1.244")
      .config("spark.redis.port", "6379")
      .appName("spark-redis")
      .getOrCreate()

Documentation with available configuration parameters https://github.com/RedisLabs/spark-redis/blob/master/doc/configuration.md

fe2s avatar Mar 11 '19 05:03 fe2s