Java 版本 1.8.0_18
mac os 10.13.6
hadoop 版本: 3.1.1
安装Java
首先要确定mac上是否安装了Java环境, 在命令行输入下面的语句就可以验证并得到Java的版本。
java -version
如果没有安装好Java环境,网上有很多安装Java的教程,大家可以去查阅。
安装hadoop
在mac上brew很方便的对软件进行安装和卸载。
brew install hadoop
然后使用下面的命令,如果出现hadoop的版本信息则表示安装成功。
hadoop version
配置ssh环境
在terminal里面输入: ssh localhost
如果有错误提示信息,表示当前用户没有权限。这个多半是系统为安全考虑,默认设置的。
更改设置如下:进入system preference --> sharing --> 勾选remote login,并设置allow access for all users。
再次输入“ssh localhost",再输入密码并确认之后,可以看到ssh成功。
如果不执行这一步,后面启动hadoop时会出现Connection refused的错误。
配置hadoop
从命令行进入/usr/local/Cellar/hadoop/3.1.1/libexec/etc/hadoop,然后修改下面的文件。
1、修改core-site.xml
fs.defaultFS
hdfs://localhost:8020
hadoop.tmp.dir
file:/usr/local/Cellar/hadoop/tmp
2、修改hdfs-site.xml,配置namenode和datanode
dfs.replication
1
dfs.permissions
false
dfs.namenode.name.dir
file:/usr/local/Cellar/hadoop/tmp/dfs/name
dfs.datanode.data.dir
file:/usr/local/Cellar/hadoop/tmp/dfs/data
3、修改 mapred-site.xml.
mapreduce.framework.name
yarn
mapred.job.tracker
localhost:9010
yarn.app.mapreduce.am.env
HADOOP_MAPRED_HOME=/usr/local/Cellar/hadoop/3.1.1/libexec
mapreduce.map.env
HADOOP_MAPRED_HOME=/usr/local/Cellar/hadoop/3.1.1/libexec
mapreduce.reduce.env
HADOOP_MAPRED_HOME=/usr/local/Cellar/hadoop/3.1.1/libexec
然后输入hdfs namenode -format 格式化namenode节点,看到下面的结果就说明成功了。
4、修改yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
yarn.resourcemanager.address
localhost:9000
启动hadoop
在sbin/目录下输入./start-dfs.sh启动hdfs服务。然后,在浏览器中输入http://localhost:9870/,出现以下界面就说明成功了。特别要注意的是这里不是http://localhost:50070。输入./stop-dfs.sh就可以停止服务。
启动yarn服务
在sbin目录下输入./start-yarn.sh, 然后在浏览器中打开http://localhost:8088/就会出现下图的界面。用./stop-yarn.sh可以停止服务。
至此,配置就成功了。配置时有个警告,WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable,但是不会影响搭建。还没有在上面运行例子,还不知道会不会有问题。
后面在上面运行了workcount的例子,可以正常运行!!但是需要在mapred-site.xml里面添加几个
如果yarn-site.xml没有配置好,在后面使用hive执行mapreduce sql任务就有可能会出现下面的错误:
ACCEPTED: waiting for AM container to be allocated, launched and register with RM.状态
在yarn-site.xml加入下面一段代码可能会解决问题。记得要重启yarn,不然修改可能不会生效。
yarn.scheduler.capacity.maximum-am-resource-percent
100
参考连接:https://www.jianshu.com/p/34521593f30e
https://www.swift.red/2018/05/10/machadoop3.1.0/
https://stackoverflow.com/questions/34467308/mapreduce-job-hangs-waiting-for-am-container-to-be-allocated
https://blog.csdn.net/a1833255/article/details/81158435