Hadoopのインストールと実行


Hadoopのインストールと実行


私たちは最近、HadoopとSpark(H/S)を実行して、我々がバイオ医薬品業界のために書いているいくつかのソフトウェアの概念テストのために仕事で大きな新しいサーバーを得ました、そして、Windowsサーバー2016/Windows 10でH/Sを稼働させようとしている間、私はいくつかのSnagsを打ちました.私はここで、ステップバイステップ、私はどのようにインストールし、このApacheの製品を実行する方法を直接Windowscmd Linuxエミュレーションを必要としないでください.

Update 16 Dec 2019: Software version numbers have been updated and the text has been clarified.


ソフトウェアを入手


最初のステップはJava、Hadoop、およびスパークをダウンロードすることです.スパークはJavaのより新しいバージョンでの問題を抱えているようです.
  • Java (using version: 8u230+)
  • Hadoop (using version: 3.1.3)
  • Spark (using version: 3.0.0 preview)
  • I can't guarantee that this guide works with newer versions of Java. Please try with Java 8 if you're having issues. Also, with the new Oracle licensing structure (2019+), you may need to create an Oracle account to download Java 8. To avoid this, simply download from AdoptOpenJDK instead.


    Javaのために、私はAdaptopenJDKホットスポットJVMの「Windows X 64」バージョンをダウンロードしますjdk8u232-b09 ); Hadoopに対してV 3の2進法1.3hadoop-3.1.3.tar.gz ); スパークV 3 .0.0 "Apache Hadoop 2.7以降のプリビルド」spark-3.0.0-preview-bin-hadoop2.7.tgz ). この点から、一般的にこれらのバージョンを参照しますhadoop-<version> and spark-<version> ; このチュートリアルの残りの部分を通して、これらのバージョン番号を置き換えてください.

    Even though newer versions of Hadoop and Spark are currently available, there is a bug with Hadoop 3.2.1 on Windows that causes installation to fail. Until that patched version is available (3.3.0 or 3.1.4 or 3.2.2), you must use an earlier version of Hadoop on Windows.


    次はdownload 7-Zip 抜く*gz アーカイブ.あなたが2回抽出する必要があることに注意してください*gz to *.tar ファイル、次に“untar”に2回目.一度抽出されている(Hadoopは、しばらくかかる)、すべての*.tar and *gz ファイル.次の2つのディレクトリとJDKインストーラをダウンロードディレクトリにあります.

    --上で示されるように、「Hadoop」ディレクトリと「火花」ディレクトリはそれぞれAを含みますLICENSE , NOTICE , and README ファイル.Hadoopの特定のバージョンで、あなたはディレクトリ構造を抽出して、得るかもしれません
    C:\Users\<username>\Downloads\hadoop-<version>\hadoop-<version>\...
    
    ...この場合は、内部の内容を移動しますhadoop-<version> 外部ディレクトリhadoop-<version> コピーして貼り付け、ディレクトリを削除してhadoop-<version> ディレクトリ.へのパスLICENSE 例えば、ファイルは次のようになります.
    C:\Users\<username>\Downloads\hadoop-<version>\LICENSE
    
    ..."スパーク"ディレクトリに似ています.

    WARNING: If you see a message like "Can not create symbolic link : A required privilege is not held by the client" in 7-Zip, you MUST run 7-Zip in Administrator Mode, then unzip the directories. If you skip these files, you may end up with a broken Hadoop installation.


    スパークとhadoopディレクトリをC:\ ディレクトリ(あなたのマシンで管理者権限を必要とする場合があります).次に、Javaインストーラを実行しますが、デフォルトのC:\Program Files\AdoptOpenJDK\jdk-<version>\ ちょうどC:\Java . ( h/sは名前のスペースを持つディレクトリに問題があります.

    インストールが終了すると、Javaを削除できます*.msi インストーラ.新しいディレクトリを作るC:\Hadoop and C:\Spark をコピーし、hadoop-<version> and spark-<version> これらのディレクトリへのディレクトリ

    「名前が長すぎる」-タイプ警告を得るならば、それらのファイルを飛ばしてください.これらは*.html ファイルとH/Sの実行に重要ではありません.

    環境変数の設定


    次に、環境変数を設定する必要があります.移動するControl Panel > System and Security > System > Advanced System Settings > Environment Variables... :

    ...と呼ばれる新しいシステム変数( bottom box )を追加します.
  • JAVA_HOME --> C:\Java
  • HADOOP_HOME --> C:\Hadoop\hadoop-<version>
  • SPARK_HOME --> C:\Spark\spark-<version>
  • ( Hadoopのバージョンに合わせて調整し、ダウンロードしたスパーク)
    次に、Path (再び、底のシステム変数ボックスで)これらの変数を\bin 追加\sbin を返します.

    あなたならばecho %PATH% インcmd これらの3つのディレクトリをパスの真ん中に見てください.ユーザパスは%PATH 変数.今すぐチェックしてくださいjava -version , hdfs -version , and spark-shell --version バージョン番号を返します.これは、彼らが正しくインストールされ、あなたの%PATH% :

    上記のコマンドをパス内の任意のスペースの場所から実行する場合は、コマンドが失敗する可能性があることに注意してください.たとえば、あなたのユーザ名が“firstname lastName”で、Hadoopのバージョンをチェックしようとすると、エラーメッセージが表示されます.
    C:\Users\Firstname Lastname>hdfs -version
    Error: Could not find or load main class Lastname
    
    これを修正するには、パス内の任意のスペースなしで作業ディレクトリに移動します(上記のスクリーンショットで行ったように).
    C:\Users\Firstname Lastname>cd ..
    
    C:\Users>hdfs -version
    openjdk version "1.8.0_232"
    OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_232-b09)
    OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.232-b09, mixed mode)
    

    Hadoopを設定する


    次は%HADOOP_HOME%\etc\hadoop ファイルを編集(または作成)するcore-site.xml 以下のようになります.

    コアサイト.XML


    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    
    <configuration>
      <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
      </property>
    </configuration>
    
    同じディレクトリで、mapred-site.xml 次のコンテンツを使用します.

    マップされたサイト。XML


    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    
    <configuration>
      <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
      </property>
    </configuration>
    
    次に、編集(または作成)hdfs-site.xml :

    HDFSサイト.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>
      <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///C:/Hadoop/hadoop-<version>/namenode</value>
      </property>
      <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///C:/Hadoop/hadoop-<version>/datanode</value>
      </property>
    </configuration>
    
    ...Windowsはバックスラッシュを使用していますが、フォワードスラッシュでなければなりません.これはHadoopがこれらのファイルパスを解釈する方法による.また、必ず交換してください<version> 適切なHadoopバージョン番号で.最後に、編集yarn-site.xml それで読む

    糸サイト。XML


    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    
    <configuration>
      <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
      </property>
      <property>
        <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>  
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
      </property>
    </configuration>
    
    最後に我々がする必要があるのは、hdfs-site.xml :

    パッチHadoop


    今、あなたが適用する必要がありますa patch created by and posted to GitHub by user cdarlint . (このパッチがインストールされているHadoopのバージョンに特有であることに注意してください.
    バックアップを作成する%HADOOP_HOME%\bin ディレクトリを\bin.old と同様に、パッチのファイルをコピーする(Hadoopバージョンに固有の、上記のGitレポからダウンロード)古い%HADOOP_HOME%\bin 古いファイルを新しいディレクトリに置き換えます.
    今、あなたが走るならhdfs namenode -format インcmd , 次のようになります.

    もう一つの行い:コピーhadoop-yarn-server-timelineservice-<version> からC:\Hadoop\hadoop-<version>\share\hadoop\yarn\timelineservice to C:\Hadoop\hadoop-<version>\share\hadoop\yarn (親ディレクトリ)(これらはショートバージョン番号です3.1.3 , と、JAR ファイル名とディレクトリ名.

    ブートHDFS


    最後に、実行してHDFSを起動することができますstart-dfs.cmd and start-yarn.cmd インcmd :

    あなたは、そのnamenode , datanode , resourcemanager , and nodemanager を使用しているjps コマンド

    また、開くことができますlocalhost:8088 and localhost:9870 あなたのブラウザーであなたの光沢のある、新しいHadoop分散ファイルシステムを監視する

    最後に、実行してファイルシステムを編集できるようにするhadoop fs -mkdir /test , ディレクトリ名test ルートディレクトリで

    Hadoopとスパークの試験


    ディレクトリの作成方法を今知っていますfs -mkdir ) を返します.fs -ls ) HDFSでは、ファイルの作成と編集についてはどうですか?さて、ファイルをローカルファイルシステムからHDFSfs -put . それから、ファイルはspark-shell with sc.textFile(...) :

    上のファイルをHDFSから読んでくださいhdfs://localhost:9000/ だけでなくhdfs:// . これはdefaultFS 我々はcore-site.xml .
    HDFSを停止したいなら、コマンドを実行できます.
    C:\Users> stop-dfs.cmd
    
    and
    C:\Users> stop-yarn.cmd
    
    それで、あなたはそれを持ちます!Windows上で実行されるスパーク、HDFSに保存されたファイルを読む.これは、行くために少しの仕事をしました、そして、私は以前私と同じバグに遭遇した人々に多くの借りがあります、あるいは、以前、私はこのチュートリアルのためにフレームワークとして使われるチュートリアルを書きました.ここではブログ、Github Repos、およびこのチュートリアルを構築するために使用したポストです.
  • Muhammad Bilal Yar's Hadoop 2.8.0 walkthrough
  • java.net.URISyntaxException
  • java.lang.UnsatisfiedLinkError
  • FATAL resourcemanager.ResourceManager
  • localhost:50070 error
  • Kuldeep Singh's walkthrough and troubleshooting guide
  • Jacek Laskowski's GitBook
  • java.io.IOException: Incompatible clusterIDs
  • HDFS basic commands
  • Spark basic commands