クラスタの完全なモデルを構築するためのHadoop

図1は、環境が必要
名前ノードとsecondaryNodeない同じマシン上とのResourceManagerはまた、別のマシンに配置する必要がある三つの異なるマシン(だけでは同じプロセス)

2、仮想マシン関連の設定は、
我々は3台の仮想マシンのクローン最初のベースマシンから仮想マシン(最も原始的なシステム・マシン)と、すべての基本的な設定を行うには、この仮想マシン上で、その後、この仮想マシン経由が必要二人は、さらにクローニングしました。
基本構成:
* rootパスワードの変更
* sshがインストールされ
、オープンに* SSHのroot権限を-とき>クラスタが開いている必要があります
*変更のホスト名
*修正ホスト
* JDKをインストールし、Hadoopのソフトウェア
の静的IPを設定するには、* - >これは最初のステップですDHCPへの仮想マシンのデフォルトはIPを割り当てることがあるため、クローニングした後は、仮想マシンを起動するたびに同じIP接続ではないかもしれないので、我々はまた、非常にそうIPすべての後という静的IPを設定する必要があり面倒で(行うには、残りの2つの仮想マシンを終了していません変更されません)

ここでは、関連事業ショットは以下のとおりである:
用途:rootパスワードの変更sudo passwd rootrootパスワードを変更するためのコマンド
ここに画像を挿入説明
のsshをインストールするには:apt-get install openssh-server写真はsuあなたが普通のユーザに切り替えたい場合は、rootユーザーに切り替えているsu - 用户名
ここに画像を挿入説明
オープンのssh root権限:rootユーザーで行くようにし我々はそうする最後のステップで、rootユーザーに切り替える必要がありsu、コマンド、および編集するための、その後ssh_configファイルは/ etcに/ sshの
ここに画像を挿入説明
新しいを挿入するには、このラインアウト元のコメント(と、元の禁止にyesにこのファイルのパーミッションを変更ライン)
ここに画像を挿入説明
ホスト名とホストファイルを変更します。入力は/ etc編集、それらのホスト名ファイルとホストは、ホスト名がhadoop2に設定されているファイルを
ここに画像を挿入説明
、JDKをインストールし、Hadoopのソフトウェア:
このファイルは/ home /ユーザー名のフォルダに(このユーザーのフォルダです)ソフトウェアを格納するためのフォルダを作成し、当社のHadoopソフトウェアおよびJDK mkdir software
ここに画像を挿入説明
xftp JDKするために使用するツールをして、この仮想マシンにアップロードさhHadoopソフトウェアはここに画像を挿入説明
ここに画像を挿入説明
、我々は我々自身のファイルフォルダを作成するには、JDKとのHadoopソフトウェアを首尾よく合格していることがわかります
-
2 -解凍圧縮ファイルを通過した後の次のステップは、彼らがにそれらを解凍しますある/usr/localディレクトリ tar -zxvf jdk-8u161-linux-x64.tar.gz -C /usr/local tar -zxvf hadoop-2.6.4.tar.gz -C /usr/local
ここに画像を挿入説明
ここに画像を挿入説明
このディレクトリに正常に解凍したかどうかを確認するためには/ usr / localディレクトリに
ここに画像を挿入説明
、それが成功してますが、アンパックJDKおよびそれらがそのようにコマンドの簡単な変更が名前が変更されていることに使用されるの後ろのHadoop名が長すぎるたmv jdk1.8.0_161/ java mv hadoop-2.6.4/ hadoopのjavaに変更し、それらを使いやすく、Hadoopの、
ここに画像を挿入説明
その後、我々は彼らのユーザーとグループを変更する必要がありchown -R jee:jee hadoop chown -R jee:jee java、グループ名を:JEEは私のユーザー名である:ここJEEに注意してください
ここに画像を挿入説明
、私たちのHadoopとなるように設置することがJDKまた、我々は我々が必要とする次のステップ指定した場所に保存されているJDKの設定にし、Hadoopの環境を変数の環境変数に注意を払うが、私たちは、rootユーザーでのユーザーの設定に関連付けられるべきではない私たちの現在のユーザーに切り替える必要がある su - jee
私たちは、ファイルを編集する必要が私たちのJDK設定するには~/.bashrc、このドキュメントの先頭に追加され

export JAVA_HOME=/usr/local/java
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin

configureのHadoopに我々はまた、編集にファイル必要~/.bashrcこのファイルには参加するが

export HADOOP_HOME=/usr/local/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin

