1. 설치환경
virtualbox 설치된 상태
2. vagrant 다운로드 및 설치 : 다운로드 25분 정도 소요
wget https://raw.githubusercontent.com/spark-in-action/first-edition/master/spark-in-action-box.json
vagrant box add --name manning/spark-in-action spark-in-action-box.json
vagrant init manning/spark-in-action
3. 환경설정 파일 수정
nano Vagrantfile
-- 두개 수정 및 활성화
config.vm.network "private_network", ip: "192.168.10.2"
config.vm.network "public_network"
--
4. 가상환경 시작
vagrant up
# 나중에 virtualbox를 전원끄기 vagrant halt, 초기화시키고 싶으면 vagrant destroy
# 모든 자료 없애기 vagrant box remove manning/spark-in-action
5. 터미널 연결
ssh spark@192.168.10.2
#password spark
로그인 하면 spark@spark-in-action으로 들어옴
6. 설치환경 확인
spark-submit --version
hadoop version
java -version
7. 사용자 하둡 운용환경 설정
nano .bashrc
--
## hadoop setup
export HADOOP_HOME=/opt/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HADOOP_HOME/lib/native
--
source .bashrc
8. 하둡 시작
start-dfs.sh
start-yarn.sh
jps
hadoop fs -ls
hadoop fs -mkdir text
touch testfile0
echo >> testfile0 '안녕 안녕 나는 열심이 열심이 공부 공부 공부 사람'
hadoop fs -put testfile0 text
9. 하둡과 스파크 연동 준비
nano /opt/spark-2.0.0-bin-hadoop2.7/conf/spark-defaults.conf
--- master 를 local[*]을 yarn으로 변경
nano /opt/spark-2.0.0-bin-hadoop2.7/conf/spark-env.sh
---추가
export HADOOP_CONF_DIR=/opt/hadoop-2.7.2/etc/hadoop
---
# hdfs://localhost:9000/user/spark/text/test.txt파일의 경우
---
10. 하둡과 스파크 연동
spark 클러스터 구동
$ start-master.sh
$ start-slaves.sh
$ jps : 총 8개 프로세스 확인
---
3328 DataNode
3153 NameNode
4418 Worker
4467 Jps
3700 ResourceManager
3546 SecondaryNameNode
3853 NodeManager
4286 Master
11. 스파크에서 하둡파일 불러서 word count 하기
참고로 아래와 같이
### spark-shell scala wordcount
$ spark-shell 실행
--- 이후 scala 코드
var linesRDD = sc.textFile("hdfs://localhost:9000/user/spark/text/testfile0")
var wordsRDD = linesRDD.flatMap(_.split(" "))
var wordsKvRdd = wordsRDD.map((_, 1))
var wordCounts = wordsKvRdd.reduceByKey(_ + _ )
wordCounts.first
wordCounts.take(5)
# HDFS에 저장
wordCounts.saveAsTextFile("hdfs://localhost:9000/user/spark/text/word_counts")
###
12. spark-sumit를 이용한 작업
spark-submit --master local /opt/spark-2.0.0-bin-hadoop2.7/examples/src/main/python/pi.py