Skip to content

Instantly share code, notes, and snippets.

@YoshihitoAso
Last active August 29, 2015 13:57
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save YoshihitoAso/9444292 to your computer and use it in GitHub Desktop.
Save YoshihitoAso/9444292 to your computer and use it in GitHub Desktop.
[Hadoop][Hive][CDH4][Ubuntu]ubuntu上にhadoop擬似分散モード環境を構築

Ubuntu上にCDH4(Hadoop)擬似分散モード環境を構築する手順

※参考情報:OSのバージョン

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.10
DISTRIB_CODENAME=quantal
DISTRIB_DESCRIPTION="Ubuntu 12.10"

Install Oracle-Java

Java7をインストールする。

$ sudo add-apt-repository ppa:webupd8team/java
$ sudo apt-get update
$ sudo apt-get install oracle-java7-installer

バージョンの確認

$ java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)
$ javac -version
javac 1.7.0_51

pathにJAVA_HOMEを設定しておく必要がある。 .bashrcに以下の設定を追記。

export JAVA_HOME=/usr/lib/jvm/java-7-oracle
export PATH=$PATH:$JAVA_HOME/bin

Install CDH4

$ wget http://archive.cloudera.com/cdh4/one-click-install/precise/amd64/cdh4-repository_1.0_all.deb
$ sudo dpkg -i cdh4-repository_1.0_all.deb
$ curl -s http://archive.cloudera.com/cdh4/ubuntu/precise/amd64/cdh/archive.key | sudo apt-key add -

$ sudo apt-get update
$ sudo apt-get install hadoop-conf-pseudo

ディレクトリを確認。各種設定ファイルが格納されている。 通常起動の場合は編集の必要はない。

$ ls -l /etc/hadoop/conf.pseudo
total 40
-rw-r--r-- 1 root hadoop 1458 Feb 26 09:54 core-site.xml
-rw-r--r-- 1 root hadoop 1364 Feb 26 09:54 hadoop-env.sh
-rw-r--r-- 1 root hadoop 2890 Feb 26 09:54 hadoop-metrics.properties
-rw-r--r-- 1 root hadoop 1875 Feb 26 09:54 hdfs-site.xml
-rw-r--r-- 1 root hadoop 8735 Feb 26 10:21 log4j.properties
-rw-r--r-- 1 root hadoop 1549 Feb 26 09:54 mapred-site.xml
-rw-r--r-- 1 root hadoop 1104 Feb 26 09:54 README
-rw-r--r-- 1 root hadoop 2361 Feb 26 09:54 yarn-site.xml

Create the HDFS /tmp directory

hdfsユーザでHDFSのフォーマットを実施する。

$ sudo -u hdfs
$ hdfs namenode -format

HDFSを起動。

$ /etc/init.d/hadoop-hdfs-namenode
$ /etc/init.d/hadoop-hdfs-datanode
$ /etc/init.d/hadoop-hdfs-secondarynamenode

とすれば良いけど、毎回このコマンドを打つのは面倒なので以下の様なスクリプト(hadoop-hdfs-start)を作っておく。

#!/bin/bash
for service in /etc/init.d/hadoop-hdfs-*
do
sudo $service start
done

停止の場合も同様。以下の様なスクリプト(hadoop-hdfs-stop)を作っておくとラク。

#!/bin/bash
for service in /etc/init.d/hadoop-hdfs-*
do
sudo $service stop
done

起動を実行したら、各サービスが起動していることを確認する。

$ sudo $JAVA_HOME/bin/jps
4233 Jps
2476 NodeManager
2007 SecondaryNameNode
2622 ResourceManager
1827 NameNode
1652 DataNode

Make Directory

HDFS上に必要なディレクトリを作成していく。この作業もhdfsユーザで実施する。

$ sudo su - hdfs
$ hadoop fs -mkdir /tmp ←HDFS上に/tmpを作成
$ hadoop fs -chmod -R 1777 /tmp
$ hadoop fs -mkdir /var/log/hadoop-yarn
$ hadoop fs -chown yarn:mapred /var/log/hadoop-yarn
$ hadoop fs -mkdir /tmp/hadoop-yarn/staging
$ hadoop fs -chmod -R 1777 /tmp/hadoop-yarn/staging
$ hadoop fs -mkdir /tmp/hadoop-yarn/staging/history/done_intermediate
$ hadoop fs -chmod -R 1777 /tmp/hadoop-yarn/staging/history/done_intermediate
$ hadoop fs -mkdir /user/$USER ←hdfsユーザのホームディレクトリ/user/hdfs
$ hadoop fs -chown hdfs /user/$USER

/user/hdfsが作業ディレクトリと考えてよい。上記実行中エラーが出て中断するようなら、HDFSが落ちている可能性があるので起動状態を確認してみる。

HDFS上のlsは以下のようにして実行する。上記で作ったtmp,user,varができてればOK。

$ hadoop fs -ls /
Found 3 items
drwxrwxrwt – hdfs supergroup 0 2013-01-05 12:10 /tmp
drwxr-xr-x – hdfs supergroup 0 2013-01-05 12:36 /user
drwxr-xr-x – hdfs supergroup 0 2013-01-05 12:09 /var

Start YARN

管理ユーザにスイッチしてYARN (MapReduce)を起動する。

$ sudo service hadoop-yarn-resourcemanager start
$ sudo service hadoop-yarn-nodemanager start
$ sudo service hadoop-mapreduce-historyserver start

プロセスの確認。以下の様な感じになっていればOK。

$ sudo $JAVA_HOME/bin/jps
2598 ResourceManager
4798 JobHistoryServer
4840 Jps
1752 NameNode
2448 NodeManager
2043 SecondaryNameNode
1496 DataNode

Hiveをインストールして使ってみる

Hive Install

以下の手順でHiveをインストールする。

$ cd Downloads/
$ mkdir hive
$ cd hive/
$ wget http://mirror.tcpdiag.net/apache/hive/stable/hive-0.11.0.tar.gz
$ tar xzf hive-0.11.0.tar.gz
$ mkdir /usr/lib/hive
$ mv hive-0.11.0 /usr/lib/hive/hive-0.11.0

環境変数を設定する。

$ cd
$ vim .bashrc
$ export HIVE_HOME=/usr/lib/hive/hive-0.11.0
$ export PATH=$PATH:$HIVE_HOME/bin

Login

$ hive
...
..
.

hive>

でOK。

Sample : Create Table

Tableを作成して、CSV形式のファイルをロードしてみる。

hive> create table cats (id int, name string, birthday string) row format delimited fields terminated by ',' lines terminated by '\n';

csv形式のファイルを以下のように用意する。

$ vim cats.csv

1,Tama,19929423
2,Tora,19930304
3,Nya,19930304

以下のコマンドでロード出来る。

hive> load data local inpath '/root/hadoop/hive/cats.csv' overwrite into table cats;
@genhirano
Copy link

参考になりました!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment