環境
- Mac
- IntelliJ IDEA
- Java 1.8
- Maven 3.5.4
- Hadoop 2.2.0
Java インストール
- Javaがインストールされていることを確認
$ java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
- まだインストールされていなければインストール
$ brew cask install java
- JAVA_HOMEを設定
$ vi ~/.bash_profile
# 以下の行を末尾などに追加
export JAVA_HOME=`/usr/libexec/java_home -v 1.8`
$ source ~/.bash_profile
$ echo $JAVA_HOME
Maven インストール
- Mavenがインストールされていることを確認
$ brew list maven
- まだインストールしていなければインストール
$ brew install maven
- Mavenがインストールされたことを確認
$ mvn --version
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-18T03:33:14+09:00)
...
- MAVEN_HOMEを設定
$ vi ~/.bash_profile
# 以下の行を末尾などに追加
export MAVEN_HOME=/usr/local/Cellar/maven/3.5.4
$ source ~/.bash_profile
$ echo $MAVEN_HOME
Hadoop インストール
第3版のサンプルソースは Hadoop 1.2.1/0.22.0/0.23.x/2.2.0
のバージョンでテストしているとのこと。
ここではver2.2.0のインストールを行う。
- hadoop-2.2.0.tar.gz をダウンロード、解凍
$ cd ~
$ wget https://archive.apache.org/dist/hadoop/core/hadoop-2.2.0/hadoop-2.2.0.tar.gz
$ tar xvzf hadoop-2.2.0.tar.gz
$ ln -s hadoop-2.2.0 hadoop
(任意) /usr/local
に移動して、エイリアスを作成
(※)Macのデフォルトの/usr/localのパーミッションだと、HDFSの起動できないと報告があったので、この手順はやらないでください。
- HADOOP_HOMEを設定&HadoopのbinをPATHに追加
$ vi ~/.bash_profile
# 以下の行を末尾などに追加
export HADOOP_HOME=$HOME/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
$ source ~/.bash_profile
$ echo $HADOOP_HOME
$ hadoop version
Hadoop 2.2.0
...
O'REILLY Hadoop 本のサンプルコードプロジェクトをチェックアウト
- 著者のGithubからチェックアウト(第3版のサンプルコードブランチは3e)
$ cd path/to/workdir
$ git clone https://github.com/tomwhite/hadoop-book
$ cd hadoop-book
$ git checkout 3e
-
IntelliJを起動して
Import Project
を選択 -
Maven
を選択後、ひたすらNext
ボタンを連打して、最後にFinish
ボタンを押す -
Hadoop ver2.2.0 のjarを使用してサンプルコードをパッケージング
$ mvn package -DskipTests -Dhadoop.distro=apache-2
hadoop-examples.jar がプロジェクト直下に作られた事を確認
$ ll hadoop-examples.jar
サンプル実行
- 2章のMaxTemparatureクラスを実行
$ cd path/to/workdir/hadoop-book
$ export HADOOP_CLASSPATH=hadoop-examples.jar
$ hadoop MaxTemperature input/ncdc/sample.txt output
- 実行結果が本に書いてある結果と一致していることを確認
$ cat output/part-r-00000
1949 111
1950 22