mac 安装 Hadoop
Henry

前置工作

配置本机 ssh 免密登录

hadoop 运行过程中需要 ssh localhost,需要做一些配置保证可以执行成功

允许远程登录
偏好设置 -> 共享 -> 勾选「远程登录」

配置 SSH

  1. 通过 ssh-keygen 生成 ssh key
  2. ssh-copy-id -i [key 文件] localhost 配置免密登录
  3. ssh localhost 也只能正配置是否成功

安装 Hadoop

1
brew install hadoop

hadoop 安装成功

配置

配置环境变量

  1. brew info hadoop 查看 hadoop 安装目录

  2. 定义 HADOOP_HOME 变量并添加到 PATH 中

    1
    2
    3
    # Hadoop
    export HADOOP_HOME=/usr/local/Cellar/hadoop/3.3.4/libexec
    export PATH=$PATH:HADOOP_HOME
  3. source ~/.zshrc 使变量生效

配置 core-site
$HADOOOP_HOME/etc/hadoop/core-site.xml文件中配置临时文件目录及 hdfs 文件访问地址

1
2
3
4
5
6
7
8
9
10
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/Cellar/hadoop/hdfs/tmp</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>

配置 mapped-site
$HADOOOP_HOME/etc/hadoop/mapped-site.xml 中配置

1
2
3
4
5
6
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9010</value>
</property>
</configuration>

配置 hdfs-site
$HADOOOP_HOME/etc/hadoop/hdfs-site.xml 中配置副本数

1
2
3
4
5
6
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</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

namenode 初始化

测试与验证

启动 hdfs

1
2
cd $HADOOP_HOME
../sbin/start-dfs.sh

浏览器输入 http://localhost:9870,出现下面界面则代表启动成功
hdfs 管理界面

查看 hdfs report

1
hdfs dfsadmin -report

hdfs 报告

启动 yarn

1
2
cd $HADOOP_HOME
../sbin/start-yarn.sh

浏览器输入 http://localhost:8088,出现下面界面则代表启动成功
yarn 管理界面

遇到问题及解决

问题:

初始化 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

解决:

  1. GitHub 下载相应的 native 库
  2. 将 lib/native 复制到 $HADOOP_HOME 目录内
  3. ~/.zshrc 添加下面配置并使用 source 令其生效
 export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=$HADOOP_HOME/lib/native"