Pertimbangan untuk menggunakan Pig di Amazon EMR 4.x - Amazon EMR

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Pertimbangan untuk menggunakan Pig di Amazon EMR 4.x

Pig versi 0.14.0 diinstal pada klaster yang dibuat menggunakan versi rilis Amazon EMR 4.x. Babi di-upgrade ke versi 0.16.0 di Amazon EMR 5.0.0. Perbedaan signifikan dibahas di bawah ini.

Mesin eksekusi default yang berbeda

Versi babi 0.14.0 di Amazon EMR 4.x versi rilis digunakan MapReduce sebagai mesin eksekusi default. Pig 0.16.0 dan kemudian menggunakan Apache Tez. Anda dapat secara eksplisit mengatur exectype=mapreduce klasifikasi pig-properties konfigurasi yang akan digunakan. MapReduce

Membuang Pig user-defined function (UDF)

UDF kustom yang tersedia dalam versi rilis Pig on Amazon EMR 4.x dihapus mulai dari Pig 0.16.0. Sebagian besar UDF memiliki fungsi setara yang dapat Anda gunakan sebagai gantinya. Daftar tabel berikut membuang UDF dan fungsi yang setara. Untuk informasi selengkapnya, lihat Fungsi Built-in di situs Apache Pig.

Membuang UDF Fungsi padanan

FORMAT_DT(dtformat, date)

GetHour(tanggal), GetMinute (tanggal), GetMonth (tanggal), GetSecond (tanggal), GetWeek (tanggal), GetYear (tanggal), GetDay (tanggal)

EXTRACT(string, pattern)

REGEX_EXTRACT_ALL(string, pattern)

REPLACE(string, pattern, replacement)

REPLACE(string, pattern, replacement)

DATE_TIME()

ToDate()

DURATION(dt, dt2)

WeeksBetween(dt, dt2), YearsBetween (dt, dt2), (dt, dt2), SecondsBetween (dt, dt2), MonthsBetween (dt, dt2), MinutesBetween (dt, dt2) HoursBetween

EXTRACT_DT(format, date)

GetHour(tanggal), GetMinute (tanggal), GetMonth (tanggal), GetSecond (tanggal), GetWeek (tanggal), GetYear (tanggal), GetDay (tanggal)

OFFSET_DT(date, duration)

AddDuration(tanggal, durasi), SubtractDuration (tanggal, durasi)

PERIOD(dt, dt2)

WeeksBetween(dt, dt2), YearsBetween (dt, dt2), (dt, dt2), SecondsBetween (dt, dt2), MonthsBetween (dt, dt2), MinutesBetween (dt, dt2) HoursBetween

CAPITALIZE(string)

UCFIRST(string)

CONCAT_WITH()

CONCAT()

INDEX_OF()

INDEXOF()

LAST_INDEX_OF()

LAST_INDEXOF()

SPLIT_ON_REGEX()

STRSPLT()

UNCAPITALIZE()

LCFIRST()

UDF berikut dibuang tanpa padanan: FORMAT(), LOCAL_DATE(), LOCAL_TIME(), CENTER(), LEFT_PAD(), REPEAT(), REPLACE_ONCE(), RIGHT_PAD(), STRIP(), STRIP_END(), STRIP_START(), SWAP_CASE().

Perintah Grunt yang dihentikan

Beberapa perintah Grunt dihentikan dimulai dengan Pig 0.16.0. Tabel berikut mencantumkan perintah Grunt di Pig 0.14.0 dan perintah padanan dalam versi saat ini, jika berlaku.

Pig 0.14.0 dan padanan perintah Grunt saat ini
Perintah Grunt Pig 0.14.0 Perintah Grunt Pig di versi 0.16.0 dan setelahnya

kucing < non-hdfs-path >)

fs -cat < non-hdfs-path >;

cd < non-hdfs-path >;

Tanpa padanan

ls < non-hdfs-path >; fs -ls < non-hdfs-path >;

pindah < non-hdfs-path > < non-hdfs-path >;

fs -mv < non-hdfs-path > < >; non-hdfs-path

salin < non-hdfs-path > < non-hdfs-path >;

fs -cp < non-hdfs-path > < non-hdfs-path >;

copyToLocal < non-hdfs-path ><local-path>;

fs - copyToLocal < non-hdfs-path ><local-path>;

copyFromLocal <local-path>< non-hdfs-path >;

fs - copyFromLocal <local-path>< non-hdfs-path >;

mkdir < >; non-hdfs-path

fs -mkdir < >; non-hdfs-path

rm < non-hdfs-path >;

fs -rm -r -skipTrash < >; non-hdfs-path

rmf < non-hdfs-path >;

fs -rm -r -skipTrash < >; non-hdfs-path

Kemampuan yang dihapus untuk direktori home non-HDFS

Pig 0.14.0 pada versi rilis Amazon EMR 4.x memiliki dua mekanisme untuk mengizinkan pengguna selain pengguna hadoop, yang tidak memiliki direktori home, untuk menjalankan skrip Pig. Mekanisme pertama adalah fallback otomatis yang mengatur direktori kerja awal ke direktori root jika direktori home tidak ada. Mekanisme kedua adalah properti pig.initial.fs.name yang mengizinkan Anda untuk mengubah direktori kerja awal.

Mekanisme-mekanisme tersebut tidak tersedia mulai dari Amazon EMR versi 5.0.0, dan pengguna harus memiliki direktori home di HDFS. Ini tidak berlaku untuk pengguna hadoop karena direktori home disediakan saat peluncuran. Skrip dijalankan menggunakan default langkah jar Hadoop ke pengguna Hadoop kecuali pengguna lain secara eksplisit ditentukan menggunakan command-runner.jar.