Looking for hadoop Answers? Try Ask4KnowledgeBase
Looking for hadoop Keywords? Try Ask4Keywords

hadoophadoopを使い始める


備考

Apache Hadoopとは何ですか?

Apache Hadoopソフトウェアライブラリは、単純なプログラミングモデルを使用して多数のコンピュータクラスタにわたって大規模なデータセットを分散処理するためのフレームワークです。単一のサーバーから数千のマシンにスケールアップされ、それぞれがローカルの計算とストレージを提供するように設計されています。ライブラリは高可用性を実現するためにハードウェアに頼るのではなく、アプリケーション層で障害を検出して処理するように設計されているため、障害の発生しやすいコンピュータクラスタ上で高可用性サービスを提供します。

Apache Hadoopには、次のモジュールが含まれています。

  • Hadoop Common :他のHadoopモジュールをサポートする一般的なユーティリティ。
  • Hadoop分散ファイルシステム(HDFS) :アプリケーションデータへのハイスループットアクセスを提供する分散ファイルシステム。
  • Hadoop YARN :ジョブスケジューリングとクラスタリソース管理のためのフレームワーク。
  • Hadoop MapReduce :大規模データセットの並列処理用のYARNベースのシステム。

参照:

Apache Hadoop

バージョン

バージョンリリースノート発売日
3.0.0-alpha1 2016-08-30
2.7.3 ここをクリック - 2.7.3 2016-01-25
2.6.4 ここをクリック - 2.6.4 2016-02-11
2.7.2 ここをクリック - 2.7.2 2016-01-25
2.6.3 ここをクリック - 2.6.3 2015-12-17
2.6.2 ここをクリック - 2.6.2 2015-10-28
2.7.1 ここをクリック - 2.7.1 2015-07-06

Hadoopの概要とHDFS

ここに画像の説明を入力

    Hadoopは、分散コンピューティング環境におけるデータセットのストレージと大規模な処理のためのオープンソースのソフトウェアフレームワークです。 これはApache Software Foundationが後援しています。 単一のサーバーから数千のマシンにスケールアップされ、それぞれがローカルの計算とストレージを提供するように設計されています。
歴史

  • Hadoopは2005年にDoug CuttingとMike Cafarellaによって作成されました。
  • 切手、Yahoo!で働いていた人当時、彼の息子のおもちゃの象の後にそれを名づけました。
  • もともとは、検索エンジンプロジェクトの配布をサポートするために開発されました。
hadoopの主要モジュール

    Hadoop分散ファイルシステム(HDFS):アプリケーションデータへのハイスループットアクセスを提供する分散ファイルシステム。 Hadoop MapReduce:コンピューティングクラスタ上で大規模なデータセットを分散処理するためのソフトウェアフレームワーク。
Hadoopファイルシステムの 基本機能

    フォールトトレラントです。 高いスループット。 大きなデータセットを持つアプリケーションに適しています。 コモディティハードウェアから構築できます。
ネームノードとデータアノード

    マスター/スレーブアーキテクチャ HDFSクラスタは、ファイルシステムのネームスペースを管理し、クライアントによるファイルへのアクセスを規制するマスターサーバーである単一のネームノードで構成されています。 DataNodeは、それらが実行されているノードに接続されたストレージを管理します。 HDFSはファイルシステムの名前空間を公開し、ユーザデータをファイルに保存することができます。 ファイルは1つ以上のブロックに分割され、ブロックのセットはDataNodeに格納されます。 DataNodes:ネームノードからの命令に基づいて、読み取り、書き込み要求、ブロックの作成、削除、複製を行います。

ここに画像の説明を入力

    HDFSは、大規模なクラスタ内のマシン間で非常に大きなファイルを格納するように設計されています。 各ファイルは一連のブロックです。 最後のファイルを除くファイル内のブロックはすべて同じサイズです。 ブロックはフォールトトレランスのために複製されます。 ネームノードは、クラスタ内の各DataNodeからハートビートとBlockReportを受信します。 BlockReportには、データノード上のすべてのブロックが含まれます。
Hadoopシェルコマンド

    使用される一般的なコマンド: -
      ls使用法: hadoop fs -lsパス (ディレクトリ/ファイルのパス)。 Cat使用法: hadoop fs -cat PathOfFileToView

ここに画像の説明を入力

hadoopシェルコマンドのリンク: - https://hadoop.apache.org/docs/r2.4.1/hadoop-project-dist/hadoop-common/FileSystemShell.html

ubuntuへのHadoopのインストール

Hadoopユーザーの作成:

sudo addgroup hadoop
 

ユーザーを追加する:

sudo adduser --ingroup hadoop hduser001
 

