默认 JAVA 已安装成功
第一步:安装 HomeBrew ,HomeBrew 官网:https://brew.sh/
打开 Mac 终端,复制下面的话并回车
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
第二步:配置SSH
为了确保在远程管理 Hadoop 以及 Hadoop 节点用户共享时的安全性, Hadoop 需要配置使用SSH协议。
1.设置:系统偏好设置->共享->打开远程登录服务->右侧选择允许所有用户访问。
2.在终端输入:ssh localhost,如果终端有返回 Last login: Tue Oct 22 16:47:46 2019,
说明你之前成功配置了SSH keys,
如果「没有返回上述内容」或「即使出现上述情况,但在此之前你并没有配置过 SSH 」或「有多个秘钥」也需要使用 id_rsa.pub ,
在终端输入:
ssh-keygen -t rsa
执行上述命令会在当前用户目录下的.ssh文件夹(是一个隐藏文件)中生成一个id_rsa文件, 然后继续执行如下命令:
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
用于授权你的公钥到本地可以避免每次登陆时都要询问你的密码,再次输入 ssh localhost
若返回 Last login: Tue Oct 22 16:58:29 2019 from ::1 ,那么你就成功完成了SSH的配置。
第三步:安装 Hadoop
在终端下执行命令 brew install hadoop
brew install hadoop
########?为终端输出内容?########
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
No changes to formulae.
==> Downloading https://www.apache.org/dyn/closer.cgi?path=hadoop/common/hadoop-
==> Downloading from http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/ha
######################################################################## 100.0%
? /usr/local/Cellar/hadoop/3.2.1: 22,397 files, 815.6MB, built in 2 minutes 32 seconds
安装完成后,Hadoop 被安装到 /usr/local/Cellar/hadoop/ 中,需要完成如下配置才算成功安装 Hadoop
1.找到 usr/local/Cellar/hadoop/3.2.1/libexec/etc/hadoop 目录下,打开 hadoop-env.sh 文件,找到其中一行:
export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true"
将其修改为:
export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true -Djava.security.krb5.realm= -Djava.security.krb5.kdc="
export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home/"#改为自己JDK目录
2.然后要配置 hdfs 的地址和端口号,在 usr/local/Cellar/hadoop/3.2.1/libexec/etc/hadoop 目录下,打开 core-site.xml,会发现 core-site.xml 文件中的 <configuration></configuration> 标签中间的内容为空,需要我们自己加入如下配置信息:
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/Cellar/hadoop/hdfs/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:8020</value>
</property>
</configuration>
3.再然后就是设置 map-reduce 中 jobtracker 的地址和端口号,在目录 usr/local/Cellar/hadoop/3.2.1/libexec/etc/hadoop 下,找到 mapred-site.xml 文件,在其内加上:
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:8021</value>
</property>
</configuration>
4.最后要设置hdfs的默认备份方式,默认值是3,在伪分布式系统中,需要修改为1。在目录usr/local/Cellar/hadoop/3.2.1/libexec/etc/hadoop 下,找到 hdfs-site.xml 文件,在其内加上:
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
5.在运行 Hadoop 前, 需要格式化新安装的 HDFS, 并通过创建存储目录和初始化元数据创新空的文件系统, (在上述目录下)执行命令:
hdfs namenode -format
第四步:启动
在 /usr/local/Cellar/hadoop/3.2.1/sbin/ 目录下执行如下命令
./start-dfs.sh #启动HDFS
./stop-dfs.sh #停止HDFS
在启动过程中出现了 Permission denied (publickey,password,keyboard-interactive).
这个问题就需要在配置 SSH 中完成 「ssh-keygen -t rsa 」及「cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys」即可解决。
启动成功本地服务后,在浏览器中输入如下网址:http://localhost:
9870 就可以看到Hadoop的页面。
在 /usr/local/Cellar/hadoop/3.2.1/sbin/ 目录下执行如下命令
./start-yarn.sh #启动yarn,一个MapReduce框架
./stop-yarn.sh #停止yarn
在浏览器中打开 http://localhost:8088、http://localhost:8042 会出现相应的界面
如果嫌麻烦的话可以直接运行:
./start-all.sh #启动Hadoop
./stop-all.sh #停止Hadoop
该命令可以同时开启/关闭上述三个本地服务。