Ubuntu上でHadoopを動かしたい~環境構築~

今回の目的

  • MapReduceの論文を読むの疲れたので、Hadoopを入れて実際にデータ処理をしてみたくなった
  • UbuntuHadoopを入れてみる
  • MapReduceでサンプル解析をしてみる

参考ページ

Apache Hadoop 2.5.0 セットアップ手順 その1 – ローカル実行からシングルノードクラスター起動まで

作業内容

インストール環境

Javaのインストール

Javaのインストールを行う。今回はOpenJDKをインストール

$sudo apt-get update
$sudo apt-get install -y default -jdk

インストールが終わったら、javaのバージョンを確認

Openjdk version "10.0.2" 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2, mixed mode)

Hadoopのインストール

参考ページのHadoopは古いバージョンだったので、ver 3.1.1をインストール

$wget http://ftp.riken.jp/net/apache/hadoop/common/hadoop-3.1.1/hadoop-3.1.1.tar.gz

バージョンを変更したらダウンロードはできたみたい

次はzipファイルの解凍をします。ディレクトリをどこにしようか悩んだけど、新しいディレクトリ作ってそこに入れてみることにします

$pwd
/home/"user_name"
$mkdir Hadoop
$ls 
examples.desktop     ダウンロード  デスクトップ  ビデオ    ミュージック
hadoop-3.1.1.tar.gz  テンプレート  ドキュメント  ピクチャ  公開
$mv hadoop-3.1.1.tar.gz Hadoop/
$pwd
/home/"username"
$tar xvfz hadoop-3.1.1.tar.gz
$ls
hadoop-3.1.1  hadoop-3.1.1.tar.gz

次の手順「コマンドのディレクトリへパスを通します」何を言っているのかわからんのです。とりあえずやってみた

$pwd
/home/"username"
$sudo vi /ect/profile

結論:できなかった ので、emacsをインストールしてそちらで起動してみることにした

$sudo apt install emacs25
$emacs ~/.profile

なんか開いたんで、最終行にパッチを追記(?)してみる

・・・
export PATH=/home/"username"/Hadoop/hadoop-3.1.1/bin
$source ~/.profile

次はJAVA_HOMEをhadoop-envに指定します(これもよくわからん)

$pwd
/home/”username”/Hadoop/hadoop-3.1.1/etc/hadoop
$emacs hadoop-env.sh
#/etc/hadoop/hadoop-env.sh
#set to the root of your Java installation
export JAVA_HOME=/usr/lib/jvm/default-java

追記が完了したらhadoopコマンドを実行

$hadoop
Usage: hadoop [OPTIONS] SUBCOMMAND [SUBCOMMAND OPTIONS]
 or    hadoop [OPTIONS] CLASSNAME [CLASSNAME OPTIONS]
  where CLASSNAME is a user-provided Java class

  OPTIONS is none or any of:

--config dir                     Hadoop config directory
--debug                          turn on shell script debug mode
--help                           usage information
buildpaths                       attempt to add class files from build tree
hostnames list[,of,host,names]   hosts to use in slave mode
hosts filename                   list of hosts to use in slave mode
loglevel level                   set the log4j level for this command
workers                          turn on worker mode

  SUBCOMMAND is one of:


    Admin Commands:

daemonlog     get/set the log level for each daemon

    Client Commands:

archive       create a Hadoop archive
checknative   check native Hadoop and compression libraries availability
classpath     prints the class path needed to get the Hadoop jar and the
              required libraries
conftest      validate configuration XML files
credential    interact with credential providers
distch        distributed metadata changer
distcp        copy file or directories recursively
dtutil        operations related to delegation tokens
envvars       display computed Hadoop environment variables
fs            run a generic filesystem user client
gridmix       submit a mix of synthetic job, modeling a profiled from
              production load
jar <jar>     run a jar file. NOTE: please use "yarn jar" to launch YARN
              applications, not this command.
jnipath       prints the java.library.path
kdiag         Diagnose Kerberos Problems
kerbname      show auth_to_local principal conversion
key           manage keys via the KeyProvider
rumenfolder   scale a rumen input trace
rumentrace    convert logs into a rumen trace
s3guard       manage metadata on S3
trace         view and modify Hadoop tracing settings
version       print the version

    Daemon Commands:

kms           run KMS, the Key Management Server

SUBCOMMAND may print help when invoked w/o parameters or with -h.

これが表示されたらOKみたい!!!

次にやりたいこと

MapReduceで実際に分析してみたいです