ここに画像の説明を入力

SSHの設定:

su -hduser001
ssh-keygen -t rsa -P ""
cat .ssh/id rsa.pub >> .ssh/authorized_keys
 

:認証されたキーを書き込んでいる間にエラーが発生した場合[ bash:.ssh / authorized_keys:そのようなファイルまたはディレクトリはありません ]。 ここを確認してください

ここに画像の説明を入力 ここに画像の説明を入力 ここに画像の説明を入力

sudoerのリストにhadoopユーザを追加する:

sudo adduser hduser001 sudo
 

ここに画像の説明を入力

IPv6を無効にする:

ここに画像の説明を入力 ここに画像の説明を入力

Hadoopのインストール:

sudo add-apt-repository ppa:hadoop-ubuntu/stable
sudo apt-get install hadoop
 

ここに画像の説明を入力 ここに画像の説明を入力

Linuxでのインストールまたはセットアップ

擬似分散クラスタセットアップ手順

前提条件

  • JDK1.7をインストールし、JAVA_HOME環境変数を設定します。

  • 新しいユーザーを "hadoop"として作成します。

    useradd hadoop

  • 自分のアカウントにパスワードなしのSSHログインをセットアップする

     su - hadoop
     ssh-keygen
     << Press ENTER for all prompts >>
     cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
     chmod 0600 ~/.ssh/authorized_keys
     
  • ssh localhost 実行して確認する

  • /etc/sysctl.conf を次のように編集して、IPV6を無効にします。

     net.ipv6.conf.all.disable_ipv6 = 1
     net.ipv6.conf.default.disable_ipv6 = 1
     net.ipv6.conf.lo.disable_ipv6 = 1
     
  • cat /proc/sys/net/ipv6/conf/all/disable_ipv6 を使用して確認します。

    (1を返します)

インストールと設定:

  • wget コマンドを使用してApacheアーカイブから必要なバージョンのHadoopをダウンロードします。

     cd /opt/hadoop/
     wget http:/addresstoarchive/hadoop-2.x.x/xxxxx.gz
     tar -xvf hadoop-2.x.x.gz
     mv hadoop-2.x.x.gz hadoop 
    (or)
    
     ln -s hadoop-2.x.x.gz hadoop
     chown -R hadoop:hadoop hadoop
     
  • 以下の環境変数を持つシェルに基づいて.bashrc / .kshrc を更新します。

      export HADOOP_PREFIX=/opt/hadoop/hadoop
      export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop
      export JAVA_HOME=/java/home/path
      export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin:$JAVA_HOME/bin
     
  • $HADOOP_HOME/etc/hadoop ディレクトリに以下のファイルを編集します

    • core-site.xml

      <configuration>
          <property>
              <name>fs.defaultFS</name>
              <value>hdfs://localhost:8020</value>
          </property>
      </configuration> 
       
    • mapred-site.xml

      そのテンプレートからmapred-site.xml を作成する

      cp mapred-site.xml.template mapred-site.xml

        <configuration>
            <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
            </property>
        </configuration> 
       
    • yarn-site.xml

       <configuration>
           <property>
               <name>yarn.resourcemanager.hostname</name>
               <value>localhost</value> 
           </property>
           <property>
               <name>yarn.nodemanager.aux-services</name>
               <value>mapreduce_shuffle</value>
           </property>
       </configuration>
       
    • hdfs-site.xml

       <configuration>
           <property>
               <name>dfs.replication</name>
               <value>1</value>
           </property>
           <property>
               <name>dfs.namenode.name.dir</name>
               <value>file:///home/hadoop/hdfs/namenode</value>
           </property>
           <property>
               <name>dfs.datanode.data.dir</name> 
               <value>file:///home/hadoop/hdfs/datanode</value> 
           </property>
       </configuration>
       

    hadoopデータを保存する親フォルダを作成する

    mkdir -p /home/hadoop/hdfs
     
  • フォーマットNameNode(ディレクトリをクリーンアップし、必要なメタファイルを作成する)

    hdfs namenode -format
     
  • すべてのサービスを開始する:

    start-dfs.sh && start-yarn.sh
    mr-jobhistory-server.sh start historyserver
     

その代わりに、start-all.sh(廃止予定)を使用してください。

  • 実行中のJavaプロセスをすべて確認する

    jps 
     
  • Namenode Web Interface: http:// localhost:50070 /

  • リソースマネージャのWebインターフェイス: http:// localhost:8088 /

  • デーモン(サービス)を停止するには:

    stop-dfs.sh && stop-yarn.sh
    mr-jobhistory-daemon.sh stop historyserver
     

その代わりにstop -all.sh(廃止予定)を使用してください。