Hadoopインストールチュートリアル_スタンドアロン/擬似分散構成_Hadoop2.6.0/Ubuntu16.04
転入先http://dblab.xmu.edu.cn/blog/install-hadoop/
hadoopユーザーの作成
ログイン可能なhadoopユーザーを作成し、/bin/bashをshellとして使用すると、hadoopユーザーに管理者権限を追加し、導入を容易にし、初心者にとって難しい権限の問題を回避できます.
aptの更新
Java環境のインストール
上記のインストール手順では、ネットワークダウンロード関連ファイルにアクセスする必要があります.ネットワークの状態を維持してください.インストールが完了したら、JAVA_を設定する必要がありますHOME環境変数は、Linux端末に次のコマンドを入力、現在ログインしているユーザの環境変数プロファイルを開く.bashrc:
ファイルの一番前に次の行を追加します(等号「=」の前後にスペースを付けることはできません)、保存して終了します.
export JAVA_HOME=/usr/lib/jvm/default-java
Hadoop 2のインストール
Hadoop 2はhttp://mirror.bit.edu.cn/apache/hadoop/common/またはhttp://mirrors.cnnic.cn/apache/hadoop/common/ダウンロードは、一般的に最新の安定バージョン、すなわち「stable」下のhadoop-2をダウンロードすることを選択する.x.y.tar.gzというフォーマットのファイルは、コンパイル済みで、もう一つのsrcを含むファイルはHadoopソースコードで、コンパイルする必要があります.
Hadoopファイルをダウンロードした後に普通は直接使用することができます.しかし、ネットワークが悪いとダウンロードしたファイルが欠落する可能性があり、md 5などの検出ツールを使用してファイルが完全であるかどうかを確認することができます.
Hadoopを/usr/local/にインストールします.
Hadoopは解凍して使えます.次のコマンドを入力して、Hadoopが使用可能かどうかを確認します.成功すると、Hadoopバージョン情報が表示されます.
Hadoopシングルマシン構成(非分散)
Hadoopのデフォルトモードは非分散モード(ローカルモード)で、他の構成を必要とせずに実行できます.非分散型の単一Javaプロセスで、デバッグが容易です.
ここでは例を実行してHadoopの動作を感じることができます.Hadoopにはwordcount、terasort、join、grepなど、豊富な例が付属しています(
ここでgrepの実行例を選択し、inputフォルダ内のすべてのファイルを入力として、正規表現dfs[a-z.]+に一致する単語をフィルタし、出現回数を統計し、outputフォルダに出力します.
実行に成功すると以下のようにジョブに関する情報が出力され,正規の単語dfsadminが1回出現した.
Hadoop単機モード運転grepの出力結果
Hadoop擬似分散構成
Hadoopは単一ノード上で擬似分散方式で実行でき、Hadoopプロセスは分離されたJavaプロセスで実行され、ノードはNameNodeとしてもDataNodeとしても、同時にHDFS内のファイルが読み込まれる.
Hadoopのプロファイルは/usr/local/hadoop/etc/hadoop/にあり、擬似分散は2つのプロファイルcore-siteを修正する必要がある.xmlとhdfs-site.xml .Hadoopのプロファイルはxml形式で、各プロファイルはpropertyのnameとvalueを宣言するように実装されます.
プロファイルcore-siteを変更します.xml(gedit編集で便利:
次の構成に変更します.
同様に、プロファイルhdfs-siteを変更する.xml:
Hadoopプロファイルの説明
Hadoopの動作はプロファイルによって決まる(Hadoopを実行するとプロファイルが読み出される)ため、擬似分散モードから非分散モードに切り替える必要がある場合はcore-siteを削除する必要がある.xmlの構成項目.
また、擬似分布式はfsを構成するだけでよい.defaultFSとdfs.Replicationは実行できますが(公式チュートリアルではそうです)、hadoopが構成されていない場合は.tmp.dirパラメータでは、デフォルトで使用される一時ディレクトリは/tmp/hadoo-hadoopですが、このディレクトリは再起動時にシステムによってクリーンアップされる可能性があり、formatを再実行する必要があります.そこで設定とともにdfsも指定する.namenode.name.dirとdfs.datanode.data.dir、そうしないと次のステップでエラーが発生する可能性があります.
構成が完了したら、Nameノードのフォーマットを実行します.
ここでError:JAVA_HOME is not set and could not be found. のエラーで、前にJAVA_を設定したことを説明します.HOME環境変数の設定ができていませんので、チュートリアルを押してJAVAを設定してください.HOME変数、さもなくば後の過程はすべて行うことができません.前のチュートリアルに従ったら.bashrcファイルにJAVAが設定されていますHOME、やっぱりError:JAVA_HOME is not set and could not be found. では、hadoopのインストールディレクトリでプロファイル「/usr/local/hadoop/etc/hadoop/hadoop-env.sh」を変更し、「export JAVA_HOME=${JAVA_HOME}」という行を見つけて、「export JAVAインストールパスの具体的なアドレス」、例えば「export JAVA_HOME=/usr/lib/jvm/default-java」に変更し、Hadoopを再起動してください.次に、NameNodeおよびDataNodeデーモンプロセスを開始します.
起動が完了すると、コマンドjpsで正常に起動したかどうかを判断できます.正常に起動した場合は、「NameNode」、「DataNode」および「SecondaryNameNode」というプロセスがリストされます(SecondaryNameNodeが起動していない場合は、sbin/stop-dfs.shを実行してプロセスを閉じ、再度起動を試みます).NameNodeまたはDataNodeがない場合は、構成が失敗します.前の手順をよく確認するか、起動ログの調査理由を確認します.
正常に起動すると、Webインタフェースにアクセスできます.http://localhost:50070NameNodeとDatanodeの情報を表示し、HDFSのファイルをオンラインで表示することもできます.
Hadoop擬似分散インスタンスの実行
上記の単機モードではgrep例ではローカルデータを読み出し,擬似分布式ではHDFS上のデータを読み出す.HDFSを使用するには、まずHDFSにユーザーディレクトリを作成する必要があります.
に注意
教材「ビッグデータ技術原理と応用」の命令は「./Bin/hadoop dfs」の先頭にあるShellコマンド方式は,実際には3種類のshellコマンド方式がある.1. hadoop fs 2. hadoop dfs 3. hdfs dfs
hadoop fsは、ローカルファイルシステムやHDFSファイルシステムなど、任意の異なるファイルシステムに適用されます.hadoop dfsは、HDFSファイルシステムhdfsにのみ適用されます.hadoop dfsのコマンドと同様に、HDFSファイルシステムにも適用されます.
次に./etc/hadoopのxmlファイルは入力ファイルとして分散ファイルシステムにコピーされ、/usr/local/hadoop/etc/hadoopが分散ファイルシステムの/user/hadoop/inputにコピーされます.hadoopユーザを使用しており、対応するユーザディレクトリ/user/hadoopが作成されているため、コマンドではinputのような相対パスを使用することができます.その対応する絶対パスは/user/hadoop/inputです.
コピーが完了すると、次のコマンドでファイルのリストを表示できます.
擬似分散型MapReduceジョブを実行する方法は、HDFS内のファイルを擬似分散型で読み取っている点と同じです(単一ステップで作成したローカルinputフォルダを出力結果outputフォルダをすべて削除して検証できます).
実行結果を表示するコマンド(HDFSの出力結果を表示):
結果は次のとおりです.さっきプロファイルを変更したので、実行結果が違います.
に注意
次回hadoopを起動する場合は、NameNodeの初期化を行う必要はなく、
hadoopユーザーの作成
ログイン可能なhadoopユーザーを作成し、/bin/bashをshellとして使用すると、hadoopユーザーに管理者権限を追加し、導入を容易にし、初心者にとって難しい権限の問題を回避できます.
sudo useradd -m hadoop -s /bin/bash
sudo passwd hadoop
sudo adduser hadoop sudo
aptの更新
sudo apt-get update
Java環境のインストール
sudo apt-get install default-jre default-jdk
上記のインストール手順では、ネットワークダウンロード関連ファイルにアクセスする必要があります.ネットワークの状態を維持してください.インストールが完了したら、JAVA_を設定する必要がありますHOME環境変数は、Linux端末に次のコマンドを入力、現在ログインしているユーザの環境変数プロファイルを開く.bashrc:
vim ~/.bashrc
ファイルの一番前に次の行を追加します(等号「=」の前後にスペースを付けることはできません)、保存して終了します.
export JAVA_HOME=/usr/lib/jvm/default-java
source ~/.bashrc #
echo $JAVA_HOME #
java -version
$JAVA_HOME/bin/java -version # java -version
Hadoop 2のインストール
Hadoop 2はhttp://mirror.bit.edu.cn/apache/hadoop/common/またはhttp://mirrors.cnnic.cn/apache/hadoop/common/ダウンロードは、一般的に最新の安定バージョン、すなわち「stable」下のhadoop-2をダウンロードすることを選択する.x.y.tar.gzというフォーマットのファイルは、コンパイル済みで、もう一つのsrcを含むファイルはHadoopソースコードで、コンパイルする必要があります.
Hadoopファイルをダウンロードした後に普通は直接使用することができます.しかし、ネットワークが悪いとダウンロードしたファイルが欠落する可能性があり、md 5などの検出ツールを使用してファイルが完全であるかどうかを確認することができます.
Hadoopを/usr/local/にインストールします.
sudo tar -zxf ~/ /hadoop-2.7.1.tar.gz -C /usr/local # /usr/local
cd /usr/local/
sudo mv ./hadoop-2.7.1/ ./hadoop # hadoop
sudo chown -R hadoop ./hadoop #
Hadoopは解凍して使えます.次のコマンドを入力して、Hadoopが使用可能かどうかを確認します.成功すると、Hadoopバージョン情報が表示されます.
cd /usr/local/hadoop
./bin/hadoop version
Hadoopシングルマシン構成(非分散)
Hadoopのデフォルトモードは非分散モード(ローカルモード)で、他の構成を必要とせずに実行できます.非分散型の単一Javaプロセスで、デバッグが容易です.
ここでは例を実行してHadoopの動作を感じることができます.Hadoopにはwordcount、terasort、join、grepなど、豊富な例が付属しています(
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar
を実行するとすべての例が表示されます).ここでgrepの実行例を選択し、inputフォルダ内のすべてのファイルを入力として、正規表現dfs[a-z.]+に一致する単語をフィルタし、出現回数を統計し、outputフォルダに出力します.
cd /usr/local/hadoop
mkdir ./input
cp ./etc/hadoop/*.xml ./input #
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
cat ./output/* #
実行に成功すると以下のようにジョブに関する情報が出力され,正規の単語dfsadminが1回出現した.
Hadoop単機モード運転grepの出力結果
Hadoop擬似分散構成
Hadoopは単一ノード上で擬似分散方式で実行でき、Hadoopプロセスは分離されたJavaプロセスで実行され、ノードはNameNodeとしてもDataNodeとしても、同時にHDFS内のファイルが読み込まれる.
Hadoopのプロファイルは/usr/local/hadoop/etc/hadoop/にあり、擬似分散は2つのプロファイルcore-siteを修正する必要がある.xmlとhdfs-site.xml .Hadoopのプロファイルはxml形式で、各プロファイルはpropertyのnameとvalueを宣言するように実装されます.
プロファイルcore-siteを変更します.xml(gedit編集で便利:
gedit ./etc/hadoop/core-site.xml
)、中の
次の構成に変更します.
hadoop.tmp.dir
file:/usr/local/hadoop/tmp
Abase for other temporary directories.
fs.defaultFS
hdfs://localhost:9000
同様に、プロファイルhdfs-siteを変更する.xml:
dfs.replication
1
dfs.namenode.name.dir
file:/usr/local/hadoop/tmp/dfs/name
dfs.datanode.data.dir
file:/usr/local/hadoop/tmp/dfs/data
Hadoopプロファイルの説明
Hadoopの動作はプロファイルによって決まる(Hadoopを実行するとプロファイルが読み出される)ため、擬似分散モードから非分散モードに切り替える必要がある場合はcore-siteを削除する必要がある.xmlの構成項目.
また、擬似分布式はfsを構成するだけでよい.defaultFSとdfs.Replicationは実行できますが(公式チュートリアルではそうです)、hadoopが構成されていない場合は.tmp.dirパラメータでは、デフォルトで使用される一時ディレクトリは/tmp/hadoo-hadoopですが、このディレクトリは再起動時にシステムによってクリーンアップされる可能性があり、formatを再実行する必要があります.そこで設定とともにdfsも指定する.namenode.name.dirとdfs.datanode.data.dir、そうしないと次のステップでエラーが発生する可能性があります.
構成が完了したら、Nameノードのフォーマットを実行します.
./bin/hdfs namenode -format
ここでError:JAVA_HOME is not set and could not be found. のエラーで、前にJAVA_を設定したことを説明します.HOME環境変数の設定ができていませんので、チュートリアルを押してJAVAを設定してください.HOME変数、さもなくば後の過程はすべて行うことができません.前のチュートリアルに従ったら.bashrcファイルにJAVAが設定されていますHOME、やっぱりError:JAVA_HOME is not set and could not be found. では、hadoopのインストールディレクトリでプロファイル「/usr/local/hadoop/etc/hadoop/hadoop-env.sh」を変更し、「export JAVA_HOME=${JAVA_HOME}」という行を見つけて、「export JAVAインストールパスの具体的なアドレス」、例えば「export JAVA_HOME=/usr/lib/jvm/default-java」に変更し、Hadoopを再起動してください.次に、NameNodeおよびDataNodeデーモンプロセスを開始します.
./sbin/start-dfs.sh #start-dfs.sh ,
起動が完了すると、コマンドjpsで正常に起動したかどうかを判断できます.正常に起動した場合は、「NameNode」、「DataNode」および「SecondaryNameNode」というプロセスがリストされます(SecondaryNameNodeが起動していない場合は、sbin/stop-dfs.shを実行してプロセスを閉じ、再度起動を試みます).NameNodeまたはDataNodeがない場合は、構成が失敗します.前の手順をよく確認するか、起動ログの調査理由を確認します.
正常に起動すると、Webインタフェースにアクセスできます.http://localhost:50070NameNodeとDatanodeの情報を表示し、HDFSのファイルをオンラインで表示することもできます.
Hadoop擬似分散インスタンスの実行
上記の単機モードではgrep例ではローカルデータを読み出し,擬似分布式ではHDFS上のデータを読み出す.HDFSを使用するには、まずHDFSにユーザーディレクトリを作成する必要があります.
./hdfs dfs -mkdir -p /user/hadoop
に注意
教材「ビッグデータ技術原理と応用」の命令は「./Bin/hadoop dfs」の先頭にあるShellコマンド方式は,実際には3種類のshellコマンド方式がある.1. hadoop fs 2. hadoop dfs 3. hdfs dfs
hadoop fsは、ローカルファイルシステムやHDFSファイルシステムなど、任意の異なるファイルシステムに適用されます.hadoop dfsは、HDFSファイルシステムhdfsにのみ適用されます.hadoop dfsのコマンドと同様に、HDFSファイルシステムにも適用されます.
次に./etc/hadoopのxmlファイルは入力ファイルとして分散ファイルシステムにコピーされ、/usr/local/hadoop/etc/hadoopが分散ファイルシステムの/user/hadoop/inputにコピーされます.hadoopユーザを使用しており、対応するユーザディレクトリ/user/hadoopが作成されているため、コマンドではinputのような相対パスを使用することができます.その対応する絶対パスは/user/hadoop/inputです.
./bin/hdfs dfs -mkdir input
./bin/hdfs dfs -put /usr/local/hadoop/etc/hadoop/*.xml input
コピーが完了すると、次のコマンドでファイルのリストを表示できます.
./bin/hdfs dfs -ls input
擬似分散型MapReduceジョブを実行する方法は、HDFS内のファイルを擬似分散型で読み取っている点と同じです(単一ステップで作成したローカルinputフォルダを出力結果outputフォルダをすべて削除して検証できます).
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'
実行結果を表示するコマンド(HDFSの出力結果を表示):
./bin/hdfs dfs -cat output/*
結果は次のとおりです.さっきプロファイルを変更したので、実行結果が違います.
に注意
次回hadoopを起動する場合は、NameNodeの初期化を行う必要はなく、
./sbin/start-dfs.sh
を実行するだけです!