自動展開のための疑似分散展開Hadoopのビッグデータ分析プラットフォームとシェルスクリプト

環境:唯一の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のサービスに変更します!

彼は188元の記事を発表 ウォンの賞賛150 ビュー30000 +

おすすめ

転載: blog.csdn.net/weixin_44571270/article/details/104792329