最近大數(shù)據(jù)很流行,而Hadoop又是分析大數(shù)據(jù)的有力工具,加之工作需要,我近期也在學習hadoop的相關(guān)知識。學習歸學習,還是要實踐;而實踐,得先有環(huán)境??吹浇炭茣系囊恍┓椒?,都是在linux上配置;mac與linux相近,我就在mac os上實踐了。mac os版本是10.8.1,配置的是單機偽分布式環(huán)境,目的是學習hadoop程序編寫;至于hadoop集群搭建,暫時不感興趣。
主要參考的資料是《hadoop實戰(zhàn)》第二章,p18 -- p21的內(nèi)容。
《Hadoop實戰(zhàn)》中文版+英文文字版+源碼【PDF】 下載見 http://www.linuxidc.com/Linux/2012-10/71901.htm
hadoop偽分布式環(huán)境搭建,大概分三個步驟:1. java環(huán)境配置;2. mac os自身環(huán)境設置;3. hadoop環(huán)境配置。
1. java環(huán)境配置
這一步主要是讓mac os支持java,并且配置相關(guān)環(huán)境變量,使得系統(tǒng)能夠自動找到javac和java。在mac系統(tǒng)下,支持java相對簡單。我打開terminal,想看下是否系統(tǒng)已經(jīng)安裝了java(之前安裝過xcode的command line版本),鍵入"java -version",結(jié)果mountain lion很智能的問我要不要安裝java,并且自動連接apple網(wǎng)站下載安裝了java編譯、運行環(huán)境,并配置好相關(guān)環(huán)境變量。
在terminal里再次鍵入"java -version",出現(xiàn)如下信息:
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,如下:
需要注意的是,文件名字“helloworld.java”需要和主類的名字一致。而且,package的名字,最終會在生成.class文件的時候決定路徑的深度,例如:我最開始起的名字是“package java.tryjava.helloworld”,結(jié)果.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環(huán)境安裝完畢。在《hadoop實戰(zhàn)》中,還要設置一些環(huán)境變量。這些在mac系統(tǒng)下可以省略,在剛才安裝過程中,已經(jīng)設置好這些變量了。