在Mac下安装Hadoop的坑

作者: 木夜溯 | 来源:发表于2016-03-21 20:09 被阅读18051次

    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 显示

    相关文章

      网友评论

        本文标题:在Mac下安装Hadoop的坑

        本文链接:https://www.haomeiwen.com/subject/bosklttx.html