Не мога да чета от HDFS (разпределение на Intel hadoop, версията на Hadoop е 1.0.3) от spark-shell (версията на spark е 1.2.1). Създадох spark с помощта на командата mvn -Dhadoop.version=1.0.3 clean package
, стартирах spark-shell и прочетох HDFS файл с помощта на sc.textFile()
и изключението е:
ПРЕДУПРЕЖДЕНИЕ hdfs.DFSClient: Неуспешно свързване към /10.xx.xx.xx:50010, добавяне към deadNodes и continuejava.net.SocketTimeoutException: 120 000 милисекунди изчакване, докато се чака каналът да бъде готов за четене. ch: java.nio.channels.SocketChannel[connected local=/10.xx.xx.xx:44264 remote=/10.xx.xx.xx:50010] ... ГРЕШКА executor.Executor: Изключение в задача 1.0 в етап 0.0 (TID 1) java.io.IOException: Не може да се получи блок: blk_8724894648624652503_7309 file=/research/Files/README.md
Същият въпрос е зададен тук: http://mail-archives.us.apache.org/mod_mbox/spark-user/201309.mbox/%3CF97ADEE4FBA8F6478453E148FE9E2E8D3CCA37A9@HASMSX106.ger.corp.intel.com%3E
Това беше предложеното решение:
"В допълнение към указването на HADOOP_VERSION=1.0.3 във файла ./project/SparkBuild.scala, ще трябва да посочите библиотечните зависимости и име "spark-core" преобразуватели. В противен случай sbt ще извлече версия 1.0.3 на hadoop-core от apache вместо Intel Можете да настроите собствено локално или отдалечено хранилище, което посочите"
Може ли някой да разясни как да уточним, че SBT трябва да извлича hadoop-core от Intel (което е налично в нашето вътрешно хранилище)?