安裝前必備的環境:
mac操作系統:本人是10.12.6
JDK:1.8.0
軟件包管理工具:brew
1、配置ssh
配置ssh就是為了能夠實現免密登錄,這樣方便遠程管理Hadoop并無需登錄密碼在Hadoop集群上共享文件資源 。
如果你的機子沒有配置ssh的話,輸入ssh localhost提示需要輸入你的電腦登錄密碼,配置好ssh之后,就不需要輸入密碼了。
配置ssh的步驟如下:
(1)在終端輸入:ssh-keygen -t rsa,之后一路enter鍵就行,如果之前進行過,則會提示是否覆蓋之前的key,輸入y即可,會進行覆蓋。
(2)終端執行:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys,用于授權你的公鑰到本地可以無需密碼實現登錄。
此時就可以免密登錄了,但是本人在執行ssh localhost后,出現了如下報錯:
ssh : connect to host localhost port 22: Connection refused.
連接被拒絕。
解決方法:
選擇系統偏好設置->選擇共享->勾選遠程登錄。
之后再執行ssh localhost就可以登錄成功了。如圖:
2、安裝hadoop
命令行執行:brew install hadoop
正常情況下就等待安裝就可以成功了,不過安裝可能需要一段時間,但是本人在安裝過程中遇到了一點問題,在執行了上述命令之后,錯誤提示如下:
通過錯誤提示可以看到是因為java JDK安裝的不符合要求。
說明下,我之前安裝JDK也是通過brew install 安裝的,然后安裝完之后,檢查java版本是10.0.1,估計是安裝的java版本不符合要求。
于是重新進行了java JDK的安裝,附JDK下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
選擇對應的版本就可以了,下載之后解壓雙擊安裝,安裝完成后檢查是否安裝成功,查看java 安裝的版本:
此時安裝成功,對應的的是1.8.0版本的。
這樣之后重新執行brew install hadoop ,這次安裝成功了。安裝成功之后,在/usr/local/Cellar 目錄下,會看到有個hadoop目錄。
3、配置hadoop
3.1配置hadoop-env.sh
進入安裝目錄/usr/local/Cellar/hadoop/3.0.0/libexec/etc/hadoop,找到hadoop-env.sh文件,將export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true"
改為:
exportHADOOP_OPTS="$HADOOP_OPTS-Djava.net.preferIPv4Stack=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc="exportJAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_172.jdk/Contents/Home"
(JDK的路徑,按照自己的實際情況進行配置即可)
3.2配置hdfs地址和端口
進入hadoop安裝目錄:/usr/local/Cellar/hadoop/3.0.0/libexec/etc/hadoop,編輯core-site.xml,將<configuration></configuration>改為:
<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>
3.3? mapreduce中jobtracker的地址和端口
仍然在hadoop的安裝目錄下,編輯mapred-site.xml,將<configuration></configuration>改為:
<configuration>
? ? ? <property>
? ? ? ? ? ? ? <name>mapred.job.tracker</name>
? ? ? ? ? ? ? <value>localhost:8021</value>
? ? ?</property>
</configuration>
3.4? 修改hdfs備份數
仍然在hadoop的安裝目錄下,編輯hdfs-site.xml,將<configuration></configuration>改為:
<configuration>
? ? ? ?<property>
? ? ? ? ? ? ? ? <name>dfs.replication</name>
? ? ? ? ? ? ? ?<value>1</value>
? ? ? ?</property>
</configuration>
3.5? 格式化hdfs
這個操作相當于一個文件系統的初始化,執行命令:hdfs namenode -format
在終端最終會顯示成功
3.6??配置Hadoop環境變量
終端執行:vim ~/.bash_profile,添加hadoop的環境變量:
export HADOOP_HOME=/usr/local/Cellar/hadoop/3.0.0/libexec
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
備注:此處說明下,因為我使用brew install hadoop安裝之后,發現安裝目錄下顯示的有點問題,發現在/usr/local/Cellar/hadoop/3.0.0下面有bin? sbin? libexec,然后進入libexec目錄,發現下面才是真正的hadoop安裝的文件:
而/usr/local/Cellar/hadoop/3.0.0目錄下的其實是缺失的,因此配置hadoop環境變量的時候,要寫到libexec這一級別:
export HADOOP_HOME=/usr/local/Cellar/hadoop/3.0.0/libexec
否則執行啟動 hadoop的時候就會報錯。
3.7 啟動關閉hadoop服務
進入目錄:/usr/local/Cellar/hadoop/3.0.0/libexec/sbin下,執行如下命令:
./start-all.sh? ? 啟動hadoop命令
./stop-all.sh? ?關閉hadoop命令
啟動成功后,在瀏覽器中輸入http://localhost:8088,可以看到如下頁面:
4、安裝scala
命令行執行:brew install scala
執行完成后,終端輸入:scala -version進行查看,如下表明安裝成功:
然后在環境變量中增加scala相關的變量,命令行輸入:vim ~/.bash_profile進行編輯,增加環境變量:
export SCALA_HOME=/usr/local/Cellar/scala/2.12.6
export PATH=$PATH:$SCALA_HOME/bin
5、安裝spark
5.1? 安裝spark?
進入Apache Spark官網進行Spark的下載,附Spark官網下載地址:http://spark.apache.org/downloads.html
下載完之后解壓,并將解壓后的文件夾移動到/usr/local/目錄下,然后cd /usr/local進入到/usr/local目錄下,使用命令更改該目錄下的spark文件夾名稱:sudo mv ./spark-2.0.2-bin-hadoop2.7? ?./spark? 將文件夾名稱改為 spark 。
5.2? 配置環境變量
命令行輸入:vim ~/.bash_profile進行編輯,增加環境變量:
export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin
然后保存退出,執行source??~/.bash_profile,使之生效。
5.3? 配置spark-env.sh
進入到Spark目錄的conf配置文件中:cd /usr/local/spark/conf,執行命令:cp spark-env.sh.template spark-env.sh將spark-env.sh.template拷貝一份,然后打開拷貝后的spark-env.sh文件:vim spark-env.sh,在里面加入如下內容:
export SCALA_HOME=/usr/local/Cellar/scala/2.12.6
export SPARK_MASTER_IP=localhost
export SPARK_WORKER_MEMORY=4G
配置好之后,命令行執行:spark-shell,如果出現如下所示的畫面,就表明spark安裝成功了:
至此mac下spark單機環境就搭建完成了,以后就可以在spark shell中進行練習了。