Big Data 01-Hadoop3.3.1 疑似分散インストール

Hadoop

序章

  Hadoop は、Apache Software Foundation の下にあるオープン ソースの分散コンピューティング プラットフォームであり、基盤となるシステムの透過的な詳細を備えた分散インフラストラクチャをユーザーに提供します。Hadoop はJava言語に基づいて開発され、優れたクロスプラットフォーム機能を備え、安価なコンピューター クラスターに展開できます。
  Hadoop のコアは、分散ファイル システム HDFS (Hadoop Distributed File System) とMapReduceです。HDFS は、Google ファイル システム (GFS) のオープン ソース実装です。通常のハードウェア環境用の分散ファイル システムです。読み取りと書き込みの速度が速く、フォールト トレランスとスケーラビリティに優れ、大規模なデータをサポートします。分散ストレージとその冗長データストレージ方式により、データのセキュリティが十分に確保されます。MapReduce は Google MapReduce のオープン ソース実装であり、ユーザーは分散システムの基礎となる詳細を知らなくても並列アプリケーションを開発できます. MapReduce を使用して分散ファイル システム上のデータを統合すると、データ分析と処理の効率を確保できます. Hadoop の助けを借りて、プログラマーは分散型並列プログラムを簡単に作成できます。このプログラムは、安価なコンピューター クラスター上で実行して、大量のデータの保存と計算を完了できます。
  Hadoop は、分散環境で大規模なデータ処理機能を提供する、業界のビッグ データ標準オープン ソース ソフトウェアとして認識されています。Google、Yahoo、Microsoft、Cisco、Taobao など、Hadoop に関する開発ツール、オープン ソース ソフトウェア、商用ツール、および技術サービスを提供しているほとんどすべての主流メーカーは、すべて Hadoop をサポートしています。

特性

  Hadoop は、大量のデータを分散処理できるソフトウェア フレームワークであり、信頼性、効率性、拡張性に優れた方法でデータを処理します。

高い信頼性:冗長データ ストレージにより、1 つのコピーに障害が発生した場合でも、他のコピーは通常の外部サービスを保証できます。データをビット単位で保存および処理する Hadoop の機能は信頼できます。
効率性:並列分散コンピューティング プラットフォームとして、Hadoop は分散ストレージと分散処理の 2 つのコア テクノロジを採用し、PB レベルのデータを効率的に処理できます。Hadoop は、ノード間でデータを動的に移動し、各ノードの動的バランスを確保できるため、処理速度が非常に高速です。
高いスケーラビリティ: Hadoop は、安価なコンピューター クラスターで効率的かつ安定して動作するように設計されており、数千のコンピューター ノードに拡張できます。
高いフォールト トレランス:冗長データ ストレージが採用され、データの複数のコピーが自動的に保存され、失敗したタスクは自動的に再分配されます。
低コスト: Hadoop は安価なコンピューター クラスターを使用し、コストが低く、一般のユーザーが自分の PC で Hadoop の動作環境を簡単に構築できます。オールインワン マシン、商用データ ウェアハウス、QlikView や Yonghong Z-Suite などのデータ マートと比較して、Hadoop はオープン ソースであるため、プロジェクトのソフトウェア コストは大幅に削減されます。
Linux プラットフォームでの実行: Hadoop は Java 言語に基づいて開発されており、Linux プラットフォームで適切に実行できます。
複数のプログラミング言語のサポート: Hadoop 上のアプリケーションは、C++ などの他の言語でも記述できます。

Hadoop で公式にサポートされている唯一のオペレーティング プラットフォームは Linux です

前提環境構成

ダウンロードリンク

VMWare ダウンロード アドレス:
https://customerconnect.vmware.com/cn/downloads/details?downloadGroup=WKST-1701-WIN&productId=1376&rPId=100679
Ubuntu ダウンロード アドレス:
https://ftp.sjtu.edu.cn/ubuntu-cd /22.04.1/ubuntu-22.04.1-desktop-amd64.iso
jdk8 ダウンロード アドレス:
https://www.oracle.com/java/technologies/downloads/#java8
Hadoop ダウンロード アドレス:
http://archive.apache. org/dist/hadoop/core/hadoop-3.3.1/hadoop-3.3.1.tar.gz

VMware をインストールする

ここに画像の説明を挿入ここに画像の説明を挿入ここに画像の説明を挿入
ここに画像の説明を挿入ここに画像の説明を挿入