ここに画像を挿入説明
ここに画像を挿入説明
構成環境の完了後の変数が使用する必要があるsource ~/.bashrcコマンドを有効にする設定ファイルを作成し、その後、我々は、JDKのHadoopのバージョンを確認し、すでに利用可能かどうかを確認します
ここに画像を挿入説明
私たちは、JDKとのHadoop環境で学ぶことができるグラフによっては、このように構成されている私たちの最初のマシンの設定が完了した後、私たちは、この仮想マシンのクローンを作成することができます!
ここに画像を挿入説明
3台の仮想マシンは、そのIPアドレスビューを起動してifconfig、その後、xshell使用します(ここでは使用がSecureCRTのである)。この3台の仮想マシンに接続するためのツール
ここに画像を挿入説明
、いくつかの設定を次に我々はクラスタマシンを変更する必要があります:
* 3つの静的IP設定仮想マシンは静的IP設定を行う必要があり
、3台の仮想マシンが別のマシン名を必要とするため*ホスト名とホストファイルの変更を
ここに画像を挿入説明
ものの3台の異なる仮想マシン、ここで見ることができますが、同じマシン名は私たちの最初のあるあります設定hadoop2仮想マシン(マシン名が同じであるように、2つのバック最初のクローンからのため)
* のログインパスワードなしのSSHの設定(重要)なぜそれは次のようだと思いますが重要である
私たちが最初に各マシンを変更しますヘルプへのマシン名は、私たちは、それぞれhadoop2がそうでなければ、混乱慣行や変更のホスト名とホスト一貫したアプローチの上を避けているこれらの3台の仮想マシンを区別するvi hostname vi hosts
ここに画像を挿入説明
ここに画像を挿入説明
ので、3台のマシン上で私たちの名前は私のテストでも呼ばhadoop2 hadoop3 hadoop4(hadoop1を設定されていることテストに指名されたときのマシン)
ここに画像を挿入説明
あなたは、私が変わる時間があれば、我々は、私は今、3つのブリッジモードのIPアドレスを使用している(各仮想マシンの静的IPを変更する必要があります次に、それはここではNATモードに置き換えられます将来的には非常に良いではありませんがブリッジモードで動作していますNATモードは再び変更されました)

まず、ネットワークサービス閉じます service network-manager stop

その後、我々は、に行く必要が/etc/networkinterfacesファイルの内部を変更し、ディレクトリvi interfaces
ここに画像を挿入説明
私たちは、このファイルの終わりに私たち自身の設定パラメータの一部を追加する必要があります

auto ens33  
iface ens33 inet static   //static表示静态的 全局访问
address 192.168.124.21   //这里的address表示我们给这台主机设置的静态IP 三台分别设置21 22 23.
netmask 255.255.255.0   //子网掩码  默认都是255.255.255.0
gateway 192.168.124.1 	//网关
dns-nameservers 192.168.124.1 //DNS名称服务器 和网关一致即可

