spark 및 Hadoop 버전 불일치 해결 방법 실행

10501 단어 spark
목적:
자신의 컴퓨터에run 프로젝트 그룹 이전의 코드를 이해하고 이후의 수정을 위해 깔아주기를 바랍니다.코드는 Spark 2.0.1, Scala 2.11.8, Hadoop 2.7.3과 JAVA 1.8을 기반으로 하기 때문에 제 컴퓨터는 Spark 1.6.1, Scala 2.11.8, Hadoop 1.2.1과 JAVA 1.8을 설정했습니다.
버전 문제에 오류가 발생하지 않도록 두 가지 해결 방법이 있다고 생각한다.스파크 1.6.1 버전을spark2로 변경.0.1 버전.2.sbt 버전은 모두 내 컴퓨터 버전으로 설정하고run이 성공했는지 확인하세요.이 글은 방법1의 심로 과정을 기록했는데 사실 방법2는 더욱 간결한 것 같다. 주로 sbt 등 도구의 효과와 의존 버전에 대한 이해가 부족하여 의존 수정 후 포장에 실패한 후에 다시 시도할 수 있다.
과정 1. 스파크 홈페이지에서 스파크 2.0.1의 설치 패키지는hadoop 기반 버전에 따라spark-2.01-bin-hadoop2를 각각 다운로드했다.7(hadoop2.7 기반),spark-2.02-bin-without-hadoop(2.0 이전 Hadoop 버전 기반) 두 개의 압축 패키지.
2. 압축을 풀고 해당 디렉터리로 이동한다.
3. 상응하는 프로필 수정:/etc/profie 수정(sudo는 루트 수정 권한)
sudo vim /etc/profile

여기서 다음을 추가합니다.
export SPARK_HOME=/home/yy/spark-2.1.0-bin-hadoop2.7/
export PATH=$PATH:$SPARK_HOME/bin

/etc/profie 업데이트
source /etc/profile

4. 순서대로 spark-shell을 열어 보았는데 spark-2.02-bin-without-hadoop이 열리지 않아서 spark-2.01-bin-hadoop2를 선택했다.7.
5. 로컬 운행의 간단한 예
포장된jar 패키지를 bin 디렉터리에 놓고 bin 디렉터리에서 직접 실행합니다:
spark-submit --master local[4] --class WordCount wordcount.jar 
spark-submit --master local[4] --class helloscala helloscala.jar 

6. 로컬 실행 프로젝트 코드
1.kmercounting:
./bin/spark-submit --master local[4] --class org.jgi.spark.localcluster.tools.KmerCounting bin/LocalCluster-assembly-0.1.jar -i data/small/sample.seq -o tmp/seq_result.txt --format seq -k 31  

2.KmerMapReads2
./bin/spark-submit --master local[4] --class org.jgi.spark.localcluster.tools.KmerMapReads2 bin/LocalCluster-assembly-0.1.jar --reads data/small/sample.seq --format seq -k 31 --kmer tmp/seq_result.txt  --output tmp/kmer_reads

3.GraphGen2
./bin/spark-submit --master local[4] --class org.jgi.spark.localcluster.tools.GraphGen2 bin/LocalCluster-assembly-0.1.jar -i tmp/kmer_reads.txt  -o tmp/edges.txt 

4.GraphLPA2
./bin/spark-submit --master local[4] --class org.jgi.spark.localcluster.tools.GraphLPA2  bin/LocalCluster-assembly-0.1.jar -i tmp/edges.txt  -o tmp/lpa.txt 

5.AddSeq
./bin/spark-submit --master local[4] --class org.jgi.spark.localcluster.tools.CCAddSeq bin/LocalCluster-assembly-0.1.jar --wait 1 -i tmp/lpa.txt --reads data/small/sample.seq -o tmp/lpa_seq.txt 

로컬 실험 출력 결과와 프로그램 절차 이해 알고리즘을 결합하다.
7. 독립된 그룹에서 코드 실행
간단한 예:
spark-submit --master spark://yypc:7077 --class WordCount wordcount.jar 

오류 발견:java.io.IOException: Failed to connect to yypc/58.198.102.156:7077
인터넷에서 각종 문서, 참조http://blog.csdn.net/ybdesire/article/details/70666544질문 찾기:
nmap으로 마스터 호스트 포트 7077 연결 확인
nmap -p 7077 master_ip

마스터가 켜져 있지 않음:
Starting Nmap 6.40 ( http://nmap.org ) at 2017-12-04 21:06 CST 
Nmap scan report for yypc (58.198.102.156) 
Host is up (0.000018s latency). 
PORT     STATE  SERVICE 
7077/tcp closed unknown 
Nmap done: 1 IP address (1 host up) scanned in 0.40 seconds

주요 원인은 내가 spark 집단을 열 때 오류가 발생했기 때문이다.spark를 정확하게 열면 bin 디렉터리에 있어야 합니다./start-all.sh가 아니라 start-all.sh;
그 다음에 새로 설치된spark는 두 개의 파일을 수정해야 합니다:conf/spark-env.sh와conf/slaves, 이것은spark 설치 과정 중일 것입니다. 그러나 잊혀졌습니다.문서 수정의 구체적인 과정은 상세하게 보인다.https://www.cnblogs.com/zengxiaoliang/p/6478859.html Hadoop2.7.3+Spark2.1.0 완전 분포식 집단 구축 과정.
이 두 문제를 해결한 후에wordcount는run할 수 있다.
프로젝트 코드(일부 시도)kmercounting:
./bin/spark-submit --master spark://yypc:7077 --deploy-mode client  --conf spark.executor.extraClassPath=bin/LocalCluster-assembly-0.1.jar --conf spark.speculation=true --conf spark.speculation.multiplier=2 --conf spark.eventLog.enabled=false bin/LocalCluster-assembly-0.1.jar KmerCounting --wait 1 -i data/small/sample.seq -o tmp/seq_result2.txt --format seq -k 31 -C

KmerMapReads2:
./bin/spark-submit --master spark://yypc:7077 --deploy-mode client  --conf spark.executor.extraClassPath=bin/LocalCluster-assembly-0.1.jar --conf spark.speculation=true --conf spark.speculation.multiplier=2 --conf spark.eventLog.enabled=false bin/LocalCluster-assembly-0.1.jar KmerMapReads2 --wait 1 --reads data/small/sample.seq --format seq -k 31 --kmer tmp/seq_result2.txt  --output  tmp/kmer_reads2.txt

파일을 수정한 후 실행에 성공하지 못했습니다. 다시 시작한 후에 실행에 성공했습니다.
현재 Hadoop 1.2.1 버전이 변하지 않아spark-2.01-bin-hadoop2를 다운로드했습니다.7 버전은 정상적으로 사용할 수 있으며 현재 초보적인 코드 작성과 디버깅의 수요에 대응할 수 있다.

좋은 웹페이지 즐겨찾기