在Mac下安装Hadoop的坑

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Mac下安装Hadoop的坑相关的知识,希望对你有一定的参考价值。

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

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

软件环境:

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

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

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

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

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

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

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

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

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

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

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

log如下:

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

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

执行如下启动脚本脚本:

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

Mac安装最新tensorflow遇到的坑,记录下方便后人

之前其他mac电脑安装tensorflow时候一切顺利,一行命令sudo pip install tensorflow就高搞定了,但是今天在新mac上安装tensorflow时候出现了一个bug,搞了半天终于搞完了。。。

网上还没啥相关解决措施,蛋碎一地,也没有相关用户po这问题,应该是新的tensorflow对mac的支持问题,废话不多说:

 

mac上pip安装tensorflow时候,会先安装所有依赖包

在安装其中依赖包grpcio时候出现:(就是这个grpcio,原来的tensorflow里面是不依赖这个的,现在才有的)

“”“DEPENDENCY ERROR

The target you are trying to run requires an OpenSSL implementation.
Your system doesn‘t have one, and either the third_party directory
doesn‘t have it, or your compiler can‘t build BoringSSL.

Please consult INSTALL to get more information.

If you need information about why these tests failed, run:

make run_dep_checks
”“”
显示mac系统上没有openssl

terminal敲openssl version
显示LibreSSL

网上查了下苹果已经放弃openssl,转向libressl了,但是在编译grpcio的时候仍需要openssl

解决措施:
1. 安装brew:/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2. 执行:brew install openssl

3. 添加环境变量: echo ‘export PATH="/usr/local/opt/openssl/bin:$PATH"‘ >> ~/.bash_profile

4. 再次执行openssl version 显示 OpenSSL, 执行 which openssl 显示 /usr/local/opt/openssl/bin/openssl

5. 执行:export LDFLAGS=-L/usr/local/opt/openssl/lib;export CPPFLAGS=-I/usr/local/opt/openssl/include, 为了编译时让编译器找到库和头文件所在位置

6. 重新执行sudo pip install grpcio,问题解决

7. 执行sudo pip install tensorflow,ok!

以上是关于在Mac下安装Hadoop的坑的主要内容,如果未能解决你的问题,请参考以下文章

Mac 下安装wxpython踩过的坑

Mac安装最新tensorflow遇到的坑,记录下方便后人

Mac下安装GIT的坑

分享下mac安装xamarin跨平台开发环境的坑

mac下pip的安装,入python的坑,都离不开pip

mac安装mysql遇到的坑