我々はマシンのIPアドレスを確認する必要があり才能が適切に設定されているだけで、我々は静的IPアドレスを設定する必要がありますし、私たちのローカルIPゲートウェイは、通信のためのネットワークで一貫している必要があり、ここではありません。これらのパラメータ(ブリッジモードNATモード矛盾プラクティス
ここに画像を挿入説明
ここに画像を挿入説明
当社のネットワークサービスを再起動する/etc/init.d/networking restartネットワークが使用に接続されているかどうかを再テストかのように、我々は、この仮想マシンのIPアドレスを調べることができますが、私たちのように構成されていないping www.baidu.com
ここに画像を挿入説明
あなたは、私たちが正常に静的IPとネットワークを設定していることがわかります加えて、2日間何の問題仮想マシンは、同じアプローチではありませんが、ただではない同じ静的のIP

次のステップは、我々は、設定する必要がありますログインパスワードなしのSSHを

为什么我们要配置这个ssh无密码登录呢  
ssh无密码登录 说直白点就是ssh协议连接机器时不需要密码
NameNode-->管理DataNode  NameNode存了元数据 需要去访问DataNode
ResourceManager-->YARN的大管家  需要去访问NodeManager
他们之间的访问 是通过ssh协议完成的   在正常的运行中 ssh协议是需要密码的    我们现在配置的是完全集群模式  我们不可能还去手动输入密码 
所以我们设置ssh无密码登录  不配置的话 集群是有问题的
我们应该怎么样来配置ssh无密码登录呢
我们是将NameNode存放在hadoop2中  SecondaryNode存放在hadoop4中 将ResourceManager存放在hadoop3中

NameNode和SecondaryNode不要部署在一台服务器上 因为在实际的部署环境中 需要Secondary去做NameNode的HA(高可用) 
ResourceManager需要的内存比较大 所以它也需要单独部署在一台服务器上

hadoop2中有 : NameNode + +DataNode + NodeManager
hadoop3中有 : DataNode  + ResourceManager + NodeManager
hadoop4中有 : DataNode + NodeManager + SecondaryNode

NameNode需要去访问DataNode  所以存放NameNode的虚拟机访问存放了DataNode的虚拟机是不需要密码的
所以hadoop2 ssh-->hadoop2、 hadoop3、hadoop4  需要配置无密码登录

ResourceManager 需要访问 NodeManager  所以存放ResourceManager的虚拟机访问存放了NodeManager的虚拟机不需要密码
所以hadoop3 ssh--> hadoop3、hadoop2、hadoop4 需要配置无密码登录

*ステップ

(1) 生成ssh访问的密钥
(2) 拷贝密钥到其他机器上面,就实现了无密码登录(如果其他机器中有本机的ssh密钥 那么本机访问其他机器 就可以不用密码登录了)

要想生成本机的密钥 我们需要进入本机的 /home/用户名/.ssh  这个目录下,  新的虚拟机没有.ssh这个目录 这是因为我们没有使用ssh连过本机  如果没有的话 我们需要 ssh localhost 使用ssh连接一下本机
这样就会生成一个.ssh目录了  我们再进入这个目录下 使用ssh-keygen -t rsa命令 生成密钥

注:関連付けられているユーザーのための重要な必要性一般の利用者へのスイッチにではなく、生成するルートユーザを使用して私たちは通常のユーザーに切り替える必要として、別のユーザーのSSH鍵が同じではありませんが、
ここに画像を挿入説明
見ることができる我々は、我々はの.sshディレクトリにする必要はありませんssh localhost彼は機械で訪れてみましょう.sshディレクトリを生成し
ここに画像を挿入説明
、我々はの.sshディレクトリの下に生成された私たちのSSHキー入力の横にssh-keygen -t rsa
ここに画像を挿入説明
2つのファイルが生成され見ることができた秘密鍵に公開鍵を、我々は他のマシンに公開鍵をコピーすることができますあなたは、次を参照して、マシンがすでに公開されているならば、我々は192.168.124.22を行ったマシンの成功の公開鍵の他のニーズは同じアプローチがパスワードなしで構成されている接続をsshを考えているとき、公開鍵authorized_keysファイルが存在している私たちのコピーの代わりに、 。ssh-copy-id 目标机器的IP地址ssh-copy-id 192.168.124.22
ここに画像を挿入説明

ここに画像を挿入説明

不要忘记给本机也要复制一个公钥  本机通过ssh访问本机 也是需要ssh公钥的!!!

我々がないssh接続、それは完全な名前が変更されていないという理由だけで、我々はhostsファイルを変更する前にパスワードを変更する必要が終了した後、他の二つを見つけるために彼を可能にするために一緒に、我々はまた、そのIPアドレスを変更する必要があるとIP他の2台の仮想マシンIPステーションのアドレス(3がしなければならない)
ここに画像を挿入説明
ここに画像を挿入説明
、その後、私たちの3台の仮想マシンは、当社の使用で見つけることができます再起動pingし、sshこのホスト名に接続された3台のマシンのコマンドが正常にこの番組のファイル名と、当社のhostsファイルの設定ファイルのホスト名とIPすることができ発効を
ここに画像を挿入説明
ここに画像を挿入説明
見ることができ、我々はパスワードを入力する必要がないこと、SSH接続を使用して

我们做上述的这些操作  就是为了可以使用 ssh hostname--->直接登录集群的机器

Hadoopの設定ファイル:
ここに画像を挿入説明
次は、我々はクラスタを構成する必要があります:
*(1)の構成は、一台のマシン上で完了しました
*(2)他のマシンに配布マシン上のすべての構成

この図の要件に従って、当社は、これらのファイルの構成を変更するためにそれらを得る
コアが-site.xmlに入る修正/usr/local/hadoop/etc/hadoopの修正されているディレクトリ以下の情報を追加しますcore-site.xml
ここに画像を挿入説明
core-site.xml

<configuration>
	<!--配置Hadoop中NameNode存放元数据信息的目录-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/data</value>
	</property>
<!--配置Hadoop NameNode节点 value中写的是存放NameNode节点的机器名 hadoop2-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop2:9000</value>
	</property>
</configuration>

ここに画像を挿入説明
構成hadoop-env.shJAVA_HOMEが修正以下に示すように、
ここに画像を挿入説明
設定はhdfs-site.xml、この文書に挿入されvi hdfs-site.xml

<configuration>
<property>
		<!--设置副本的个数  因为我们使用了三台虚拟机 所以设为3-->
        <name>dfs.replication</name>
        <value>3</value>
</property>
<property>
		<!--设置SecondaryNode的位置  因为我们将SecondaryNode存放在第三台虚拟机中 所以value中写的是第三台主机的hostname hadoop4-->
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop4:50090</value>
</property>
<property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/data/dfs/name</value>
</property>
<property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/data/dfs/data</value>
</property>
</configuration>

ここに画像を挿入説明
変更しslaves、当社の3台の仮想マシンがリストに追加されたファイル名を(その手段の複数のノード上で実行され、当社のデータノードというvi slaves
ここに画像を挿入説明
yarn-env.sh- >変更JAVA_HOMEの設定
ここに画像を挿入説明
変更yarn-site.xml vi yarn-site.xml、次のコンテンツの挿入

<!--reducer获取数据的方式-->
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
</property>
<!--指定yarn的ResourceManager的地址  我们将ResourceManager存放在第二台虚拟机 所以value为第二台虚拟机的hostname hadoop3-->
<property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop3</value>
</property>

ここに画像を挿入説明
設定mapred-env.sh- >変更JAVA_HOMEが設定さ
ここに画像を挿入説明
ためにmapred-site.xml.template変更mapred-site.xml mv mapred-site.xml.template mapred-site.xmlし、次はmapred-site.xmlに挿入されています

<configuration>
<!--指定mr运行在yarn上-->
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
</property>
</configuration>

これまで我々は、我々は唯一、このコマンドを使用してこれらのマシンで構成された別の2機まで配布する必要があるこのマシンの上記の設定が完了しました

rsync -rvl /usr/local/hadoop/etc/hadoop/* jee@hadoop3:/usr/local/hadoop/etc/hadoop
其中/usr/local/hadoop/etc/hadoop/* 表示这个目录中的所有文件
jee@hadoop3 中 jee是指当前的用户名hadoop3是值虚拟机的名字

ここに画像を挿入説明
この成功は、他の2台の仮想マシンに配布し、このカタログ内のすべての設定は、ファイルが良好な分配に関連しているかどうかを確認するために、他の2台の仮想マシンに行くことができています

この時点で、我々は、すべてのクラスタセットアップ行われています!

次のステップは、このクラスタに問題があるかどうかを確認するために、それを実行することです

我们创建了三台虚拟机  hadoop2、hadoop3、hadoop4
hadoop2中有NameNode+DataNode+NodeManager
hadoop3中有DataNode+ResourceManager+NodeManager
hadoop4中有SecondaryNode+DataNode+NodeManager
我们配置了HDFS和YARN  所以 要启动这个集群 我们只需要启动HDFS和YARN即可
启动HDFS : 在NameNode这个节点执行启动命令即可(在启动之前需要格式化我们的NameNode!!!)
启动YARN : 在ResourceManager这个节点执行启动命令即可

レッツテストは:最初に私たちの名前ノードフォーマットを開始/usr/local/hadoop/bin、次のディレクトリを./hdfs namenode -format
ここに画像を挿入説明
ここに画像を挿入説明
、我々はHDFS開始することができます完了名前ノードフォーマットした後インセプションHDFSを、その後、糸を開始します。HDFSはで開始し/usr/local/hadoop/sbin、次のディレクトリに./start-dfs.sh
ここに画像を挿入説明
して、私たちのYARNのResourceManagerノード上で起動し/usr/local/hadoop/sbin、次のディレクトリに./start-yarn.sh
ここに画像を挿入説明

だから、私たちのクラスタが起動することを、私たちは、各仮想マシン上で使用することができjps、この仮想マシン上のプロセスを表示するために

如果正常启动 那么
第一台机器上的进程:NameNode+DataNode+NodeManager
第二台机器上的进程:ResourceManager+DataNode+NodeManage
第三台机器上的进程:SecondaryNode+DataNode+NodeManage

まず機械:
ここに画像を挿入説明
二機:
ここに画像を挿入説明
三機:
ここに画像を挿入説明

この観点から、我々は3台のマシンは、プロセスが間違っていない処理してい

查看web页面:http://nameNode机器的IP:50070/

ここに画像を挿入説明

如果我们想停集群
先停Yarn,再停Hdfs.
停Yarn:sbin/stop-yarn.sh
停Hdfs:sbin/stop-dfs.sh

これらは、完全なHadoopクラスタモードを構築するためのすべてのステップです!

クラスタの事実を構築する上記の方法は、それが実際にはデータノードを立ち上げているバグがあることに注意してください
ここに画像を挿入説明

原因分析:
配置hosts中localhost为本机Ip。datanode连接到namenode上识别到localhost,又回头重连自己。
解决办法:
删除hosts配置的localhost(集群中的每台机器都需要做)

ここに画像を挿入説明
その後、我々は、Webページノード数で見ることができます
ここに画像を挿入説明

仮想マシンは、ネイティブhadoop2 / hadoop3 / hadoop4でドメイン名にアクセスする場合は、新聞が認識されません。

解决办法:
C:\Windows\System32\drivers\etc 下的hosts文件
添加下面信息:
192.168.1.17 hadoop102
192.168.1.18 hadoop103
192.168.1.19 hadoop104
公開された53元の記事 ウォンの賞賛0 ビュー1947

おすすめ

転載: blog.csdn.net/XXuan_/article/details/104705994