Ошибка загрузки файла данных последовательности с использованием кода, созданного sqoop - PullRequest
0 голосов
/ 14 мая 2019

Я импортировал данные с помощью sqoop в файл последовательности, и я загружаю эти данные с помощью spark-shell.Сгенерированный код из spark имеет ссылки на классы в пакете com.cloudera.sqoop.lib.Выполнение команды в spark-shell приводит к следующей ошибке:

  val ordersRDD = sc.sequenceFile("/user/pawinder/problem1-seq/orders",classOf[org.apache.hadoop.io.IntWritable],classOf[com.problem1.retaildb.orders])
    warning: Class com.cloudera.sqoop.lib.SqoopRecord not found - continuing with a stub.
    warning: Class com.cloudera.sqoop.lib.LargeObjectLoader not found - continuing with a stub.
    warning: Class com.cloudera.sqoop.lib.LargeObjectLoader not found - continuing with a stub.
    warning: Class com.cloudera.sqoop.lib.DelimiterSet not found - continuing with a stub.
    warning: Class com.cloudera.sqoop.lib.DelimiterSet not found - continuing with a stub.
    warning: Class com.cloudera.sqoop.lib.DelimiterSet not found - continuing with a stub.
    warning: Class com.cloudera.sqoop.lib.RecordParser not found - continuing with a stub.
    error: Class com.cloudera.sqoop.lib.SqoopRecord not found - continuing with a stub.

Могу ли я поручить sqoop сгенерировать код без зависимости от пакета cloudera?Нужно ли добавлять jar-файл с пакетом com.cloudera.sqoop.lib при запуске spark-shell?Где я могу найти файл jar?Должен ли я написать код для класса значений, чтобы он не зависел от пакета com.cloudera.sqoop.lib?

Я использую cloudera quickstart vm.Большое спасибо за вашу помощь.

РЕДАКТИРОВАТЬ: проблема решена путем добавления sqoop-1.4.6.2.6.5.0-292.jar в spark2-shell

 spark-shell --jars problem1/bin/orders.jar,/usr/hdp/2.6.5.0-292/sqoop/sqoop-1.4.6.2.6.5.0-292.jar

Я попытался решить эту проблему, определив класс дел для заказов, но это не сработало.Задание MapReduce все еще содержало ссылку на классы пакета com.cloudera.sqoop

scala> case class Orders(order_id:Int,order_date:java.sql.Timestamp,customer_id:Int,status:String)
defined class Orders
scala> val ordersRDD = sc.sequenceFile("/user/pawinder/problem1-seq/orders",classOf[org.apache.hadoop.io.IntWritable],classOf[Orders])
 ordersRDD: org.apache.spark.rdd.RDD[(org.apache.hadoop.io.IntWritable, Orders)] = /user/pawinder/problem1-seq/orders HadoopRDD[0] at sequenceFile at <console>:26

scala> ordersRDD.count
    19/05/14 14:29:21 ERROR Executor: Exception in task 1.0 in stage 0.0 (TID 1)
    java.lang.NoClassDefFoundError: com/cloudera/sqoop/lib/SqoopRecord
...