在Mac下安装Hadoop的坑

Hadoop介绍

Hadoop是Apache基金会下的项目,它能够处理非常大的数据集在分布式计算环境,它可以运行在三种模式下:

  • 独立式
    Hadoop运行所有的东西在无后台的单独的JVM中,这种模式适合在开发阶段测试与Debug MapReduce程序
  • 伪分布式
    Hadoop做为后台应用运行在本地机器,模拟小集群
  • 全分布式
    Hadoop做为后台应用运行真实的集群电脑中

Hadoop 安装步骤

关于mac上安装Hadoop伪分布式可以参考Mac OS X Yosemite安装Hadoop 2.6记录和如何在MacOSX上安装Hadoop(how to install hadoop on mac os x)。在这些文章中基本的配置及其安装方法都已经写的比较清楚了,但是我在按照步骤安装时仍然遇到了不少的坑,下面来做一些介绍。

软件环境介绍

软件环境:

* OS X Yosemite 10.10.5
* Java  1.6.0

使用brew命令安装的是Hadoop的最新版本,需要的java最低版本是1.7.0,所以第一个坑在于java的升级。

1、Java在mac下升级

mac下java的安装有两种方式。

  1. 下载java更新包在本地安装
  1. 通过brew cask来安装

1、使用安装包安装

mac中自带的java版本号为1.6.0,link的路径为/usr/bin,系统默认java安装路径为:

/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java

使用dmg包安装后java的路径为:

/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java

这两个包并不冲突,在这种情况下Terminal中的java命令还是系统默认的,需要对新安装的做软链。参考:MAC OSX安装多个版本的JAVA(jdk jre通用)。
安装Java

2、使用brew cask 安装

$ brew update && brew upgrade brew-cask && brew cleanup && brew cask cleanup$ brew cask install java
$ brew cask install java

正常情况下执行着两个命令会安装成功,但是brew update会出现问题。会出现The following untracked working tree files would be overwritten by merge错误,这时使用:

$ cd /usr/local
$ git fetch origin
$ git reset --hard origin/master

如果你没有在管理员或sudo模式下,你也可以在第一个命令中chown

$ sudo chown -R whoami /usr/local
$ cd /usr/local
$ git reset --hard origin/master

3、测试是否安装成功

$ java -version

如果版本信息返回的是java version "1.8.0_74"式的安装信息表明安装成功。

2、ssh connection refuserd

生成ssh后,使用ssh localhost来测试ssh是否成功。给出提醒如下:

ssh: connect to host localhost port 22: Connection refused

这是因为mac电脑的共享配置未打开,在System preferences ->Sharing中打开如下配置:

打开remote login设置


此时在此使用ssh localhost命令来测试返回Last login: Mon Mar 21 09:58:12 2016,表明已经成功。

 

3、启动Hadoop

/usr/local/Cellar/hadoop/2.7.1/sbin路径进入Hadoop的目录执行启动脚本:

./start-dfs.sh            //启动HDFS
./stop-dfs.sh           //停止HDFS

log如下:

Starting namenodes on [localhost]
localhost: starting namenode, logging to /usr/local/Cellar/hadoop/2.7.1/libexec/logs/hadoop-tony-namenode-tonys-MacBook-Pro-2.local.out
localhost: starting datanode, logging to /usr/local/Cellar/hadoop/2.7.1/libexec/logs/hadoop-tony-datanode-tonys-MacBook-Pro-2.local.out
Starting secondary namenodes [0.0.0.0]

在log中会显示警告WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicabled的提醒,是关于 Hadoop 本地库的, Hadoop本地库是为了提高效率或者某些不能用Java实现的功能组件库。可以参考Mac OSX 下 Hadoop 使用本地库提高效率来做处理。

此时在浏览器中打开Resource Manager: http://localhost:50070可以看到如下页面

Resource Manager 显示

 

执行如下启动脚本脚本:

./start-yarn.sh        //启动yarn,一个MapReduce框架
./stop-yarn.sh        //停止yarn

此时在浏览器中打开JobTracker: http://localhost:8088Specific Node Information: http://localhost:8042可以分别看到如下界面:

JobTracker显示

Specific Node Information 显示



作者:木夜溯
链接:https://www.jianshu.com/p/d19ce17234b7
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

你可能感兴趣的:(在Mac下安装Hadoop的坑)