仮想マシンの作成

ここに画像の説明を挿入ここに画像の説明を挿入ここに画像の説明を挿入
ここに画像の説明を挿入ここに画像の説明を挿入ここに画像の説明を挿入
ここに画像の説明を挿入ここに画像の説明を挿入ここに画像の説明を挿入
ここに画像の説明を挿入ここに画像の説明を挿入ここに画像の説明を挿入

VMware ツールをインストールする

VMware Tools が仮想マシンに見つからず、VMware Tools の再インストールがグレーアウトしていたので、VMware Tools を手動でインストールしてから仮想マシンをシャットダウンしてみました。
ここに画像の説明を挿入ここに画像の説明を挿入

ここに画像の説明を挿入

次に、y を最後まで入力すると、何か問題が発生しました。ハハハハ、何が問題なのかわかりません。無視して、キャンセルをクリックしてハハハハ。最後に、VMware ツールのインストールが成功したことを示しています。 .
ここに画像の説明を挿入ここに画像の説明を挿入
ここに画像の説明を挿入

#cd到自己的用户目录
cd /home/xx
#解压安装包
tar -zxvf VMwareTools-10.3.23-17030940.tar.gz
#到解压后的文件夹里面
cd vmware-tools-distrib
#开个权限
sudo chmod 777 vmware-install.pl
#运行安装(其实就是perl安装包)
sudo ./vmware-install.pl

共有フォルダ

便宜上、共有フォルダを設定します。
新しいフォルダーを作成し、構成を完了します。
ここに画像の説明を挿入ここに画像の説明を挿入ここに画像の説明を挿入ここに画像の説明を挿入

Details:
The following packages have unmet dependencies:

samba: Depends: python3 (< 3.11) but 3.10.6-1~22.04 is to be installed
       Depends: samba-common (= 2:4.15.13+dfsg-0ubuntu1) but 2:4.15.13+dfsg-0ubuntu1 is to be installed
       Depends: samba-common-bin (= 2:4.15.13+dfsg-0ubuntu1) but 2:4.15.13+dfsg-0ubuntu1 is to be installed
       Depends: python3:any but it is a virtual package
       Depends: libwbclient0 (= 2:4.15.13+dfsg-0ubuntu1) but 2:4.15.13+dfsg-0ubuntu1 is to be installed
       Depends: samba-libs (= 2:4.15.13+dfsg-0ubuntu1) but 2:4.15.13+dfsg-0ubuntu1 is to be installed

ここに画像の説明を挿入ここに画像の説明を挿入ここに画像の説明を挿入ここに画像の説明を挿入ここに画像の説明を挿入

sudo apt-get install samba

sudo smbpasswd -a xx

Win+r が開き
ここに画像の説明を挿入
、ボックスがポップアップ表示されます。設定したユーザー名とパスワードを入力すると (スクリーンショットを撮るのを忘れました)
、win10 と Ubuntu の両方がフォルダー share2 にアクセスできることがわかります。
ここに画像の説明を挿入

Javaをインストールする

#将/home/xx/文档/share2目录下`jdk-8u311-linux-x64.tar.gz`解压缩到`/opt`目录下
sudo tar -xzvf /home/xx/文档/share2/jdk-8u311-linux-x64.tar.gz -C /opt

#将jdk1.8.0_311目录重命名为java,执行如下命令:
sudo mv /opt/jdk1.8.0_311/ /opt/java

#修改java目录的所属用户:
sudo chown -R xx:xx /opt/java

ここに画像の説明を挿入
システム環境変数を変更する

#打开/etc/profile文件
sudo vim /etc/profile

# 在文件后面添加下面这段
#java
export JAVA_HOME=/opt/java
export PATH=$JAVA_HOME/bin:$PATH

i と入力して Enter を押すと、挿入モードに入り、ファイルの末尾にコンテンツが追加されます。
編集を終了するには、esc キーを押します。
保存して終了するには、:wq と入力します。
ここに画像の説明を挿入ここに画像の説明を挿入

#输入以下命令,使得环境变量生效
source /etc/profile

#执行完上述命令之后,可以通过`JAVA_HOME`目录找到`java`可使用的命令。 通过查看版本号的命令验证是否安装成功
java -version

ここに画像の説明を挿入

