一、JDK 安装
JDK 版本高于 JDK 8,可能会导致 Hadoop ResourceManager 打不开,从而导致无法访问 localhost:8088。因此最好的方法,就是准备好 JDK 8 的环境,然后导入到 Hadoop 当中。
参考这篇文章,觉得写的很好:MAC安装与卸载jdk_mac 卸载jdk-CSDN博客
二、配置 SSH
配置 SSH,防止后续连接失败。
- 输入:
ssh localhost
成功则显示:
- 如果失败,则在本地设置中,搜索“共享”,打开“远程登录”。
- 打开 terminal:
(1) 如果之前没有生成过密钥,则生成:
ssh-keygen -t rsa
(2) 有密钥后,更改授权,免密登陆:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
三、Hadoop下载
方法一:安装包下载
登陆网址:hadoop安装连接
选择自己要的版本下载,我下的是最新版:
- 点进去后,选择 tar.gz:
- 点击,下载到本地,然后解压,放在自己需要的目录中,我放在了
/usr/local/Cellar/hadoop/hadoop-3.4.0
方法二:Homebrew 安装
本地先安装 Homebrew,参考这篇文章:Mac安装Homebrew
安装 Hadoop:
brew install hadoop
PS: 这种安装方式可能会少 lib/native 文件夹,具体原因未知。
四、配置 Hadoop
1、 配置 Hadoop 全局变量:
注意:这里是在主terminal配置。
- 打开 terminal,输入:
vim ~/.bash_profile
- 在文件中输入:
# Hadoop
# 你本机的Hadoop存放地址
export HADOOP_HOME=/usr/local/Cellar/hadoop/hadoop-3.4.0
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
- 保存后,使之生效,这样便可在全局使用 hadoop 启动命令:
source ~/.bash_profile
2、配置 Hadoop 中的文件
打开 hadoop 文件夹,再打开 /etc/hadoop 文件夹,修改以下文件:
- 打开 hadoop-env.sh,添加 java_home 的位置:
使用这句话来查询 java_home 的位置:
/usr/libexec/java_home -V
- 我的 hadoop 文件夹位置是:
/usr/local/Cellar/hadoop/hadoop-3.4.0
使用 terminal,在 hadoop 文件夹中新建几个文件夹:
mkdir /usr/local/Cellar/hadoop/hadoop-3.4.0/tmp
mkdir /usr/local/Cellar/hadoop/hadoop-3.4.0/tmp/dfs
mkdir /usr/local/Cellar/hadoop/hadoop-3.4.0/tmp/dfs/name
mkdir /usr/local/Cellar/hadoop/hadoop-3.4.0/tmp/dfs/data
- 打开 core-site.xml,添加:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<!--hadoop安装地址+/tmp,刚刚新建的文件夹-->
<value>/usr/local/Cellar/hadoop/hadoop-3.4.0/tmp</value>
</property>
</configuration>
- 打开 hdfs-site.xml,添加:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<!--hadoop安装地址+/tmp/dfs/name,刚刚新建的文件夹-->
<value>/usr/local/Cellar/hadoop/hadoop-3.4.0/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<!--hadoop安装地址+/tmp/dfs/data,刚刚新建的文件夹-->
<value>/usr/local/Cellar/hadoop/hadoop-3.4.0/tmp/dfs/data</value>
</property>
</configuration>
- 查看 hadoop classpath, terminal 输入:
hadoop classpath
打开 mapred-site.xml ,添加:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9010</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<!--上面查到的 Hadoop classpath-->
<value>/usr/local/Cellar/hadoop/hadoop-3.4.0/etc/hadoop:/usr/local/Cellar/hadoop/hadoop-3.4.0/share/hadoop/common/lib/*:/usr/local/Cellar/hadoop/hadoop-3.4.0/share/hadoop/common/*:/usr/local/Cellar/hadoop/hadoop-3.4.0/share/hadoop/hdfs:/usr/local/Cellar/hadoop/hadoop-3.4.0/share/hadoop/hdfs/lib/*:/usr/local/Cellar/hadoop/hadoop-3.4.0/share/hadoop/hdfs/*:/usr/local/Cellar/hadoop/hadoop-3.4.0/share/hadoop/mapreduce/*:/usr/local/Cellar/hadoop/hadoop-3.4.0/share/hadoop/yarn:/usr/local/Cellar/hadoop/hadoop-3.4.0/share/hadoop/yarn/lib/*:/usr/local/Cellar/hadoop/hadoop-3.4.0/share/hadoop/yarn/*</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<!--hadoop安装地址-->
<value>/usr/local/Cellar/hadoop/hadoop-3.4.0</value>
</property>
<property>
<name>mapreduce.map.env</name>
<!--hadoop安装地址-->
<value>/usr/local/Cellar/hadoop/hadoop-3.4.0</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<!--hadoop安装地址-->
<value>/usr/local/Cellar/hadoop/hadoop-3.4.0</value>
</property>
</configuration>
- 打开 yarn-site.xml,添加:
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>localhost:9000</value>
</property>
<property>
<name>yarn.scheduler.capacity.maximum-am-resource-percent</name>
<value>100</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>127.0.0.1</value>
</property>
</configuration>
五、启动 Hadoop
1、初始化
- terminal 执行:
hdfs namenode -format
2、启动 Hadoop
1、terminal 执行:
start-all.sh
执行结果:
- 查看启动状态:
jps
- 网页查看是否启动成功:
查看 HDFS 启动情况:http://localhost:9870
查看 YARN 启动情况:http://localhost:8088
- 关闭 hadoop,输入:
stop-all.sh
六、测试 Hadoop
使用 wordcount 函数测试。
- 在 hdfs 上创建一个文件夹 input,用于存放输入数据源:
hdfs dfs -mkdir -p input
- 本地创建一个数据源文件 word.txt,将其上传到 hdfs:
hadoop fs -put wordinput/word.txt input/word.txt
- 执行 wordcount 函数,进行计算:
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.4.0.jar wordcount input/ woutput
显示成功:
- 查看结果:
登陆 HDFS:http://localhost:9870
找到创建的文件夹,选择输出文件夹:
选择 “part-r-00000”:
可以下载,也可以直接查看结果:
七、配置历史服务器
通过历史服务器,可以很好的看到当前执行的job情况,还能回顾历史job的情况,非常方便。
- 在 /etc/hadoop 目录下,打开 mapred.xml,添加:
<!--Job History server-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>localhost:19888</value>
</property>
如图所示:
- 重新启动 yarn:
start-yarn.sh
- 启动历史服务器,terminal 输入:
mapred --daemon start historyserver
- jps 命令查看是否启动:
- 登陆网页查看:
参考文章
Hadoop 安装教程 (Mac m1/m2版)_m1 安装hadoop-CSDN博客
Mac 安装Hadoop教程(HomeBrew安装)_mac安装hadoop-CSDN博客
版权归原作者 超甜超可爱 所有, 如有侵权,请联系我们删除。