Hadoop安装教程 Mac版
一、JDK环境安装
1. 下载JDK1.8
Oracle官网下载JDK1.8版本
按照系统提示安装
2. 配置JDK环境变量
在terminal中输入 vi ~/.bash_profile ,按 i 进入编辑模式:
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_281.jdk/Contents/Home
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
按 esc 退出编辑,输入 :wq 保存并退出。
在terminal中输入 source ~/.bash_profile ,使配置的环境变量生效。
二、Hadoop安装
1. 设置ssh免密码登录
因为Hadoop是分布式平台,需要多个机器之间协作,设置ssh免密码登录可以减少每次登陆主机输入密码的繁琐流程。
1) 在Mac的系统偏好设置–>共享中打开远程登录:
2) 在terminal中输入 ssh-keygen -t rsa ,生成rsa公钥,接下来一路按回车键或者输入y就行了:
3) 在terminal中输入 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys ,将公钥的内容写入到authorized_keys文件中。
4) 在terminal中输入 ssh localhost ,不需要密码也能登录,说明设置成功。
2. Hadoop下载与配置
1) 下载Hadoop
方法一:brew install hadoop
方法二:Hadoop官网下载
方法三:百度网盘下载(链接: https://pan.baidu.com/s/19JoUU_GTxBlqpEvaB51nyA 提取码: 74vc)
Note:推荐使用方法三,并将Hadoop文件解压到 /Library/Hadoop 文件夹下,以达到和笔者配置相同的效果。
2) 配置Hadoop环境变量
在terminal中输入 vi ~/.bash_profile ,按 i 进入编辑模式:
HADOOP_HOME=/Library/Hadoop/hadoop-3.2.2
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
按 esc 退出编辑,输入 :wq 保存并退出。
在terminal中输入 source ~/.bash_profile ,使配置的环境变量生效。
3) 修改Hadoop配置文件
打开 /Library/Hadoop/hadoop-3.2.2/etc/hadoop 文件夹:
a. 配置 core-site.xml 文件
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://0.0.0.0:9000</value>
</property>
<!-- 指定hadoop运行时产生文件的存储路径 -->
<property>
<name>hadoop.tmp.dir</name>
<!-- 配置到hadoop目录下temp文件夹 -->
<value>/Library/Hadoop/hadoop-3.2.2/tmp</value>
</property>
</configuration>
b. 配置 hdfs-site.xml 文件
<configuration>
<property>
<!--指定hdfs保存数据副本的数量,包括自己,默认为3-->
<!--伪分布式模式,此值必须为1-->
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<!-- name node 存放 name table 的目录 -->
<value>file:/Library/Hadoop/hadoop-3.2.2/tmp/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<!-- data node 存放数据 block 的目录 -->
<value>file:/Library/Hadoop/hadoop-3.2.2/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>
c. 配置 mapred-site.xml 文件
<configuration>
<property>
<!--指定mapreduce运行在yarn上-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
d. 配置 yarn-site.xml 文件
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<property>
<!--NodeManager获取数据的方式-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.application.classpath</name>
<value>/Library/Hadoop/hadoop-3.2.2/etc/hadoop:/Library/Hadoop/hadoop-3.2.2/share/hadoop/common/lib/*:/Library/Hadoop/hadoop-3.2.2/share/hadoop/common/*:/Library/Hadoop/hadoop-3.2.2/share/hadoop/hdfs:/Library/Hadoop/hadoop-3.2.2/share/hadoop/hdfs/lib/*:/Library/Hadoop/hadoop-3.2.2/share/hadoop/hdfs/*:/Library/Hadoop/hadoop-3.2.2/share/hadoop/mapreduce/lib/*:/Library/Hadoop/hadoop-3.2.2/share/hadoop/mapreduce/*:/Library/Hadoop/hadoop-3.2.2/share/hadoop/yarn:/Library/Hadoop/hadoop-3.2.2/share/hadoop/yarn/lib/*:/Library/Hadoop/hadoop-3.2.2/share/hadoop/yarn/*</value>
</property>
</configuration>
3. 启动Hadoop
1) 初始化
在terminal输入 hdfs namenode -format
(只初次启动需要)
2) 启动Hadoop集群
在terminal输入 start-all.sh (或者分别输入 start-dfs.sh 和 start-yarn.sh)
使用 jps (JavaVirtualMachineProcessStatus) 命令查看Hadoop是否已启动,运行的java进程中应包含以下几种:
4050 Jps
3956 NodeManager
3653 SecondaryNameNode
3414 NameNode
3852 ResourceManager
3518 DataNode
3) 查看NameNode和Yarn
访问 http://localhost:9870/dfshealth.html#tab-overview
访问 http://localhost:8088/cluster
4) 运行Hadoop自带的wordcount程序
a. 新建一个 word.txt 文件并输入几个单词
b. 在hdfs文件系统上创建input文件夹 hdfs dfs -mkdir /input
c. 将word.txt放入input文件夹 hdfs dfs -put words.txt /input
d. 查看是否已放入文件 hdfs dfs -ls /input
e. 运行wordcount程序 hadoop jar /Library/Hadoop/hadoop-3.2.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.2.jar wordcount /input /output
(Note:输出目录必须是一个不存在的目录,输出结果无法存放在已有目录中)
f. 查看程序输出 hdfs dfs -ls /output
g. 打开输出文件 hdfs dfs -cat /output/part-r-00000
5) 关闭Hadoop集群
在terminal输入 stop-all.sh
三、Spark安装
1. 安装Scala
1) 下载Scala
方法一:Scala官网下载
方法二:百度网盘下载(链接: https://pan.baidu.com/s/19JoUU_GTxBlqpEvaB51nyA 提取码: 74vc)
将Scala文件解压,并移动到 /usr/local/scala 文件夹下
cd ~/Downloads/
tar -zxvf scala-2.12.13.tgz
mv scala-2.12.13 /usr/local/scala
2) 配置Scala环境变量
在terminal中输入 vi ~/.bash_profile ,按 i 进入编辑模式:
SCALA_HOME=/usr/local/scala
export PATH=$PATH:$SCALA_HOME/bin
按 esc 退出编辑,输入 :wq 保存并退出。
在terminal中输入 source ~/.bash_profile ,使配置的环境变量生效。
2. 安装Spark
1) 下载Spark
方法一:brew install apache-spark
方法二:Spark官网下载
方法三:百度网盘下载(链接: https://pan.baidu.com/s/19JoUU_GTxBlqpEvaB51nyA 提取码: 74vc)
Note:推荐使用方法三,并将Spark文件解压到 /Library/Hadoop 文件夹下,以达到和笔者配置相同的效果。
2) 配置Spark环境变量
在terminal中输入 vi ~/.bash_profile ,按 i 进入编辑模式:
SPARK_HOME=/Library/Hadoop/spark-3.1.1-bin-hadoop3.2
export PATH=$PATH:$SPARK_HOME/bin
按 esc 退出编辑,输入 :wq 保存并退出。
在terminal中输入 source ~/.bash_profile ,使配置的环境变量生效。
3) 修改Spark配置文件
3. 启动Spark
首先启动Hadoop集群 start-all.sh
1) 启动master
在terminal输入 cd $SPARK_HOME 进入Spark文件夹
./sbin/start-master.sh
访问 http://localhost:8080,获取master的URL信息。
2) 启动slave
复制上图红框圈出的URL,替换下面命令的URL部分(spark://—)
./sbin/start-worker.sh spark://—
3) 同时启动master和slave
使用以下命令可以同时启动master和slave
./sbin/start-all.sh
使用 jps 命令查看Spark是否已启动,运行的java进程中应包含以下几种:
3956 NodeManager
3653 SecondaryNameNode
3414 NameNode
7881 Jps
7819 Master
3852 ResourceManager
3518 DataNode
7871 Worker
4) 关闭Spark
./sbin/stop-all.sh