Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bermula dengan PHP: PHP dan Flink

Bermula dengan PHP: PHP dan Flink

WBOY
WBOYasal
2023-05-20 08:30:401136semak imbas

PHP ialah bahasa skrip bahagian pelayan sumber terbuka yang popular Adalah disyorkan bahawa pemula mempelajari Panduan Permulaan PHP untuk memahami hubungan antara PHP dan Flink.

PHP ialah bahasa skrip yang digunakan khusus untuk pembangunan web. Ia biasanya digunakan untuk pengaturcaraan web dinamik, tetapi juga boleh ditulis dalam kaedah baris arahan. Selain itu, pembangun boleh membina aplikasi dan sambungan menggunakan PHP untuk meningkatkan fungsi mereka.

Flink ialah rangka kerja pemprosesan data besar yang boleh mengendalikan pemprosesan data masa nyata dan kelompok. Data ini boleh datang daripada pelbagai sumber seperti gugusan Hadoop, baris gilir mesej Kafka, AWS S3, MongoDB dan Elasticsearch. Flink dicirikan oleh pemprosesan bersatu data masa nyata dan data kelompok, dan penukaran antara data yang berbeza.

Sekarang mari lihat cara membina aplikasi data menggunakan PHP dan Flink.

Langkah Pertama: Persediaan

Untuk menggunakan PHP dan Flink, anda perlu memasang PHP dan Flink terlebih dahulu. PHP boleh dipasang dengan mengikuti langkah berikut:

1. Muat turun fail boleh laku PHP dan ekstrak ke direktori tertentu.
2. Pasang perpustakaan sambungan yang diperlukan, seperti MySQL, PDO dan GD, dsb.
3. Konfigurasikan fail PHP.ini untuk mendayakan sambungan yang diperlukan dan menetapkan parameter.

Untuk memasang Flink, ikut langkah berikut:

1 Muat turun binari Flink dan ekstraknya ke direktori tertentu.
2. Tambahkan direktori bin Flink pada laluan sistem.
3. Tetapkan parameter yang diperlukan dalam fail konfigurasi.

Selepas pemasangan selesai, anda boleh mula menggunakan PHP dan Flink.

Langkah 2: Bina aplikasi menggunakan PHP dan Flink

Dalam contoh ini, kami akan membina aplikasi pemprosesan data masa nyata yang mudah menggunakan PHP dan Flink. Aplikasi akan mendapatkan data daripada baris gilir mesej Kafka dan menghantarnya ke kelompok Flink untuk diproses. Seterusnya, kami akan menggunakan PHP untuk menyambung ke Flink REST API untuk memantau status proses pemprosesan data.

Ini ialah skrip PHP mudah untuk menulis mesej log ke baris gilir mesej Kafka:

<?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
';

Skrip PHP di atas menghantar mesej ke topik Kafka bernama "log".

Seterusnya, kod tersebut akan menggunakan API penstriman Flink untuk menulis logik pemprosesan data yang mudah. Dalam contoh ini, kami akan membaca mesej log daripada topik Kafka dan menukarnya kepada huruf besar.

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");
    }
}

Kod Java di atas akan membaca mesej log dalam topik Kafka, menukarnya kepada huruf besar dan mencetak hasilnya ke konsol.

Kini kita perlu menulis skrip PHP untuk menyambung ke Flink REST API dan memantau proses pemprosesan data. Berikut ialah skrip 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}
";
}

Skrip PHP di atas akan bersambung ke Flink REST API dan menyenaraikan status semua kerja Flink yang sedang dijalankan.

Langkah 3: Jalankan aplikasi

Untuk menjalankan aplikasi, ikuti langkah berikut dalam urutan:

1 Jalankan Kafka dalam baris arahan.
2. Mulakan kelompok Flink.
3. Jalankan skrip PHP untuk menulis mesej log ke Kafka.
4. Serahkan tugas Flink kepada kelompok.
5. Jalankan skrip PHP untuk memantau status dan hasil kerja Flink.

Output sepatutnya kelihatan seperti ini:

Simple Flink Job: RUNNING
THIS IS A LOG MESSAGE

Output di atas menunjukkan bahawa tugas Flink sedang berjalan dan berjaya menukar mesej log kepada huruf besar.

Kesimpulan

Kedua-dua PHP dan Flink adalah alatan yang sangat berguna yang boleh digunakan untuk membina aplikasi yang besar dan lebih kompleks. Dengan mempelajari Panduan Permulaan PHP, anda boleh mula menggunakan PHP dan Flink untuk membina aplikasi pemprosesan data yang cekap. Semoga kod sampel ini adalah titik permulaan yang baik untuk pemula.

Atas ialah kandungan terperinci Bermula dengan PHP: PHP dan Flink. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn