LoginSignup
2
2

More than 5 years have passed since last update.

Apache HDFS/hadoopを、Single Node Clusterで動かしてみた

Last updated at Posted at 2016-03-03

今回は、Apache hadoopファミリーのHDFSを試してみた
ちなみに、HDFSとは、"Hadoop Distributed File System"とのことだそうです。

⬛︎ HDFS環境構築

  • JDK環境をインストールし、JAVA_HOME環境変数にセットする
$ sudo apt-get install default-jdk
$ sudo update-alternatives --list java
/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java

$ cd $HOME
$ vi .profile
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export PATH=$HOME/hadoop-2.7.2/bin:$HOME/hadoop-2.7.2/sbin:$PATH
$ source .profile
  • ssh環境をセットアップする
$ sudo apt-get install ssh
$ sudo apt-get install rsync
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys

ssh localhostで、パスワード問い合わせが無いことを確認する

$ ssh localhost
$ exit
  • Hadoopをダウンロードする
$ wget http://www.apache.org/dist/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz
$ tar xfz hadoop-2.7.2.tar.gz
$ cd hadoop-2.7.2/etc/hadoop/
  • hadoop設定ファイルを修正する

まず、core-site.xmlを編集する

$ vi core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

つづいて、hdfs-site.xmlを編集する

$ vi hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

そして、hadoop-env.shも編集しておく

$ vi hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
  • NameNodeを初期化する
$ hdfs namenode -format
16/03/04 03:55:40 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = HDFS/127.0.1.1
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 2.7.2

... (snip)

/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at HDFS/127.0.1.1
************************************************************/
  • hadoopを起動する
$ start-dfs.sh 
Starting namenodes on [localhost]
localhost: starting namenode, logging to /home/tsubo/hadoop-2.7.2/logs/hadoop-tsubo-namenode-HDFS.out
localhost: starting datanode, logging to /home/tsubo/hadoop-2.7.2/logs/hadoop-tsubo-datanode-HDFS.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /home/tsubo/hadoop-2.7.2/logs/hadoop-tsubo-secondarynamenode-HDFS.out
  • hadoopプロセス起動を確認する
$ jps
12767 Jps
12656 SecondaryNameNode
12462 DataNode
12302 NameNode
  • hadoop動作状態を確認する

Webブラウザから、http://localhost:50070/ にアクセスして、hadoop動作状態を確認する

Overview.png

⬛︎ HDFSを使ってみる

  • fooディレクトリを作成してみる
$ hdfs dfs -ls /
$ hdfs dfs -mkdir /foo
$ hdfs dfs -ls /
Found 1 items
drwxr-xr-x   - tsubo supergroup          0 2016-03-04 04:11 /foo
  • UNIXローカル上のテキストファイルを、HDFS上に保管してみる
$ cat /home/tsubo/test.txt
test data
$ hdfs dfs -put /home/tsubo/test.txt /foo
@HDFS:~$ hdfs dfs -ls /foo
Found 1 items
-rw-r--r--   1 tsubo supergroup         10 2016-03-04 04:14 /foo/test.txt
  • HDFS上のtest.txtファイル内容を確認してみる
$ hdfs dfs -cat /foo/test.txt
test data
  • Webブラウザの管理画面からも確認してみる

Browse.png

  • test.txtファイルを削除する
$ hdfs dfs -rm /foo/test.txt
16/03/04 04:20:54 INFO fs.TrashPolicyDefault: Namenode trash configuration: Deletion interval = 0 minutes, Emptier interval = 0 minutes.
Deleted /foo/test.txt
  • fooディレクトリを削除する
$ hdfs dfs -rmdir /foo
$ hdfs dfs -ls /
  • 最後に、Hadoopを停止しておく
$ stop-dfs.sh
Stopping namenodes on [localhost]
localhost: stopping namenode
localhost: stopping datanode
Stopping secondary namenodes [0.0.0.0]
0.0.0.0: stopping secondarynamenode

以上

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2