转载自:https://blog.csdn.net/liaoningxinmin/article/details/85992752,感谢作者
最近实习使用到了hadoop,那今天就出一个使用mac搭建hadoop3.1.1的详细教程。帮助大家避免安装的坑!
首先需要安装一个mac神器:Homebrew,相信使用mac的童鞋都知道吧!Homebrew是一个包管理器,是Mac上的软件安装管理工具,类似于Linux中的apt-get,拥有安装、卸载、更新、查看等很多实用的功能。简单的一条指令,就可以实现包管理,十分方便。
1、Homebrew安装
可以通过如下代码进行安装:
ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
安装成功后可以通过brew doctor来查看是否安装成功。
2、ssh免密登录配置
首先我们打开系统偏好设置–>共享,进入到如下页面:
我们将远程登录、所有用户勾选,然后打开终端,输入:
ssh localhost
这时会让你输入密码,输入密码后显示如下登陆成功页面:
但是hadoop中需要免密登录,比如在启动datanode、namenode时都需要免密登录,如果不设置,则会出现权限不允许(Permission denied)的错误提示,导致无法启动DataNode等。
使用如下代码设置ssh免密登录:
ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
接下来在使用ssh localhost命令,我们会发现不用输入密码,直接可以登录。
3、hadoop安装
前提准备:在安装hadoop之前确保你的电脑中有jdk,如果没有,可以通过如下代码安装:
brew install java
这里说明一下java版本的问题:Hadoop 2.7 以及后续版本需要 Java 7 以上版本,如果你电脑中的java是低于7的版本,那就请你去更新喽!
可以使用java -version查看jdk版本,我的java版本如下:
当然如果你使用brew安装,那大可不必担心版本问题,因为使用brew安装的都是最新的版本。
使用如下代码进行hadoop安装:
brew install hadoop
这里还有一点说明的地方,如果你的电脑中没有jdk,那么你使用 brew install hadoop安装时会提示你先安装jdk后在安装hadoop,所以java版本问题我们不用太担心。
我安装的是hadoop最新版本,hadoop3.1.1,大小:770MB,下载好默认存放的位置是:
/usr/local/Cellar/hadoop/3.1.1
使用brew安装会比在官网上下载快很多。(如果你不想安装了,那可以通过brew uninstall hadoop进行卸载,卸载的也非常干净)
4、伪分布式配置
当大家进行完上一步骤的安装后,恭喜你,你已经安装好了hadoop的单机模式!你可以在终端中输入如下代码进行查看:
hadoop
查看结果为:
这里我只截取了一部分图片!
单机模式是hadoop最简单的模式,他没有hdfs,而是直接使用本地操作系统的文件系统,不擅长处理大数据量。因此我们需要进行搭建伪分布式!
伪分布模式需要我们对文件进行配置。下面配置的文件均在 /usr/local/Cellar/hadoop/3.1.1/libexec/etc/hadoop 路径中。
a.hadoop-env.sh配置
当你打开你的hadoop-env.sh时,这部分是备注释的,也就是前面有一个#,那我们需要去掉#,并将自己的java位置放到我用红框框圈删的地方!查看自己电脑java存放位置使用:
/usr/libexec/java_home
将路径复制过去即可。
b.core-site.xml配置
将core-site.xml中代码修改为:
fs.defaultFS hdfs://localhost:9000 c.hdfs-site.xml配置 将hdfs-site.xml中代码修改为: dfs.replication 1 d.mapred-site.xml配置 将mapred-site.xml中代码修改为: mapreduce.framework.name yarn 如果文件后缀是 .xml.example,改为 .xml
e.yarn-site.xml配置
将yarn-site.xml中代码修改为:
yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.env-whitelist JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME 5、运行 首先对文件系统进行格式化,先进入到 /usr/local/Cellar/hadoop/3.1.1/libexec/bin 路径中,输入代码:
hdfs namenode -format
输入之后会出现很多信息,在最后会看到:
然后进行启动NameNode和datanode
进入 /usr/local/Cellar/hadoop/3.1.1/libexec/sbin 路径中,输入
start-dfs.sh
这时候NameNode和DataNode都已经启动成功了,我们可以在网页中看到Overview页面了!
NameNode - http://localhost:9870
接下来启动 ResourceManager 和 NodeManager:
还是在 /usr/local/Cellar/hadoop/3.1.1/libexec/sbin 路径中,输入
start-yarn.sh
启动后可以在浏览器中查看All Applications 界面。
ResourceManager - http://localhost:8088
补充:如果你在输入以上两个代码时出现了
不要怕,这是由于你没有配置hadoop的环境变量导致的,无关紧要,我们可以在命令前加上sh,如下
sh start-dfs.sh
sh start-yarn.sh
这样,就可以顺利启动它们了。
我们可以通过jps查看进程:
可以发现所有的进程都已经在运行了!!!
补充: 如果你在启动Nodemanager和ResourceManager发生了错误,导致使用jps查看进程时出现:
不要担心,这是java版本的问题,因为自从jdk9以后默认禁止访问javax.*API,解决办法:我们可以在路径 /usr/local/Cellar/hadoop/3.1.1/libexec/etc/hadoop 下找到文件 yarn-env.sh
在文件中找到:
#export YARN_RESOURCEMANAGER_OPTS=
#export YARN_NODEMANAGER_OPTS=
将其修改为:
export YARN_RESOURCEMANAGER_OPTS="–add-modules=ALL-SYSTEM"
export YARN_NODEMANAGER_OPTS="–add-modules=ALL-SYSTEM"
然后在执行 sh start-yarn.sh 重新启动就OK了。
当你不再使用hadoop时,可以进行关闭,在 /usr/local/Cellar/hadoop/3.1.1/libexec/sbin 路径中输入
sh stop-all.sh
可以关闭所有的进程。
本教程亲测有效,我也是刚刚搭建好,由于网上的教程有些地方不详细,导致搭建过程中出现问题,本教程相对详细,如果大家有什么疑问,请在评论区留言,欢迎一起讨论!
此文章作者原创,如有转载,请注明出处:https://blog.csdn.net/liaoningxinmin/article/details/85992752
作者:带鱼工作室
来源:CSDN
原文:https://blog.csdn.net/liaoningxinmin/article/details/85992752
版权声明:本文为博主原创文章,转载请附上博文链接!