Hadoop环境配置与测试
前面的实验我们做好了Linux环境和Hadoop环境的准备与配置工作,因此这一实验我们在上一实验的基础上进行Hadoop环境的配置和测试。
Hadoop环境搭建前的Linux环境安装与配置
https://blog.csdn.net/weixin_43640161/article/details/108614907
Linux下JDK软件的安装与配置
https://blog.csdn.net/weixin_43640161/article/details/108619802
掌握Linux下Eclipse软件的安装与配置
https://blog.csdn.net/weixin_43640161/article/details/108691921
熟悉Hadoop的下载与解压
https://blog.csdn.net/weixin_43640161/article/details/108697510
Hadoop的安装方式有三种,分别是单机模式,伪分布式模式,分布式模式。
• 单机模式:Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试。
• 伪分布式模式:Hadoop可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
• 分布式模式:使用多个节点构成集群环境来运行Hadoop。
• 本实验采取单机伪分布式模式进行安装。
重要知识点提示:
- Hadoopは、単一ノードで疑似分散方式で実行できます。Hadoopプロセスは、独立したJavaプロセスとして実行されます。ノードは、NameNodeとDataNodeの両方として機能します。同時に、HDFSでファイルを読み取ります。
- Hadoopの構成ファイルはhadoop / etc / hadoop /にあります。疑似配布では、5つの構成ファイルhadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-siteを変更する必要があります。 xml
- Hadoop構成ファイルはxml形式であり、各構成はプロパティの名前と値を宣言することで
実験ステップを実装します。 - 構成ファイルの変更:hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml
- ファイルシステムを初期化するhadoop namenode -format
- すべてのプロセスを開始しますstart-all.shまたはstart-dfs.sh、start-yarn.sh
- Webインターフェースにアクセスして、Hadoop情報を表示します
- インスタンスを実行
- すべてのインスタンスを停止します。stop-all.sh
最初のステップ:Hadoop環境を構成します(jdkバージョンが異なり、変更されたコンテンツも異なります。ここではjdk1.8.0_181とhadoop-3.1.1です)
1. Hadoop(疑似分散)を構成し、5つの構成ファイルを変更します
-
Hadoop etcディレクトリに入ります。
ターミナルコマンド:cd /bigdata/hadoop-3.1.1/etc/hadoop
-
最初の構成ファイルの
ターミナルコマンドを変更します。sudovi hadoop-env.sh
54行目を見つけて、JAVA_HOMEを次のように変更します(前の#記号を削除することを忘れないでください)。
export JAVA_HOME=/opt/java/jdk1.8.0_181
- 2番目の構成ファイルの
ターミナルコマンドを変更します。sudovi core-site.xml
<configuration>
<!-- 配置hdfs的namenode(老大)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<!-- 配置Hadoop运行时产生数据的存储目录,不是临时的数据 -->
<property>
<name>hadoop.tmp.dir</name>
<value>file:/bigdata/hadoop-3.1.1/tmp</value>
</property>
</configuration>
- 3番目の構成ファイルの
ターミナルコマンドを変更します。sudovi hdfs-site.xml
<configuration>
<!-- 指定HDFS存储数据的副本数据量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>localhost:50070</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/bigdata/hadoop-3.1.1/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/bigdata/hadoop-3.1.1/tmp/dfs/data</value>
</property>
</configuration>
さらに、疑似配布はfs.defaultFSとdfs.replicationを構成するだけで実行できますが(公式チュートリアルがその場合です)、hadoop.tmp.dirパラメーターが構成されていない場合、使用されるデフォルトの一時ディレクトリーは/ tmp / hadoo-hadoopです。また、このディレクトリは再起動時にシステムによってクリーンアップされる可能性があるため、フォーマットを再度実行する必要があります。そのため、それをセットアップし、dfs.namenode.name.dirおよびdfs.datanode.data.dirも指定します。そうしないと、次のステップでエラーが発生する可能性があります。
- 4番目の構成ファイルを変更します。
ターミナルコマンド:sudo vi mapred-site.xml
<configuration>
<!-- 指定mapreduce编程模型运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
- 5番目の構成ファイル
sudo viarn-site.xmlを変更します
<configuration>
<!-- 指定yarn的老大(ResourceManager的地址) -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<!-- mapreduce执行shuffle时获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
-
hdfs(format HDFS)
端末コマンドを初期化します:
cd /bigdata/hadoop-3.1.1/bin/
sudo ./hdfs namenode -format
-
次の情報が要求された場合、フォーマットは成功です。
ステップ2:Hadoopを起動してテストする
端末コマンド:
cd /bigdata/hadoop-3.1.1/sbin/
ssh localhost
sudo ./start-dfs.sh
sudo ./start-yarn.sh
start-all.sh
上記のエラーが報告された場合は、次の4つのファイルを次のように変更してください
。/ hadoop / sbinパス
の下で、start-dfs.shおよびstop-dfs.shファイルの先頭に次のパラメーターを追加します。
#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
端末コマンド:sudo vi start-dfs.sh
端末コマンド:sudo vi stop-dfs.sh
また、start-yarn.shおよびstop-yarn.shは、次のパラメーターを上部に追加する必要もあります。
#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
端末コマンド:sudo vi start-yarn.sh
端末コマンド:sudo vi start-yarn.sh
変更後、。/ start-all.shを再起動してください。成功しました!
さらに、次のエラーが発生した場合:
次の方法で解決します:
端末コマンド:
ssh localhost
cd /bigdata/hadoop-3.1.1/
sudo chmod -R 777 logs
sudo chmod -R 777 tmp
-
jpsコマンドでプロセスが存在するかどうかを確認しますプロセスは合計5つ(jpsを除く)あり、再起動するたびにプロセスID番号が異なります。シャットダウンする場合は、stop-all.shコマンドを使用できます。
4327 DataNode
4920 NodeManager
4218 NameNode
4474 SecondaryNameNode
4651 ResourceManager
5053 Jps
-
hdfs
localhost:50070の管理インターフェースにアクセスします
-
ヤーン管理インターフェース
localhost:8088にアクセスします
- [ノード]をクリックすると、ubuntu:8042にもアクセスできることがわかります
- すべてのサービスを停止する場合は、sbin / stop-all.shと入力してください
上記はHadoop環境の構成とテストの内容ですが、奇妙なエラーが発生した場合は、コメント領域にメッセージを残すことができます。