前置工作
- 安装并配置好 Homebrew
配置本机 ssh 免密登录
hadoop 运行过程中需要 ssh localhost
,需要做一些配置保证可以执行成功
允许远程登录
偏好设置 -> 共享 -> 勾选「远程登录」
配置 SSH
- 通过
ssh-keygen
生成 ssh key ssh-copy-id -i [key 文件] localhost
配置免密登录ssh localhost
也只能正配置是否成功
安装 Hadoop
1 | brew install hadoop |
配置
配置环境变量
brew info hadoop
查看 hadoop 安装目录定义 HADOOP_HOME 变量并添加到 PATH 中
1
2
3Hadoop
export HADOOP_HOME=/usr/local/Cellar/hadoop/3.3.4/libexec
export PATH=$PATH:HADOOP_HOMEsource ~/.zshrc
使变量生效
配置 core-site
$HADOOOP_HOME/etc/hadoop/core-site.xml
文件中配置临时文件目录及 hdfs 文件访问地址
1 | <configuration> |
配置 mapped-site$HADOOOP_HOME/etc/hadoop/mapped-site.xml
中配置
1 | <configuration> |
配置 hdfs-site$HADOOOP_HOME/etc/hadoop/hdfs-site.xml
中配置副本数
1 | <configuration> |
配置 hadoop-env$HADOOOP_HOME/etc/hadoop/hadoop-env.sh
中配置 JAVA_HOME
1 | export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_331.jdk/Contents/Home |
初始化 HDFS NameNode
1 | hdfs namenode -format |
测试与验证
启动 hdfs
1 | cd $HADOOP_HOME |
浏览器输入 http://localhost:9870
,出现下面界面则代表启动成功
查看 hdfs report
1 | hdfs dfsadmin -report |
启动 yarn
1 | cd $HADOOP_HOME |
浏览器输入 http://localhost:8088
,出现下面界面则代表启动成功
遇到问题及解决
问题:
初始化 namenode 时提示 ERROR: JAVA_HOME @@HOMEBREW_JAVA@@ does not exist.
解决:
在 $HADOOOP_HOME/etc/hadoop/hadoop-env.sh
中配置 JAVA_HOME
,和系统保持一致即可
问题:
提示 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
解决:
- 从 GitHub 下载相应的 native 库
- 将 lib/native 复制到
$HADOOP_HOME
目录内 ~/.zshrc
添加下面配置并使用source
令其生效
export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=$HADOOP_HOME/lib/native"