最近大数据很流行,而Hadoop又是分析大数据的有力工具,加之工作需要,我近期也在学习hadoop的相关知识。学习归学习,还是要实践;而实践,得先有环境。看到教科书上的一些方法,都是在linux上配置;mac与linux相近,我就在mac os上实践了。mac os版本是10.8.1,配置的是单机伪分布式环境,目的是学习hadoop程序编写;至于hadoop集群搭建,暂时不感兴趣。
主要参考的资料是《hadoop实战》第二章,p18 -- p21的内容。
《Hadoop实战》中文版+英文文字版+源码【PDF】 下载见
hadoop伪分布式环境搭建,大概分三个步骤:1. Java环境配置;2. mac os自身环境设置;3. hadoop环境配置。
1. java环境配置
这一步主要是让mac os支持java,并且配置相关环境变量,使得系统能够自动找到javac和java。在mac系统下,支持java相对简单。我打开terminal,想看下是否系统已经安装了java(之前安装过xcode的command line版本),键入"java -version",结果mountain lion很智能的问我要不要安装java,并且自动连接apple网站下载安装了java编译、运行环境,并配置好相关环境变量。
在terminal里再次键入"java -version",出现如下信息:
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01-428, mixed mode)
为了进一步验证,打开vim写了一段helloworld程序,并保存为helloworld.java,如下:
package helloworld;
public class helloworld
{
public static void main (String [] args)
{
System.out.println ("Hello world for java!");
}
}
需要注意的是,文件名字“helloworld.java”需要和主类的名字一致。而且,package的名字,最终会在生成.class文件的时候决定路径的深度,例如:我最开始起的名字是“package java.tryjava.helloworld”,结果.class文件生成在了“.../java/tryjava/helloworld”路径下,烦死。
命令行中用javac编译刚才的文件,如下:
javac -d ../bin/ helloworld.java
其中“-d”表示生成文件的目录,再往后,是要编译的源代码文件。查看../bin/helloworld/目录下,生成helloworld.class文件,cd到该目录,输入
java hell world/helloworld
注意第二个是不带后缀的文件名hellworld,而不是生成的全名hellworld.class。如期得到
Hello world for java!
至此,java环境安装完毕。在《hadoop实战》中,还要设置一些环境变量。这些在mac系统下可以省略,在刚才安装过程中,已经设置好这些变量了。