記事のディレクトリ
環境:唯一のVMware仮想マシン、IPは172.16.193.200です。
まず、手動展開
1、ファイアウォール、SELinuxを無効にします
systemctl stop firewalld
sed -i '/SELINUX/s/enforcing/disabled/g' /etc/selinux/config
2、ホスト名を設定
hostnamectl set-hostname huatec01
3、jdk1.8インストール
https://blog.csdn.net/weixin_44571270/article/details/102939666
4、ダウンロードHadoopの
wget http://mirrors.hust.edu.cn/apache/hadoop/core/hadoop-2.8.5/hadoop-2.8.5.tar.gz
mv hadoop-2.8.5.tar.gz /usr/local
cd /usr/local
tar xvf hadoop-2.8.5.tar.gz
mv hadoop-2.8.5 hadoop
5、設定ファイルHadoopのを修正
cd /usr/local/hadoop/etc/hadoop/
- hadoop.env.sh
- コア-site.xmlに
- HDFS-site.xmlの
- mapred-site.xmlに
- 糸-site.xmlに
(1)hadoop.env.sh
このファイルには、設定ファイルHadoopの動作環境、実行されているJDKのHadoopを頼る必要、次のように我々は我々がインストールされ、輸出JAVA_HOME JDKのパスを変更したの値です。
export JAVA_HOME=/usr/local/jdk1.8.0_141
(2)コアのsite.xml
コアHadoopのプロファイルファイル、設定ファイルの内容は次のとおりです。
<configuration>
<property>
<name>fs.defaultFS </name>
<value>hdfs://huatec01:9000</value>
</property>
<property>
<name>Hadoop.tmp.dir</name>
<value>/huatec/hadoop-2.8.5/tmp</value>
</property>
</configuration>
上記のコードでは、我々は、主に二つの属性、通信アドレス名前ノードHDFSを特定するための最初の属性で構成、ここではhuatec01に割り当て、Hadoopのを指定するときにファイルストレージ操作のために第二の属性を生成しますときHadoopのフォーマットが自動的に作成されるため、カタログは、私たちは、このディレクトリを作成する必要はありません。
(3)HDFS-site.xmlの
以下のようにファイルには、HDFSのコア構成ファイル、設定ファイルであります:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
コピーHadoopクラスタのデフォルト数は3ですが、今、単一ノード上だけで疑似分散インストールは、3つのコピーを保存しなくても、私たちは、1にプロパティの値を変更することができます。3つのノードが完全に分散されています。
(4)mapred-site.xmlの
このファイルは存在しませんが、mapred-site.xml.templateをテンプレートファイルがある、我々はそれをテンプレートファイルmapred-site.xmlの名前を変更した後、編集します。コアへのMapReduceファイルプロファイル、設定ファイルの内容を次のように
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
上記のプロパティの設定は、Hadoop2.0後、MapReduceのは、糸アーキテクチャ上で実行されているため、我々は特別なステートメントを作成する必要が理由。
(5)糸のsite.xml
糸は、次のように我々は、設定ファイルの内容をノード名および当社のノードマネージャのResourceManagerの主なプロパティを指定し、フレーム・プロファイル・ファイルです:
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>huatec01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
上記のコードでは、我々は2つのプロパティを構成します。我々は、単一ノード配備されているので、最初の属性は、のResourceManagerのアドレスを指定するために使用され、我々はhuatec01指定することができ、第二の属性をデータ取得モードの減速を指定します。
6、フォーマットされたファイルシステム
初期起動あなたがHDFS名前ノード-format形式のファイルシステムを実行する必要があり、その後、HDFSと糸を開始し、その後のスタートダイレクトスタートHDFSと糸がすることができます。
/usr/local/hadoop/bin/hdfs namenode -format
7、HDFSと糸を開始
cd /usr/local/hadoop/sbin/
sh start-dfs.sh
sh start-yarn.sh
#关闭hadoop
sh stop-dfs.sh
sh stop-yarn.sh
8、Hadoopのプロセスを参照してください
jps
アクセス何172.16.193.200:50070
アクセス172.16.193.200:8088、MapReduceの管理インターフェイスを入力します。
展開を成功させます!
第二に、疑似分散型自動デプロイのHadoop
#!/bin/bash
#authored by WuJinCheng
#This shell script is written in 2020.3.17
JDK=jdk1.8.tar.gz
HADOOP_HOME=/usr/local/hadoop
#------初始化安装环境----
installWget(){
echo -e '\033[31m ---------------初始化安装环境...------------ \033[0m'
sed -i '/SELINUX/s/enforcing/disabled/g' /etc/selinux/config
systemctl stop firewalld
wget -V
if [ $? -ne 0 ];then
echo -e '\033[31m 开始下载wget工具... \033[0m'
yum install wget -y
fi
}
#------JDK install----
installJDK(){
ls /usr/local/|grep 'jdk*'
if [ $? -ne 0 ];then
echo -e '\033[31m ---------------开始下载JDK安装包...------------ \033[0m'
wget http://www.wujincheng.xyz/$JDK
if [ $? -ne 0 ]
then
exit 1
fi
mv $JDK /usr/local/
cd /usr/local/
tar xvf $JDK
mv jdk1.8.0_141/ jdk1.8
ls /usr/local/|grep 'jdk1.8'
if [ $? -ne 0 ];then
echo -e '\033[31m jdk安装失败! \033[0m'
fi
echo -e '\033[31m jdk安装成功! \033[0m'
fi
}
JDKPATH(){
echo -e '\033[31m ---------------开始配置环境变量...------------ \033[0m'
grep -q "export JAVA_HOME=" /etc/profile
if [ $? -ne 0 ];then
echo 'export JAVA_HOME=/usr/local/jdk1.8'>>/etc/profile
echo 'export CLASSPATH=$CLASSPATH:$JAVAHOME/lib:$JAVAHOME/jre/lib'>>/etc/profile
echo 'export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin'>>/etc/profile
source /etc/profile
fi
}
#------hadoop install----
installHadoop(){
hostnamectl set-hostname huatec01
ls /usr/local/|grep "hadoop*"
if [ $? -ne 0 ];then
echo -e '\033[31m ---------------开始下载hadoop安装包...------------ \033[0m'
wget http://mirrors.hust.edu.cn/apache/hadoop/core/hadoop-2.8.5/hadoop-2.8.5.tar.gz
if [ $? -ne 0 ]
then
exit 2
fi
mv hadoop-2.8.5.tar.gz /usr/local
cd /usr/local
tar xvf hadoop-2.8.5.tar.gz
mv hadoop-2.8.5 hadoop
fi
}
#------hadoop conf----
hadoopenv(){
sed -i '/export JAVA_HOME=/s#${JAVA_HOME}#/usr/local/jdk1.8#g' /usr/local/hadoop/etc/hadoop/hadoop-env.sh
}
coresite(){
echo '<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. See accompanying LICENSE file.
-->
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.defaultFS </name>
<value>hdfs://huatec01:9000</value>
</property>
<property>
<name>Hadoop.tmp.dir</name>
<value>/huatec/hadoop-2.8.5/tmp</value>
</property>
</configuration>'>$HADOOP_HOME/etc/hadoop/core-site.xml
}
hdfssite(){
echo '<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. See accompanying LICENSE file.
-->
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>'>$HADOOP_HOME/etc/hadoop/hdfs-site.xml
}
mapredsite(){
mv $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml
echo '<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. See accompanying LICENSE file.
-->
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>'>$HADOOP_HOME/etc/hadoop/mapred-site.xml
}
yarnsite(){
echo '<?xml version="1.0"?>
<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License. See accompanying LICENSE file.
-->
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>huatec01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- Site specific YARN configuration properties -->
</configuration>'>$HADOOP_HOME/etc/hadoop/yarn-site.xml
}
#------hdfs 格式化----
hdfsFormat(){
echo -e '\033[31m -----------------开始hdfs格式化...------------ \033[0m'
$HADOOP_HOME/bin/hdfs namenode -format
if [ $? -ne 0 ];then
echo -e '\033[31m Hadoop-hdfs格式化失败! \033[0m'
exit 1
fi
echo -e '\033[31m Hadoop-hdfs格式化成功! \033[0m'
}
install(){
installWget
installJDK
JDKPATH
installHadoop
hadoopenv
coresite
hdfssite
mapredsite
yarnsite
hdfsFormat
}
case $1 in
install)
install
echo -e '\033[31m Hadoop自动化部署完成! \033[0m'
;;
JDK)
installWget
installJDK
JDKPATH
;;
Hadoop)
installWget
installHadoop
echo -e '\033[31m Hadoop安装完成! \033[0m'
;;
confHadoop)
hadoopenv
coresite
hdfssite
mapredsite
yarnsite
echo -e '\033[31m Hadoop配置完成! \033[0m'
;;
format)
hdfsFormat
;;
*)
echo "Usage:$0 {install|JDK|Hadoop|confHadoop|format}";;
esac
第三に、解決エラー
1は、ログオンは拒否!第7工程の開始のHadoopでログオンできないがあるかもしれません
。この文を表示されます。
私たちのホストについてのping!これは、発見されたhuatec01その時にドメイン名解決。そう
vim /etc/resolv.conf
それがすべてです!
2、データノードを開始し、ないのHadoopインタフェースデータノード
を考慮したときに矛盾をフォーマット繰り返しCLUSTERID第6のステップは発生しません!
cd /tmp/hadoop-root/dfs/
現在の下のclusteridの名の下にVERSION
と
データの現在の矛盾下のclusterid VERSION
一貫し、再起動Hadoopのサービスに変更します!