SSHログイン許可設定

  Hadoop の擬似配布と完全配布のためには、Hadoop ネーム ノード (NameNode) がクラスタ内のすべてのマシンの Hadoop デーモン プロセスを開始する必要があり、このプロセスは SSH ログインによって実現できます。Hadoop では、SSH でパスワードを入力してログインする形式が提供されていないため、各マシンにスムーズにログインするには、すべてのマシンを名前ノードとして構成し、パスワードなしで SSH 経由でログインできるようにする必要があります。

# 为了实现SSH无密码登录方式,首先需要让NameNode生成自己的SSH密钥
ssh-keygen -t rsa # 执行该命令后,遇到提示信息,一直按回车就可以

#将公共密钥发送给集群中的其他机器,将id_dsa.pub中的内容添加到需要SSH无密码登录的机器的~/ssh/authorized_keys目录下
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
#或者执行以下命令:  
cat /home/datawhale/.ssh/id_rsa.pub >> /home/datawhale/.ssh/authorized_keys

#ssh拒绝连接,安装
sudo apt-get install openssh-server

#通过ssh localhost命令来检测一下是否需要输入密码。 
ssh localhost

ここに画像の説明を挿入ここに画像の説明を挿入

Hadoop 疑似分散インストール

Hadoop のスタンドアロン バージョンをインストールする

hadoop-3.3.1.tar.gz を任意の場所 (/home/xx/文档/share2フォルダーの下など) に配置します (フォルダーのユーザーとグループの両方が Hadoop である必要があることに注意してください)。

# 安装Hadoop
# 将`hadoop-3.3.1.tar.gz`解压缩到`/opt`目录下
sudo tar -xzvf /home/xx/文档/share2/hadoop-3.3.1.tar.gz -C /opt/

# 为了便于操作,我们也将`hadoop-3.3.1`重命名为`hadoop`
sudo mv /opt/hadoop-3.3.1/ /opt/hadoop

# 修改hadoop目录的所属用户和所属组
sudo chown -R xx:xx /opt/hadoop

ここに画像の説明を挿入

# 修改系统环境变量
# 打开`/etc/profile`文件
sudo vim /etc/profile

i を入力して Enter を押して挿入モードに入り、ファイルの最後にコンテンツを追加します。
編集を終了するには esc キーを押します。
保存して終了するには、:wq を入力して Enter を押します。

# 在文件末尾,添加如下内容

#hadoop
export HADOOP_HOME=/opt/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
# 使得环境变量生效
source /etc/profile

# 查看版本号命令验证是否安装成功
hadoop version

ここに画像の説明を挿入
ここに画像の説明を挿入ここに画像の説明を挿入

# 对于单机安装,首先需要更改`hadoop-env.sh`文件,用于配置Hadoop运行的环境变量
cd /opt/hadoop/
vim etc/hadoop/hadoop-env.sh

i を入力して Enter を押して挿入モードに入り、ファイルの最後にコンテンツを追加します。
編集を終了するには esc キーを押します。
保存して終了するには、:wq を入力して Enter を押します。

# 在文件末尾,添加如下内容
export JAVA_HOME=/opt/java/

Hadoop のドキュメントには、テストするためのいくつかの例、WordCount実行可能な例、および Hadoop のインストールが成功したかどうかを確認するための例も含まれています。この例を実行する手順は次のとおりです。

  1. /opt/hadoop/ディレクトリの下に新しいフォルダーを作成してinput、入力データを保存します。
  2. etc/hadoop/フォルダーの下の構成ファイルをフォルダーにコピーしますinput
  3. 出力データを保存するhadoopディレクトリの下に新しいフォルダーを作成します。output
  4. wordCountを実行する
  5. 出力データの内容を表示します。
