ZERO
????持續(xù)更新 請關注:https://zorkelvll.cn/blogs/zorkelvll/articles/2018/11/02/1541172452468
背景
??本文主要是介紹大數據基礎設施軟件Hadoop-Scala-Spark的安裝過程瓷蛙,以macOS、linux等系統(tǒng)環(huán)境為例進行實踐!
一、背景
在最新的項目開發(fā)過程中,需要大量的對基礎數據的轉換實現中間字段或者中間表,使用SQL去進行數據的計算和處理,往往需要耗費大量的精力去寫SQL并且實現起來很不方便戈钢,沒有R、Python是尔、Matlab殉了、Scala等實現起來方便,基于這樣的一個工作過程中遇到的痛點背景拟枚,有同學建議使用spark進行數據的etl處理直接生成結果表薪铜,先不論能否實現最終的目標但不嘗試根本就不會知道是否可以實現,因此先把一個基礎的環(huán)境搭建起來恩溅,至于怎么用怎么樣設計好一套流程和環(huán)境實現“一勞永逸”(軟件領域沒有什么是一勞永逸的)那就慢慢來吧隔箍!
二、實踐-環(huán)境安裝(macOS)
1脚乡、版本:
jdk:1.8.0_161
hadoop:3.0.0
2蜒滩、安裝hadoop
(1)配置ssh:ssh-keygen -t rsa => 一直enter => cat ~/.ssh/id\_rsa.pub >> ~/.ssh/authorized\_keys => 確認mac已關閉防火墻和開啟遠程登錄(系統(tǒng)偏好設置下:安全與隱私=>防火墻 關閉 滨达;共享 => 遠程登錄 打鉤)
(2)brew下載安裝hadoop:brew install hadoop => 可以查看到/usr/local/Cellar/hadoop/3.0.0已經安裝的hadoop位置
(3)配置hadoop-env.sh : vim /usr/local/Cellar/hadoop/3.0.0/libexec/etc/hadoop/hadoop-env.sh => 將
# export HADOOP_OPTS="-Djava.net.preferIPv4Stack=true -Dsun.security.krb5.debug=true -Dsun.security.spnego.debug"
后添加
export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc="
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_161.jdk/Contents/Home"
(4)配置core-site.xml【hdfs地址和端口】:vim /usr/local/Cellar/hadoop/3.0.0/libexec/etc/hadoop/core-site.xml => 添加配置
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/Cellar/hadoop/hdfs/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:8020</value>
</property>
</configuration>
并且建立文件夾 mkdir /usr/local/Cellar/hadoop/hdfs & mkdir /usr/local/Cellar/hadoop/hdfs/tmp
(5)配置mapred-site.xml【mapreduce和jobtracker的地址和端口】:
先備份:cp /usr/local/Cellar/hadoop/3.0.0/libexec/etc/hadoop/mapred-site.xml mapred-site-bak.xml
再編輯:vim /usr/local/Cellar/hadoop/3.0.0/libexec/etc/hadoop/mapred-site.xml => 添加配置
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:8021</value>
</property>
</configuration>
(6)配置hdfs-site.xml【修改hdfs備份數】:vim /usr/local/Cellar/hadoop/3.0.0/libexec/etc/hadoop/hdfs-site.xml => 添加配置
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
(7)格式化hdfs文件系統(tǒng)格式:hdfs namenode -format
(8)啟動及關閉hadoop服務:
/usr/local/Cellar/hadoop/3.0.0/libexec/start-dfs.sh => 守護進程:namenodes、datanodes俯艰、secondary namenodes捡遍,瀏覽器中訪問http://localhost:9870 ,注意端口號是9870而不是50070
/usr/local/Cellar/hadoop/3.0.0/libexec/start-yarn.sh => yarn服務進程:resourcemanager、nodemanagers竹握,瀏覽器中訪問http://localhost:8088 和 http://localhost:8042
/usr/local/Cellar/hadoop/3.0.0/libexec/stop-yarn.sh
/usr/local/Cellar/hadoop/3.0.0/libexec/stop-dfs.sh
3画株、安裝scala
brew下載安裝scala:brew install scala => 可以查看到/usr/local/Cellar/scala/2.12.5存在或scala -version查看版本
4、安裝spark
spark官網下載啦辐,下載的時候注意查看其需要依賴的hadoop版本是否滿足谓传,下載后mac下直接用解壓軟件解壓并將解壓后的文件mv至/usr/local下也即/usr/local/spark-2.3.0-bin-hadoop2.7
cd /usr/local/spark-2.3.0-bin-hadoop2.7/bin & spark-shell
5、系統(tǒng)環(huán)境變量~/.bash_profile芹关,便于在任何目錄下執(zhí)行一些命令
vim ~/.bash_profile续挟,添加
export HADOOP_HOME=/usr/local/Cellar/hadoop/3.0.0/libexec
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export SCALA_HOME=/usr/local/Cellar/scala/2.12.5
export PATH=$PATH:$SCALA_HOME/bin
export SPARK_HOME=/usr/local/spark-2.3.0-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin
注意:brew方式安裝的hadoop3.0.0,需要配置的hadoop路徑是libexec下的侥衬,否則start-dfs.sh命令會報錯“error:cannot execute hdfs-config”
6庸推、日常啟動關閉命令:
start-dfs.sh
start-yarn.sh
spark-shell
stop-yarn.sh
stop-dfs.sh
以上是hadoop-scala-spark在mac下的安裝過程,為昨天在mac下首次實踐浇冰,一次性成功 => 希望能夠對各位同學有所幫助,和得到各位同學的后續(xù)關注聋亡,如果疑問或者遇到的坑肘习,歡迎在文章下面留言!坡倔!
spark開啟之路:https://spark.apache.org/docs/latest/quick-start.html