ホームページ  >  記事  >  バックエンド開発  >  PHP 入門: PHP と Flink

PHP 入門: PHP と Flink

WBOY
WBOYオリジナル
2023-05-20 08:30:401093ブラウズ

PHP は、人気のあるオープン ソースのサーバーサイド スクリプト言語です。初心者は、PHP と Flink の関係を理解するために、PHP スタート ガイドを学習することをお勧めします。

PHP は、Web 開発に特に使用されるスクリプト言語です。これは動的 Web プログラミングによく使用されますが、コマンドライン メソッドで記述することもできます。さらに、開発者は PHP を使用してアプリケーションや拡張機能を構築し、機能を強化できます。

Flink は、リアルタイム データ処理とバッチ データ処理の両方を処理できるビッグ データ処理フレームワークです。このデータは、Hadoop クラスター、Kafka メッセージ キュー、AWS S3、MongoDB、Elasticsearch などのさまざまなソースから取得できます。 Flinkは、リアルタイムデータとバッチデータを一元的に処理し、異なるデータ間の変換を行うことが特徴です。

次に、PHP と Flink を使用してデータ アプリケーションを構築する方法を見てみましょう。

ステップ 1: 準備

PHP と Flink を使用するには、まず PHP と Flink をインストールする必要があります。 PHP は、次の手順に従ってインストールできます:

1. PHP 実行可能ファイルをダウンロードし、特定のディレクトリに抽出します。
2. MySQL、PDO、GD などの必要な拡張ライブラリをインストールします。
3. PHP.ini ファイルを構成して、必要な拡張機能を有効にし、パラメーターを設定します。

Flink をインストールするには、次の手順を実行してください:

1. Flink バイナリ ファイルをダウンロードし、特定のディレクトリに抽出します。
2. Flink の bin ディレクトリをシステム パスに追加します。
3.構成ファイルに必要なパラメータを設定します。

インストールが完了したら、PHP と Flink の使用を開始できます。

ステップ 2: PHP と Flink を使用してアプリケーションを構築する

この例では、PHP と Flink を使用して単純なリアルタイム データ処理アプリケーションを構築します。アプリケーションは Kafka メッセージ キューからデータを取得し、それを処理のために Flink クラスターに送信します。次に、PHP を使用して Flink REST API に接続し、データ処理プロセスのステータスを監視します。

これは、ログ メッセージを Kafka メッセージ キューに書き込むための単純な PHP スクリプトです:

<?php
require_once('./vendor/autoload.php');

$conf = new RdKafkaConf();
$conf->set('metadata.broker.list', 'localhost:9092');

$producer = new RdKafkaProducer($conf);
$producer->addBrokers('localhost:9092');

$topic = $producer->newTopic('logs');

$message = 'This is a log message';
$topic->produce(RD_KAFKA_PARTITION_UA, 0, $message);

echo 'Message sent to Kafka
';

上記の PHP スクリプトは、「logs」という名前の Kafka トピックにメッセージを送信します。

次に、コードは Flink ストリーミング API を使用して、単純なデータ処理ロジックを作成します。この例では、Kafka トピックからログ メッセージを読み取り、大文字に変換します。

package com.example.flink;

import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumer;

import java.util.Properties;

public class SimpleFlinkJob {

    public static void main(String[] args) throws Exception {

        // set up the streaming execution environment
        final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

        // set up Kafka consumer properties and create a consumer
        Properties properties = new Properties();
        properties.setProperty("bootstrap.servers", "localhost:9092");
        properties.setProperty("group.id", "test");

        FlinkKafkaConsumer<String> consumer = new FlinkKafkaConsumer<>("logs", new SimpleStringSchema(), properties);

        // get the data stream from Kafka
        DataStream<String> input = env.addSource(consumer);

        // map the data stream to uppercase
        DataStream<String> output = input.map(String::toUpperCase);

        // print the result
        output.print();

        // execute the Flink job
        env.execute("Simple Flink Job");
    }
}

上記の Java コードは、Kafka トピック内のログ メッセージを読み取り、大文字に変換し、結果をコンソールに出力します。

次に、Flink REST API に接続し、データ処理プロセスを監視するための PHP スクリプトを作成する必要があります。以下は PHP スクリプトです:

<?php
require_once('./vendor/autoload.php');

use GuzzleHttpClient;

// create a new HTTP client for connecting to Flink REST API
$client = new Client([
    'base_uri' => 'http://localhost:8081',
]);

// request the list of running Flink jobs
$response = $client->get('/jobs/overview');

// output the status of each Flink job
foreach (json_decode($response->getBody()) as $job) {
    echo "{$job->name}: {$job->state}
";
}

上記の PHP スクリプトは Flink REST API に接続し、現在実行中のすべての Flink ジョブのステータスを一覧表示します。

ステップ 3: アプリケーションの実行

アプリケーションを実行するには、次の手順を順番に実行してください:

1. コマンド ラインで Kafka を実行します。
2. Flink クラスターを開始します。
3. PHP スクリプトを実行して、ログ メッセージを Kafka に書き込みます。
4. Flink ジョブをクラスターに送信します。
5. PHP スクリプトを実行して、Flink ジョブのステータスと結果を監視します。

出力は次のようになります。

Simple Flink Job: RUNNING
THIS IS A LOG MESSAGE

上記の出力は、Flink ジョブが実行中であり、ログ メッセージが大文字に正常に変換されていることを示しています。

結論

PHP と Flink はどちらも、大規模でより複雑なアプリケーションを構築するために使用できる非常に便利なツールです。 PHP 入門ガイドを学習すると、PHP と Flink を使用して効率的なデータ処理アプリケーションを構築できるようになります。このサンプル コードが初心者にとって良い出発点となることを願っています。

以上がPHP 入門: PHP と Flinkの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。