版本
# 安裝的軟件版本
macOS 10.13.4
java 1.8.0_241
hadoop 2.7.3
scala 2.12.11
spark2.4.0
安裝java
# 測試版本
java -version
# 確保是java8
免密登錄SSH
# 一路enter鍵就行,如果之前進行過,則會提示是否覆蓋之前的key,輸入y即可,會進行覆蓋。
ssh-keygen -t rsa
# 用於授權你的公鑰到本地可以無需密碼實現登錄
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
# 此時就可以免密登錄了,但是本人在執行ssh localhost後,出現瞭如下報錯:
# ssh : connect to host localhost port 22: Connection refused.
# 解決方法:
# 選擇系統偏好設置->選擇共享->勾選遠程登錄
安裝hadoop
wget http://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
將其解壓到指定路徑下
tar zxvf hadoop-2.7.3.tar.gz /usr/local/Cellar
mv hadoop-2.7.3 hadoop2.7.3
配置
環境配置
vi ~/.bash_profile
# 在末尾添加
# Java的配置環境
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home
export JRE_HOME=$JAVA_HOME/jre
# hadoop的配置環境
export HADOOP_HOME=/usr/local/Cellar/hadoop2.7.3
export HADOOP_HOME_WARN_SUPPRESS=1
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$PATH
# 激活
source ~/.bash_profile
vi /usr/local/Cellar/hadoop2.7.3/etc/hadoop/hadoop-env.sh
# 在末尾添加如下
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home
測試Hadoop是否安裝成功
# 終端中輸入
hadoop version
Hadoop 2.7.3
配置core-site.xml
# 打開core-site.xml
vi /usr/local/Cellar/hadoop2.7.3/etc/hadoop/core-site.xml
# 在文末添加如下
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/Cellar/hadoop2.7.3/tmp</value>
</property>
</configuration>
配置hdfs-site.xml
# 打開core-site.xml
vi /usr/local/Cellar/hadoop2.7.3/etc/hadoop/hdfs-site.xml
# 在文末添加如下
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/Cellar/hadoop2.7.3/tmp/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/Cellar/hadoop2.7.3/tmp/hdfs/data</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>localhost:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
配置mapred-site.xml
# 打開core-site.xml
vi /usr/local/Cellar/hadoop2.7.3/etc/hadoop/mapred-site.xml
# 在文末添加如下
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.admin.user.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=$HADOOP_COMMON_HOME</value>
</property>
</configuration>
配置yarn-site-xml
# 打開core-site.xml
vi /usr/local/Cellar/hadoop2.7.3/etc/hadoop/yarn-site-xml
# 在文末添加如下
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
hadoop僞分佈式啓動
格式化 HDFS
# 在啓動 Hadoop 之前要先格式化 HDFS,通過創建存儲目錄和初始化元數據來格式化和創建新的文件系統:
hadoop namenode -format
啓動hadoop
start-dfs.sh
查看是否安裝成功
# 輸入
jps
# 得到如下結果
出現沒有NameNode的情況,參見
jps命令沒有namenode或datanode, 怎麼解決?
查看namenode
在瀏覽器中輸入http://localhost:50070/
啓動yarn
輸入網址:http://localhost:8088/cluster
安裝Scala
下載Scala-2.12.X
解壓
tar zxvf scala-2.12.11.tgz -C ./scala-2.12
添加環境變量
# 在 ~/.bash_profile 添加 scala 的系統環境變量
export SCALA_HOME="/Users/xxx/scala2.12.11"
export PATH=${PATH}:${SCALA_HOME}/bin
# 激活
source ~/.bash_profile
檢查
scala -version
安裝spark
wget https://archive.apache.org/dist/spark/spark-2.4.0/spark-2.4.0-bin-hadoop2.7.tgz
# 解壓到指定文件
tar xzvf spark-2.4.0-bin-hadoop2.7.tgz /usr/local/Cellar/
# 更改文件名
mv spark-2.4.0xxx spark2.4.0
配置環境變量
# 做如下操作
cd /usr/local/Cellar/spark2.4.0/conf
cp spark-env.sh.template spark-env.sh
vi spark-env.sh
export SCALA_HOME=/usr/local/Cellar/scala2.12.11
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_241.jdk/Contents/Home
export SPARK_MASTER_IP=localhost
export SPARK_WORKER_MEMORY=1g
export HADOOP_CONF_DIR=/usr/local/Cellar/hadoop2.7.3/etc/hadoop
# 打開bash_profile
vi ~/.bash_profile
在文末添加
# spark
export SPARK_HOME=/usr/local/Cellar/spark2.4.0
export PATH=$PATH:$SPARK_HOME/bin
# 激活
source ~/.bash_profile
測試
# 在終端輸入
spark-shell
# 在scala下輸入
val textFile = sc.textFile("file:///usr/local/Cellar/spark3.0.0/README.md")