MAC OS搭建Hadoop伪分布式集群

本文介绍了在MacOS系统下安装和配置Hadoop的详细过程。包括环境和软件版本说明,如JDK、Hadoop的版本及下载地址;准备工作;Hadoop的配置,涵盖JDK安装、ssh免密码登录设置、Hadoop解压安装、配置文件修改等步骤,还提及Linux下的安装差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


环境和软件版本说明

系统:MacOS

终端:iterms2 + zsh

JDK:1.8.0_211,下载地址,下载jdk-8u211-macosx-x64.dmg

ssh:系统默认

Hadoop:hadoop2.6.0-cdh5.7.0,下载地址,下载hadoop-2.6.0-cdh5.7.0.tar.gz

准备工作

选择一个目录,此处选择用户主目录,建立以下文件夹

mkdir software #建立software文件夹:存放软件安装包
mkdir app #建立app文件夹:软件安装位置
mkdir tmp #建立tmp文件夹:存放临时文件

640?wx_fmt=png
在用户主目录下建立文件夹
hadoop 的配置
  1. 安装JDK:

  • 双击安装包直接按照提示安装,详细步骤如下图所示

    640?wx_fmt=png
    使用dmg安装包安装java
  • 测试是否安装成功

    640?wx_fmt=png
    输出java版本

    虽然默认已经将Java的路径配置到了系统环境变量中,但由于后续需要使用JAVA_HOME,我们最好将JAVA_HOME显式写入到系统的配置文件中。参考链接:https://segmentfault.com/a/1190000007950960 

/usr/libexec/java_home #执行该命令查看Java安装路径
vi ~/.zshrc #修改配置文件,配置JAVA_HOME
source ~/.zshrc #重启配置文件使其生效

640?wx_fmt=png
编辑与重启配置文件

其中,~/.zshrc的配置如下所示,只需关注红框内对JAVA_HOME的设置即可。
640?wx_fmt=png
配置JAVA_HOME
  1. 设置ssh免密码登录

  • 打开ssh

    mac系统是自带了ssh的,可以用whereis ssh或者which ssh命令打印安装的路径。但是需要在设置里打开才能够使用:系统偏好设置-->共享—>勾选远程登录,如下图所示

    640?wx_fmt=png
    在设置中打开远程登录选项
  • 生成公钥和私钥文件

cd ~/.ssh
ssh-keygen -t rsa #生成秘钥,之后一路回车即可,不需要输入任何内容。我之前已经生成过,所以提示是否overwrite。如果是第一次生成,不会有这个提示。
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys #将公钥复制到制定文件
cat authorized_keys#查看authorized_keys的文件内容
ssh localhost#测试ssh连接,首次连接需要输入yes,但不需要输入密码,之后不需要输入yes,如果能不输入密码连接,就配置成功了

640?wx_fmt=png
生成公钥私钥

640?wx_fmt=png
拷贝公钥到相应文件

datanode与namenode之间是需要进行通信的,免密登录是为了不需要手工干预这一过程。

  1. 安装Hadoop

  • 解压安装文件

ls ../app#查看解压之前app文件夹下的文件,结果为空
tar -zxvf hadoop-2.6.0-cdh5.7.0.tar.gz -C ~/hadoop/app/#在software文件夹下执行该命令,等待解压完成,即可将hadoop文件夹解压至app文件夹
ls ../app #解压后,查看app文件夹下是否有解压结果

640?wx_fmt=png
解压hadoop安装文件

640?wx_fmt=png
查看解压结果
  • 修改配置文件,在hadoop-2.6.0-cdh5.7.0/etc/hadoop文件夹下,需要修改hadoop-env.sh,core-site.xml,hdfs-site.xml三个文件

cd ../app/hadoop-2.6.0-cdh5.7.0/etc/hadoop#切换到目标文件夹下
vi hadoop-env.sh#编辑该文件,并配置JAVA_HOME,配置方法和之前配置JAVA_HOME一致,参见下图

640?wx_fmt=png
编辑hadoop-env.sh

640?wx_fmt=png
在hadoop-env.sh中配置JAVA_HOME
vi core-site.sh#修改core-site.sh,具体配置如下图
vi hdfs-site.sh#修改hdfs-site.sh,具体配置如下图

640?wx_fmt=png
core-site.sh

640?wx_fmt=png
hdfs-site.sh

修改了这三个文件,Hadoop就配置好了。这里需要注意:如果是搭建分布式的集群,还需要配置slaves文件,我们这里忽略。

  1. 启动hadoop

  • 配置HADOOP_HOME环境变量

    640?wx_fmt=png
    配置HADOOP_HOME
  • 格式化HDFS

cd $HADOOP_HOME/bin#进入hadoop目录下的bin文件夹
./hdfs namenode -format#格式化文件系统,只在第一次启动的时候需要格式化

640?wx_fmt=png
格式化HDFS

如果没有报错,就格式化成功了。
640?wx_fmt=png
格式化HDFS成功
  • 启动hadoop

cd $HADOOP_HOME/sbin #进入hadoop目录下的sbin文件夹
./start-dfs.sh#启动HDFS
jps#查看是否有相关进程验证是否启动成功,应该输出如图所示四个进程表示安装成功

640?wx_fmt=png
启动HDFS并查看相关进程

还可以在浏览器中输入:http://localhost:50070/,如果可以正常显示,就说明HDFS搭建成功。如下图:
640?wx_fmt=png
浏览器查看HDFS各项基本状态
  • 运行集群自带的jar包

cd $HADOP_HOME/share/hadoop/mapreduce# 进入到例子jar包所在目录
hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar pi 10 10# 运行计算P值的例子,传入两个参数,参数值均为10

640?wx_fmt=png
hadoop自带例子jar包

640?wx_fmt=png
计算PI的运行结果

从图中可以看出,运行结果为3.2。运行结果虽然不太准确,但又一次说明我们的集群已经搭建成功。
  • 关闭集群的方法:

./stop-dfs.sh# 停止DFS文件系统,执行之后,NameNode,DataNode都会关闭,SecondaryNameNode进程都会关闭
jps#查看当前进程,结果只有jps,说明hadoop的集群相关服务已经停止运行

640?wx_fmt=png
关闭HDFS并查看进程

至此,hadoop集群就初步安装完毕。
如果缺少某个进程,通常都是配置文件出错了。具体情况要具体分析,解决方法通常是先修改完配置文件,清空tmp文件夹,之后重新格式化,再启动即可。

  1. 几点说明:

  • 我使用的shell是zsh,因此系统配置文件是~/.zshrc,如果是默认的shell,则配置文件是~/.bash_profile

  • 我们暂时没有进行yarn相关的配置,敬请期待后续文章,不影响hdfs的使用。

  • Linux下的安装流程差不多,主要区别在JDK的安装可以直接解压之后配置环境变量即可。如果要使用虚拟机安装,可能还需要进行一些网络防火墙相关的设置。

  • Linux下需要安装ssh,centos和Ubuntu的安装方式略有差别,但配置过程和本文几乎一样。

  • 伪分布式对于日常开发调试已经足够,多节点的分布式需要配置多台机器之间的免密码登录。

总结

整个安装和配置的流程如下图所示,供参考。

640?wx_fmt=png
hadoop集群搭建流程图

本文完,如果在操作过程中遇到问题,欢迎交流~后台回复“hadoop”,可获取本文的pdf版本。
640?wx_fmt=jpeg

以清净心看世界;

用欢喜心过生活。

超哥的杂货铺,你值得拥有~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值