0前提
1本文章用于macos快速安装一个单机版hadoop,目的为了方便开发和测试。
2本文的安装高度依赖homebrew,个人认为这是macos同其他操作系统例如linux,windows的最大区别和优势之一。
homebrew可帮助我们自动升级相关组件和配置环境变量和参数,并免于反复操作的烦恼。
3本文档不会讲解伪分布式和真分布式的搭建(没必要也没意义,当然你是买的最新的mac pro高配版,就想安装集群,那没我啥事了 )
4注意你安装的hadoop的版本号,不然copy我的命令可能会失效
5前提是了解linux或者mac 或者Unix的命令和基本使用
1安装
1.1步骤
话不多说
brew install hadoop
查看安装情况
$ brew list hadoop
1.2重要背景知识点
1配置文件位置
cd /usr/local/Cellar/hadoop/3.2.1_1/libexec/etc/hadoop
2使用脚本位置
cd /usr/local/Cellar/hadoop/3.2.1_1/libexec/sbin
启动,关闭。小学英语水平就可以看懂,我不一一介绍了。
3依赖的位置
cd /usr/local/Cellar/hadoop/3.2.1_1/libexec/share/hadoop/common/lib
4日志的位置
cd /usr/local/Cellar/hadoop/3.2.1_1/libexec/logs
5 默认访问地址
Resource Manager: http://localhost:9870
JobTracker: http://localhost:8088
Specific Node Information: http://localhost:8042
6 hadoop是基于jdk1.8的 所以如果你本地没jdk1.8赶紧装一个
2配置
2.0必要条件
非hadoop配置部分
1ssh无密码登录配置
2jdk8的安装和配置
3homebrew安装和配置
2.1基础配置
进入配置文件目录
(注意你的hadoop版本)
cd /usr/local/Cellar/hadoop/3.2.1_1/libexec/etc/hadoop
ls
2.1.1编辑core-site.xml
<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:9000</value>
</property>
</configuration>
nano core-site.xml
2.1.2修改配置文件 mapred-site.xml
nano mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9010</value>
</property>
</configuration>
修改配置文件hdfs-site.xml
nano hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
3格式hdfs
cd /usr/local/Cellar/hadoop/3.2.1_1/bin/
格式化hdfs
hadoop namenode -format
进入可执行目录
cd /usr/local/Cellar/hadoop/3.2.1_1/sbin
4启动和调试
4.1启动
./start-all.sh
4.2检查启动情况
我们jps一下看看启动的如何
jps
正常会启动了这些java进程
然后可以访问如下几个管理页面
Resource Manager:http://localhost:9870
JobTracker:http://localhost:8088
Specific Node Information:http://localhost:8042
完成了环境搭建
4.3异常分析
如果缺少那就要去看看为啥没启动起来
例如我一开始是这样的
resource manager没启动起来
cd /usr/local/Cellar/hadoop/3.2.1_1/libexec/logs
nano hadoop-hutiefang-resourcemanager-hutiefangdeMacBook-Pro.local.log
如果懒得反复打开 可以开一个新的窗口
tail -f hadoop-hutiefang-resourcemanager-hutiefangdeMacBook-Pro.local.log
这样可以实时查看问题
4.3.1- com.sun.xxx 各种sun开头的jar包没找到
背景知识:1java是sun公司发明的,然后sun公司倒闭被oracle收购,新版本jdk删除了sun的私有api
2 open jdk也是没有sun的一些私有api的,(为了避免版权纠纷)
所以原因是jdk不对,jdk1.8是最后一个保留sun私有api的jdk了。
由于我还在玩jdk14肯定不能把系统环境变量直接设置成1.8
brew info java
所以我手动指定hadoop的环境变量
cd /usr/local/Cellar/hadoop/3.2.1_1/libexec/etc/hadoop
nano hadoop-env.sh
4.3.2错误 activation jar找不到
我们去hadoop依赖目录去看下是不是没这个包
/usr/local/Cellar/hadoop/3.2.1_1/libexec/share/hadoop/common/lib
我并没找到,那我们去互联网找一下有没有相关的包
(特别装逼一下alfred)
https://mvnrepository.com/search?q=javax%2Factivation%2FDataSource
复制到hadoop依赖目录中
/usr/local/Cellar/hadoop/3.2.1_1/libexec/share/hadoop/common/lib
都弄好了,我们重启试试吧
日志也没错了。。
重启
本人不属于任何培训机构,也不是培训老师,并不赚一分钱,如果你觉得本文不错,麻烦帮忙分享或者点赞留言下,满足我小小的虚荣心。
来源:oschina
链接:https://my.oschina.net/u/3071527/blog/4310651