mkdir input
cp etc/hadoop/*.xml input
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar grep input output 'dfs[a-z.]+'
cat output/*

dfs[a-z.]+出力結果は、すべての設定ファイルの中で、正規表現に一致する単語が1 つだけであることを意味し、その結果が出力されます。
ここに画像の説明を挿入ここに画像の説明を挿入
ここに画像の説明を挿入

Hadoop 疑似分散インストール

疑似分散インストールとは、1 台のマシンで小規模なクラスターをシミュレートすることを意味します。クラスタにHadoopを適用する場合、疑似分散、真分散に関わらず、各コンポーネントの連携動作を設定ファイルで設定する必要があります。
疑似分散構成の場合、 、 、およびこれらの 4 つのファイルを変更する必要core-site.xmlhdfs-site.xmlありmapred-site.xmlますyarn-site.xml

# 打开`core-site.xml`文件
vim /opt/hadoop/etc/hadoop/core-site.xml

i を入力して Enter を押して挿入モードに入り、ファイルの最後にコンテンツを追加します。
編集を終了するには esc キーを押します。
保存して終了するには、:wq を入力して Enter を押します。

<configuration>与</configuration>タグの間に次の構成を追加します

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

core-site.xml構成ファイルの形式は非常に単純で、<name>ラベルは構成アイテムの名前を表し、<value>アイテムは構成の値を設定します。このファイルには、HDFS のアドレスとポート番号を指定するだけでよく、公式ドキュメントによると、ポート番号は 9000 に設定されています。

# 打开`hdfs-site.xml`文件
vim /opt/hadoop/etc/hadoop/hdfs-site.xml

# 添加下面配置到`<configuration>与</configuration>`标签之间
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

ファイルの場合、値を 1 にhdfs-site.xml設定します。これは、Hadoop が HDFS ファイル システム内の同じデータのコピー数を設定するためのデフォルトの最小値でもあります。replication

# 打开`mapred-site.xml`文件
vim /opt/hadoop/etc/hadoop/mapred-site.xml

# 添加下面配置到`<configuration>与</configuration>`标签之间
```html
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.application.classpath</name>
        <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
    </property>
</configuration>


# 修改yarn-site.xml文件配置
vim /opt/hadoop/etc/hadoop/yarn-site.xml

# 添加下面配置到`<configuration></configuration>`标签之间
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
</configuration>

; この実験では、上記の構成を通過した後、動作要件が満たされています。公式ドキュメントの詳細アドレスはこちら. 関心のあるパートナーは、ドキュメント構成の他の項目を参照できます (URL は次のとおりです: https://hadoop.apache.org/docs/stable )
ここに画像の説明を挿入ここに画像の説明を挿入ここに画像の説明を挿入ここに画像の説明を挿入
ここに画像の説明を挿入

構成が完了したら、まずファイル システムを初期化する必要があります。Hadoop の多くのタスクは組み込みの HDFS ファイル システムで完了するため、さらに計算タスクを実行する前にファイル システムを初期化する必要があります。初期化を実行するコマンドは次のとおりです。

# 格式化分布式文件系统
hdfs namenode -format
# 启动Hadoop的所有进程,可以通过提示信息得知,所有的启动信息都写入到对应的日志文件。如果出现启动错误,则可以查看相应的错误日志
/opt/hadoop/sbin/start-all.sh

# 查看Hadoop进程:可以查看所有的`Java`进程
jps

Hadoop WebUI 管理インターフェース

http://localhost:8088Web インターフェイスにアクセスして、Hadoop 情報を表示できます。
ここに画像の説明を挿入ここに画像の説明を挿入
ここに画像の説明を挿入ここに画像の説明を挿入

HDFS クラスターと MapReduce タスク プログラムをテストする

Hadoop に付属のサンプル プログラムを使用してWordCountクラスターを確認し、マスター ノードで次の操作を実行して、MapReduce タスクの実行に必要な HDFS ディレクトリを作成します。

hadoop fs -mkdir /user
hadoop fs -mkdir /user/xx
hadoop fs -mkdir /input

テストファイルを作成

vim /home/xx/test

i を入力して Enter を押して挿入モードに入り、ファイルの最後にコンテンツを追加します。
編集を終了するには esc キーを押します。
保存して終了するには、:wq を入力して Enter を押します。

testファイルに、次を追加します。

Hello world!

ここに画像の説明を挿入ここに画像の説明を挿入

# 将测试文件上传到Hadoop HDFS集群目录
hadoop fs -put /home/xx/test /input

# 执行wordcount程序
hadoop jar /opt/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /input /out

# 查看执行结果:
hadoop fs -ls /out
# 可以看到,结果中包含`_SUCCESS`文件,表示Hadoop集群运行成功。

# 查看具体的输出结果
hadoop fs -text /out/part-r-00000

ここに画像の説明を挿入ここに画像の説明を挿入

学習参考書

https://github.com/datawhalechina/juicy-bigdata

おすすめ

転載: blog.csdn.net/weixin_45735391/article/details/129010011