前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MAC OS搭建Hadoop伪分布式集群

MAC OS搭建Hadoop伪分布式集群

作者头像
超哥的杂货铺
发布2019-12-18 10:43:35
1.4K0
发布2019-12-18 10:43:35
举报
文章被收录于专栏:超哥的杂货铺
在上次推送的次条超哥的杂货铺”开业“啦~~中我提到会更新一些关于大数据相关技术学习过程的积累,本篇我们就从环境搭建开始,之后会陆续记录各hadoop生态组件的原理,作用和使用~。本文需要一些前置对Linux系统的了解,次条文章中总结了一些常见的linux命令,有需要的读者可以查阅~
环境和软件版本说明

系统: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

准备工作

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

代码语言:javascript
复制
mkdir software #建立software文件夹:存放软件安装包
mkdir app #建立app文件夹:软件安装位置
mkdir tmp #建立tmp文件夹:存放临时文件

在用户主目录下建立文件夹

hadoop 的配置
  1. 安装JDK: 方式1:
  • 双击安装包直接按照提示安装,详细步骤如下图所示

使用dmg安装包安装java

  • 测试是否安装成功

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

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

编辑与重启配置文件 其中,~/.zshrc的配置如下所示,只需关注红框内对JAVA_HOME的设置即可。

配置JAVA_HOME

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

在设置中打开远程登录选项

  • 生成公钥和私钥文件
代码语言:javascript
复制
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,如果能不输入密码连接,就配置成功了

生成公钥私钥

拷贝公钥到相应文件 datanode与namenode之间是需要进行通信的,免密登录是为了不需要手工干预这一过程。

  1. 安装Hadoop
  • 解压安装文件
代码语言:javascript
复制
ls ../app#查看解压之前app文件夹下的文件,结果为空
tar -zxvf hadoop-2.6.0-cdh5.7.0.tar.gz -C ~/hadoop/app/#在software文件夹下执行该命令,等待解压完成,即可将hadoop文件夹解压至app文件夹
ls ../app #解压后,查看app文件夹下是否有解压结果

解压hadoop安装文件

查看解压结果

  • 修改配置文件,在hadoop-2.6.0-cdh5.7.0/etc/hadoop文件夹下,需要修改hadoop-env.sh,core-site.xml,hdfs-site.xml三个文件
代码语言:javascript
复制
cd ../app/hadoop-2.6.0-cdh5.7.0/etc/hadoop#切换到目标文件夹下
vi hadoop-env.sh#编辑该文件,并配置JAVA_HOME,配置方法和之前配置JAVA_HOME一致,参见下图

编辑hadoop-env.sh

在hadoop-env.sh中配置JAVA_HOME

代码语言:javascript
复制
vi core-site.sh#修改core-site.sh,具体配置如下图
vi hdfs-site.sh#修改hdfs-site.sh,具体配置如下图

core-site.sh

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

  1. 启动hadoop
  • 配置HADOOP_HOME环境变量 配置HADOOP_HOME,这一步可以放在上一步的修改3个配置文件之前。编辑~/.zshrc,将app下的hadoop根目录设置为HADOOP_HOME,如下图所示。

配置HADOOP_HOME

  • 格式化HDFS
代码语言:javascript
复制
cd $HADOOP_HOME/bin#进入hadoop目录下的bin文件夹
./hdfs namenode -format#格式化文件系统,只在第一次启动的时候需要格式化

格式化HDFS 如果没有报错,就格式化成功了。

格式化HDFS成功

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

启动HDFS并查看相关进程 还可以在浏览器中输入:http://localhost:50070/,如果可以正常显示,就说明HDFS搭建成功。如下图:

浏览器查看HDFS各项基本状态

  • 运行集群自带的jar包 hadoop自带的例子程序在share文件夹下
代码语言:javascript
复制
cd $HADOP_HOME/share/hadoop/mapreduce# 进入到例子jar包所在目录
hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar pi 10 10# 运行计算P值的例子,传入两个参数,参数值均为10

hadoop自带例子jar包

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

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

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

  1. 几点说明:
  • 我使用的shell是zsh,因此系统配置文件是~/.zshrc,如果是默认的shell,则配置文件是~/.bash_profile
  • 我们暂时没有进行yarn相关的配置,敬请期待后续文章,不影响hdfs的使用。
  • Linux下的安装流程差不多,主要区别在JDK的安装可以直接解压之后配置环境变量即可。如果要使用虚拟机安装,可能还需要进行一些网络防火墙相关的设置。
  • Linux下需要安装ssh,centos和Ubuntu的安装方式略有差别,但配置过程和本文几乎一样。
  • 伪分布式对于日常开发调试已经足够,多节点的分布式需要配置多台机器之间的免密码登录。
总结

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

hadoop集群搭建流程图 本文完,如果在操作过程中遇到问题,欢迎交流~后台回复“hadoop”,可获取本文的pdf版本。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 超哥的杂货铺 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 在上次推送的次条超哥的杂货铺”开业“啦~~中我提到会更新一些关于大数据相关技术学习过程的积累,本篇我们就从环境搭建开始,之后会陆续记录各hadoop生态组件的原理,作用和使用~。本文需要一些前置对Linux系统的了解,次条文章中总结了一些常见的linux命令,有需要的读者可以查阅~
  • 环境和软件版本说明
  • 准备工作
  • hadoop 的配置
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档