Skip to content

Instantly share code, notes, and snippets.

@nojima
Last active August 29, 2015 13:55
Show Gist options
  • Save nojima/8708717 to your computer and use it in GitHub Desktop.
Save nojima/8708717 to your computer and use it in GitHub Desktop.

HDFS メモ

インストール

準備

# Java のインストール
$ sudo apt-get install openjdk-7-jdk

# hadoop ユーザの作成
$ sudo adduser --system --home /var/lib/hadoop --shell /bin/bash --group --disabled-password hadoop

# hadoop ユーザが localhost にパスワードなしで ssh できるようにする
$ sudo su hadoop
$ ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
$ ssh localhost
$ exit
$ exit

HDFS のダウンロード + インストール

$ wget http://ftp.jaist.ac.jp/pub/apache/hadoop/core/hadoop-2.2.0/hadoop-2.2.0.tar.gz
$ tar xf hadoop-2.2.0.tar.gz
$ sudo mv hadoop-2.2.0 /usr/local/hadoop
$ sudo chown -R hadoop:hadoop /usr/local/hadoop

シェルの環境変数の設定

以下の3行をログインシェルの設定に加える。

export HADOOP_HOME=/usr/local/hadoop
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export PATH=$PATH:$HADOOP_HOME/bin

Hadoop の設定

  • $HADOOP_HOME/etc/hadoop/hadoop-env.sh

    -export JAVA_HOME=${JAVA_HOME}
    +export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
    
    -export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-"/etc/hadoop"}
    +export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
  • $HADOOP_HOME/etc/hadoop/core-site.xml

    $ cat $HADOOP_HOME/etc/hadoop/core-site.xml 
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
      <property>
        <name>hadoop.tmp.dir</name>
        <value>/var/lib/hadoop/tmp</value>
        <description>A temporary directory</description>
      </property>
    
      <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:54310</value>
        <description>The name of the default file system.</description>
      </property>
    </configuration>
  • $HADOOP_HOME/etc/hadoop/mapred-site.xml

    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
      <property>
        <name>mapred.job.tracker</name>
        <value>localhost:54311</value>
        <description>The host and port that the MapReduce job tracker runs at.</description>
      </property>
    </configuration>
  • $HADOOP_HOME/etc/hadoop/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>
        <description>Default block replication.</description>
      </property>
    </configuration>

Hadoop の初期化 + 起動

$ sudo su hadoop
$ hadoop namenode -format
$ $HADOOP_HOME/sbin/start-dfs.sh

動作チェック

echo "Hello, World" > hello.txt
hdfs dfs -mkdir -p /user/hadoop
hdfs dfs -copyFromLocal hello.txt /user/hadoop/hello.txt
hdfs dfs -ls /user/hadoop
hdfs dfs -copyToLocal /user/hadoop/hello.txt hello2.txt
cat hello2.txt

終了

$HADOOP_HOME/sbin/stop-dfs.hs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment