Mac 安装配置Hadoop 3.X 采坑记录
想要学习Hadoop,于是在Mac本机上想要配置Hadoop 伪分布式集群,折腾了一上午,在各种报错修改下,终于搞定了,于是写下该文,供参考。
环境配置基础:
已经安装 JDK1.8,homebrew, 具体细节不做阐述
Hadoop 安装
采用 homebrew 安装,终端输入:
1 | $ brew install hadoop |
Hadoop 安装成功。Hadoop 环境变量也无需设置。
运行 Hadoop 测试:
1 | $ hadoop version |
Hadoop 配置
伪分布式模式
1. 远程登录设置
伪分布式模式需要模拟远程登录 localhost。
首先确保远程登录(系统偏好设置-共享)是开放的且能被所有用户使用或者可以被当前用户访问,设置如下图。
如果在终端中输入ssh localhost
有返回,则你已经配置好了SSH keys,如果没有,新建 SSH keys 配置:
1 | $ ssh-keygen -t rsa -P "" |
为了避免每次询问你的密码,可以授权你的公钥到本地:
1 | $ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys |
现在 SSH keys 就设置成功
2. 配置文件设置
配置文件目录为:/usr/local/Cellar/hadoop/3.2.1(Hadoop 版本号)/libexec/etc/hadoop
hadoop-env.sh 文件配置
输入命令,查看 Java 的安装路径:
1 | $ /usr/libexec/java_home |
1 | # 打开注释,并加入 java 安装路径 |
core-site.xml 文件配置
设置 Hadoop 的临时目录和文件系统
localhost:9000 表示本地主机。如果使用远程主机,要用相应的 IP 地址来代替,填写远程主机的域名,
1 | <configuration> |
hdfs-site.xml 文件配置
dfs.replication 通常为3, 由于我们只有一台主机和一个伪分布式模式的 DataNode,将此值修改为1。
1 | <configuration> |
mapred-site.xml 文件配置
设置数据处理框架
1 | <configuration> |
yarn-site.xml 文件配置
yarn.resourcemanager.address 端口不应该为 localhost:9000
配置时参考某一教程,端口配置为9000,yarn 可以启动,但是mapreduce 任务无法运行,错误信息为:ERROR: “org.apache.hadoop.ipc.RpcNoSuchProtocolException(Unknown protocol: org.apache.hadoop.yarn.api.ApplicationClientProtocolPB” while running mapping in Hive environment
并且 localhost:8042 可以正常访问,但 localhost:8088 无法访问
修改端口后,localhost:8088 可正常访问
但运行mapreduce 任务出错:
错误: 找不到或无法加载主类org.apache.hadoop.mapreduce.v2.app.MRAppMaster
往上的解决方案是,在终端输入:
1 | $ hadoop classpath |
将返回信息加入 yarn-site.xml
1 | <configuration> |
但是输入hadoop classpath 返回的路径信息太长了,不好看,于是修改至下
1 | <configuration> |
以上,需要修改和配置的文件应该已经没有问题了。
启动 Hadoop
1. 格式化 HDFS
在启动 Hadoop 之前要先格式化 HDFS,通过创建存储目录和初始化元数据来格式化和创建新的文件系统:
1 | $ hadoop namenode -format |
2. 启动 Hadoop
启动 HDFS:
1 | $ start-dfs.sh |
会出现警告『WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable』,其实就是缺少本地库,不会影响 Hadoop 的使用,只是影响效率。解决方案可参考:
Mac OSX 下 Hadoop 使用本地库提高效率 (未试验)
启动数据处理 mapreduce
框架 yarn
:
1 | $ start-yarn.sh |
Hadoop 启动完成,通过浏览器查看hadoop
的详细信息:
1 | http://localhost:50070/ hadoop 2.X版本 |
也可以使用 jps 命令查看守护进程:
1 | $ jps |
查看 ResourceManager
1 | http://localhost:8088/ |
查看 NodeManager
1 | http://localhost:8042/ |
用完关闭服务
1 | /usr/local/Cellar/hadoop/3.2.1/sbin $ ./stop-all.sh |
- 本文作者: Kelly Liu
- 本文链接: http://tiantianliu2018.github.io/2020/03/04/Mac-安装配置Hadoop-3-X-采坑记录/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!