Intellij Idea 를 이용 하여 windows 에 spark 개발 환경 구축 (jar 패키지 과정 포함) (1)
5715 단어 spark 개발 환경 구축
환경: windows 10, intellij idea 2016.1.1, spark 1.6.2 (HDP), hadoop 2.7.3 (HDP), scala 2.10.5 (컴 파일 환경), sbt 관리 의존
배경: spark 단일 점 연산 이 빅 데이터 문 제 를 해결 하지 못 할 때 spark - submit 에서 jar 패 키 지 를 호출 하 는 방식 으로 분포 식 연산 을 하여 클 러 스 터 의 연산 과 자원 사용 능력 을 향상 시 켜 야 합 니 다.
클 러 스 터 모드: 본 고 는 기본적으로 spark 자체 의 standalone 모드 를 사용 합 니 다.
[CSDN 블 로 그 는 캡 처 이미지 크기 가 2M 을 초과 하 는 것 을 지원 하지 않 기 때문에 여 기 는 절차 만 캡 처 설명 이 없습니다.]
단계:
첫걸음
intellij idea 2016.1.1 을 다운로드 하려 면 여 기 를 클릭 하여 커 뮤 니 티 버 전 을 다운로드 하 십시오.
Intellij IDEA 설치
두 번 째 단계:
Intellij 메뉴 에서 "Configure" → "Plugins" → "Browse reposcories 명령 은 팝 업 인터페이스 에 "Scala" 검색 플러그 인 을 입력 한 다음 해당 설치 단 추 를 누 르 면 설치 하고 Intellij 를 다시 시작 하여 설정 을 유효 하 게 합 니 다.
세 번 째 단계:
파일 을 클릭 하고 "만 들 기" 를 선택 하 십시오. New Project '명령 은 이때 왼쪽 목록 에 있 는' Scala '옵션 을 선택 하고 향후 개발 작업 을 편리 하 게 하기 위해 오른쪽 에 있 는' SBT '옵션 을 선택 합 니 다.
[거의 1 시간 후에 자동 으로 생 성 되 는 src 디 렉 터 리 를 볼 수 있 습 니 다.]
그리고 메 일 src 디 렉 터 리, 새 scala class, name 은 Hello Spark, kind 는 Object 로 변경 합 니 다.
STEP 4: 테스트 프로그램 이 올 바른 지
object HelloSpark {
def main(args:Array[String]): Unit ={
print("Hello Spark")
}
}
HelloSpark. scala 를 오른쪽 단추 로 누 르 면 run 'HelloSpark' 를 볼 수 있 습 니 다. "
Hello Spark '환경 은 문제 없습니다.
STEP 5: 스파크 개발 패키지 가입:
IDEA 를 사용 하여 외부 Jar 패키지 가 져 오기, 구체 적 인 절차:
“File”→“Project Structure”→“Modules”→“Dependencies”→+...→“Library...”→“Library Type(Java)”→“Select Library Files”→“Configure Library”
그리고 "apply" 를 누 르 세 요.
spark 프로그램 은 spark - assembly - 1.5.0 - hadop 2.3.0. jar 를 jdk jar 및 관련 드라이버 를 넣 습 니 다.모두 이런 방법 을 사용 할 수 있다.
STEP 6: IDEA 생 성 JAR
IDEA 를 사용 하여 class 파일 을 컴 파일 하 는 동시에 class 를 Jar 파일 로 포장 할 수 있 습 니 다. 방법 은 다음 과 같 습 니 다.
① 메뉴 "File" → "Project" 선택 Structure "," Project "팝 업 Structure "의 설정 대화 상자;
② 왼쪽 에 있 는 "Artifacts" 를 선택 하고 위 에 있 는 "+" 버튼 을 클릭 합 니 다.
③ 팝 업 대화 상자 에서 'Jar' → 'from' 을 선택 moduls with dependencies”;
④ 시작 할 종 류 를 선택 하고 확인한다.
⑤ 적용 후 메뉴 '빌 드' → '빌 드' 선택 Artifacts "," Build "또는" Rebuild "를 선택 하면 생 성 되 며, 생 성 된 Jar 파일 은 프로젝트 디 렉 터 리 의 out / artifacts 아래 에 있 습 니 다.
여기 꼭 확인 해 주세요.
Artifacts - > Output Layout - > Main Class 는 반드시 주 클래스 입 니 다. 예 를 들 어 HelloSpark;
\ # \ # jar 의 경 로 는 프로젝트 경로 에서 찾 을 수 있 습 니 다:
##..\HelloSpark\out\artifacts\HelloSpark_jar\
마지막 으로 환경 테스트:
환경 에 문제 가 없 도록 다음 코드 를 테스트 해 보 세 요.
테스트 코드:
object SparkPi {
def main(args: Array[String]) {
val conf = new SparkConf().setAppName("Spark Pi")
conf.setMaster("spark://192.168.1.125:7077")
val spark = new SparkContext(conf)
val slices = if (args.length > 0) args(0).toInt else 2
val n = math.min(100000L * slices, Int.MaxValue).toInt // avoid overflow
val count = spark.parallelize(1 until n, slices).map { i =>
val x = random * 2 - 1
val y = random * 2 - 1
if (x*x + y*y < 1) 1 else 0
}.reduce(_ + _)
println("Pi is roughly " + 4.0 * count / n)
spark.stop()
}
}
자세 하지 않 은 점 이 있 으 면 메 시 지 를 남 겨 주세요.
본문 참고 서적: spark 핵심 기술 과 고급 응용