プレリュード
1.次に、ホスト名を変更して、クラスター間のアクセスを容易にします
変更:hostnamectl set-hostname centos1
ビュー:ホスト名
2.ドメイン名解決マッピングファイルを変更し(新しい行を追加)、将来ホスト名から直接アクセスできるようにします。
vi / etc / hosts
#Contentは最後に新しい行を追加します
192.168.190.130 cenos1
192.168.190.131 centos2
192.168.190.132 centos3
service network restart#ネットワークカードサービスを再起動します
再起動#再起動
ping centos1#テストは効果的です
3.ファイアウォールをオフにし、起動を禁止します
firewall-cmd --state#ファイアウォールのステータスを表示する
systemctl stop firewalld.service#ファイアウォールを停止
systemctl disable firewalld.service#ファイアウォールの起動を禁止する
4. selinuxを閉じます
vim / etc / sysconfig / selinux
コンテンツの変更SELINUX =無効
SELINUXTYPE =コメントアウトされたターゲット
scp / etc / sysconfig / selinux centos2:/ etc / sysconfig /
scp / etc / sysconfig / selinux centos3:/ etc / sysconfig /
ダウンロード
http://mirrors.shu.edu.cn/apache/hadoop/common/
hadoop-2.7.7.tar.gz
後でoozieをインストールするためにhadoop-2.6.5.tar.gzに変更されました
インストールする
cd / usr / local
rz
tar xzvf hadoop-2.7.7.tar.gz
rm -rf hadoop-2.7.7.tar.gz
mv hadoop-2.7.7.tar.gz Hadoop
環境変数を構成する
vim / etc / profile#環境変数を設定し、下部を入力して設定を開始します:
エクスポートHADOOP_HOME = / usr / local / hadoop
エクスポートPATH = $ PATH:$ JAVA_HOME / bin:$ HADOOP_HOME / bin:$ HADOOP_HOME / sbin
wq
hadoop-env.sh、yarn-env.sh、mapred-env.shを構成します(3つのシステムすべてが変更されました)。
vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
修改:export JAVA_HOME = $ {JAVA_HOME}意味:export JAVA_HOME = / usr / local / jdk
wq
vim /usr/local/hadoop/etc/hadoop/yarn-env.sh
JAVA_HOME = / usr / local / jdkをエクスポートします
vim /usr/local/hadoop/etc/hadoop/mapred-env.sh
JAVA_HOME = / usr / local / jdkをエクスポートします
ソース/ etc /プロファイル#すぐに有効
テスト中
hadoop分散構成をテストした後、Hadoopが開始されており、対応するディレクトリーがあることを確認してください。
hadoop version
現時点では、最も基本的なhadoop環境(これは開発環境ではありません)で、hadoopに付属のテストプログラムをテストします(wordcount "hello word in hadoop world"を実装)。
cd / usr / local / hadoop
mkdir入力
echo hello sm hello zhangsan hello lisi hi sm> input / info.txt
CD入力
猫のinfo.txt
cd / usr / local / hadoop
hadoop jar share / hadoop / mapreduce / sources / hadoop-mapreduce-examples-2.7.7-sources.jar org.apache.hadoop.examples.WordCount入力出力
CD出力
ll
0
hdfsでテストします。
hadoop fs -put /songtemptest/worldcount.txt / test / input
cd / usr / local / hadoop / share / hadoop / mapreduce
hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount / test / input / test / output
分散システムのhadoopの構成
SSHログインフリー処理
ll〜#sshを削除するように設定している場合
rm -rf〜/ .ssh
ssh-keygen -t rsa#centos1ホストにSSH鍵を生成する
ずっとデフォルトの処理に入る
cat〜/ .ssh / id_rsa.pub >>〜/ .ssh / authorized_keys#公開鍵を認証ファイルにコピーします
ssh root @ centos1#ログイン
終了#ログアウト
注:他のマシンを同期します:ssh-copy-id centos2
構成:core-site.xml Hadoopコア情報(一時ディレクトリ、アクセスアドレスなど)
構成:yarn-site.xml構成に関連するジョブ処理
構成:hdfs-site.xmlは非常に重要です。ファイルバックアップの数とデータフォルダーのパスを決定できます
構成:core-site.xml(3つのシステムすべてが変更されます)
core-site.xmlは、一時ディレクトリ、アクセスアドレスなど、Hadoopのコア情報です。
vim /usr/local/hadoop/etc/hadoop/core-site.xml
<構成>
<プロパティ>
<name> hadoop.tmp.dir </ name>
<値> / home / root / hadoop_tmp </ value>
<description>他の一時ディレクトリのベース。</ description>
</プロパティ>
<プロパティ>
<name> fs.defaultFS </ name>
<値> hdfs:// centos1:9000 </値>
</プロパティ>
</構成>
"/ Home / root / hadoop_tmp"情報が最も重要です。このファイルパス構成の一時ファイル情報が構成されていない場合、 "tmp"ファイルがhadoopフォルダーに生成されます(多くの人が "/ user / local / hadoop / tmp ")、このように構成されている場合、再起動するとすべての情報が消去されます。つまり、現時点ではHadoopの環境は無効になります。
「centos1:9000」メッセージは、将来開かれるページマネージャのパスを示しています。
hadoop 2.xバージョンのデフォルトはポート9000です。1.xバージョンを使用する場合、デフォルトは8020です。
全体的な操作でエラーが発生しないようにするために、「/ home / root / hadoop_tmp」ディレクトリを直接作成できます。
cd〜
mkdir hadoop_tmp
構成:yarn-site.xml(マスターノードのみを変更)
Yarn-site.xml設定関連のジョブ処理
vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
<構成>
<プロパティ>
<name> yarn.resourcemanager.admin.address </ name>
<value> centos1:8033 </ value>
</プロパティ>
<プロパティ>
<name> yarn.nodemanager.aux-services </ name>
<value> mapreduce_shuffle </ value>
</プロパティ>
<プロパティ>
<name> yarn.nodemanager.aux-services.mapreduce_shuffle.class </ name>
<value> org.apache.hadoop.mapred.ShuffleHandler </ value>
</プロパティ>
<プロパティ>
<name> yarn.resourcemanager.resource-tracker.address </ name>
<value> centos1:8025 </ value>
</プロパティ>
<プロパティ>
<name> yarn.resourcemanager.scheduler.address </ name>
<value> centos1:8030 </ value>
</プロパティ>
<プロパティ>
<name> yarn.resourcemanager.address </ name>
<value> centos1:8050 </ value>
</プロパティ>
<プロパティ>
<name> yarn.resourcemanager.webapp.address </ name>
<value> centos1:8088 </ value>
</プロパティ>
<プロパティ>
<name> yarn.resourcemanager.webapp.https.address </ name>
<value> centos1:8090 </ value>
</プロパティ>
</構成>
構成:hdfs-site.xml(3つのシステムすべてが変更されます)
hdfs-site.xmlは非常に重要です。ファイルバックアップの数とデータフォルダーのパスを決定できます
vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<構成>
<プロパティ>
<name> dfs.replication </ name>
<値> 1 </値>
</プロパティ>
<プロパティ>
<name> dfs.namenode.name.dir </ name>
<値> file:/// usr / local / hadoop / dfs / name </ value>
</プロパティ>
<プロパティ>
<name> dfs.datanode.data.dir </ name>
<値> file:/// usr / local / hadoop / dfs / data </ value>
</プロパティ>
<プロパティ>
<name> dfs.namenode.http-address </ name>
<value> centos1:50070 </ value>
</プロパティ>
<プロパティ>
<name> dfs.namenode.secondary.http-address </ name>
<value> centos1:50090 </ value>
</プロパティ>
<プロパティ>
<name> dfs.permissions </ name>
<値>偽</値>
</プロパティ>
<プロパティ>
<name> dfs.namenode.datanode.registration.ip-hostname-check </ name>
<値>偽</値>
</プロパティ>
</構成>
"Dfs.replication":ファイルのコピー数。通常の状況では、ファイルは3つのコピーでバックアップされます。
"Dfs.namenode.name.dir":名前ノードのパスを定義します。
"Dfs.datanode.data.dir":データファイルノードのパスを定義します。
"Dfs.namenode.http-address":ネームサービスのhttpパスアクセス。
"Dfs.namenode.secondary.http-address":2番目の名前ノード。
"Dfs.permissions":許可認証の問題。設定すると、将来ファイルにアクセスできなくなる可能性があるためです。
dfs.namenode.datanode.registration.ip-hostname-check is falseこれを設定するhadoopバージョン2.7.7、またはファイルのアップロードが要求されます:「ホスト名を解決できないため、データノードはnamenodeとの通信を拒否しました(ip = 192.168.190.138、hostname = 192.168.190.138) "tmはipv6を読み取ります。実際にはipv4 ipである必要があります。
構成:mapred-site.xml(マスターノードのみを変更)
cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml
vim /usr/local/hadoop/etc/hadoop/mapred-site.xml
<構成>
<プロパティ>
<name> mapreduce.framework.name </ name>
<値>糸</値>
</プロパティ>
</構成>
その他の構成
ファイルのマスター、スレーブを作成する
vim / usr / local / hadoop / etc / hadoop / masters#加入“ centos1”
vim / usr / local / hadoop / etc / hadoop / slaves#「localhost」を
centos2
centos3
クラスターが将来構築されることを考えると、hadoopは分散開発環境に属しています。
「/ usr / local / hadoop / etc / hadoop /」ディレクトリにマスターファイルを作成し、ホストの名前を書き込み、内容はcentos1(以前のhostsファイルで定義されたホストの名前)にすることをお勧めします。関係ない
フォルダ名、データを作成
cd / usr / local / hadoop
mkdir dfs dfs / name dfs / data
現時点では、namenodeおよびdatanodeストレージパスはすべてhadoopディレクトリに設定されているため、安全を確保したい場合は、独自のパスを作成できます。
注:hadoopに問題があり、再構成されている場合は、これら2つのフォルダーを完全に削除してください。
フォーマット
cd / usr / local / hadoop / bin
hdfs intentode -format
フォーマットされたファイルシステム "INFO util.ExitUtil:ステータス0で終了しました"が成功しました
開始/確認/アクセス/停止
1.スタート
cd / usr / local / hadoop / bin
start-all.sh #start hadoop
2.検証
jps#以下の6がある場合は、Javaプロセスを確認します
2536 DataNode
2408 NameNode
3034 NodeManager
2907 ResourceManager
3339 Jps
2748 SecondaryNameNode
注:クラスタデプロイメントの場合、4つしかなく、他の2つのNodeManagerとDataNodeはスレーブマシン上にあります。
3.訪問
http://192.168.190.130:50070
centos1名を外部でも使用する場合(Windows)、hostsファイルを変更してマッピング構成を追加する必要があります。
C:\ Windows \ System32 \ drivers \ etc \ hosts増加:192.168.190.130 centos1
http://192.168.190.130:8088/cluster
4.停止
stop-all.sh
パスワードなしのログインをテストする
ssh centos2
hdfsファイルシステムアクセス
http://192.168.190.130:50070/explorer.html#/
ホスト名へのアクセスが必要な場合は、ホスト名のマッピングをC:\ Windows \ System32 \ drivers \ etc \ hostsで行う必要があります。
タイハン
1. secondarynamenodeが起動しない
バージョンを変更した後、Hadoopを削除する必要があります:/ home / root / hadoop_tmpこのディレクトリ、
ディレクトリ/ root / hadoop_tmpと混同しないでください
別のログファイルは次のとおりです。
/usr/local/hadoop/logs/hadoop-root-secondarynamenode-centos1.log
これではありません:/usr/local/hadoop/logs/hadoop-root-secondarynamenode-centos1.out
2. hdfs-site.xml設定
dfs.namenode.datanode.registration.ip-hostname-check is falseこれを設定するhadoopバージョン2.7.7、またはファイルのアップロードが要求されます:「ホスト名を解決できないため、データノードはnamenodeとの通信を拒否しました(ip = 192.168.190.138、hostname = 192.168.190.138) "tmはipv6を読み取ります。実際にはipv4 ipである必要があります。
Hadoopの一般的な操作
hadoop fsとhdfs dfsは同じです
ディレクトリ操作
hadoop dfsadmin -safemode leave #Exit safe mode
hadoop fs -mkdir -p / test / test1 #Cascadeでディレクトリを作成
hadoop fs -ls /#ルートディレクトリを表示
hadoop fs -ls #View / user / root /
hadoop fs -rm -r -f / test #Cascade削除ディレクトリ
ファイル操作
hadoop fs -put / usr / local / hadoop / output / part-r-00000 / test / #upload local files to hdfs / test directory
hadoop fs -put / usr / local / hadoop / output / part-r-00000 hdfs:// centos1:9000 / test#または次のように記述
hadoop fs -rm / test / part-r-00000#ファイルを削除
hadoop fs -get / test / part-r-00000 #hdfs上のファイルを現在のディレクトリにダウンロードします