3,42 veya üzeri sürümlerde çalışan ya da 5.8.0 veya üzeri sürümlere sahip E-MapReduce (EMR) kümeleri, veri deposu olarak OSS-HDFS'i (JindoFS) destekler. OSS-HDFS; önbellek hızlandırma ve Ranger kimlik doğrulama özellikleri sunarak performansı artırır ve Hive veya Spark kullanan büyük veri ETL senaryolarında HDFS geçişini basitleştirir. Bu konu, bir EMR kümesinde Hive veya Spark kullanarak OSS-HDFS'deki verilere nasıl erişileceğini açıklar.
Genel Bilgiler
OSS-HDFS, cloud-native bir veri gölü depolama hizmetidir. Birleştirilmiş meta veri yönetimi sayesinde HDFS dosya sistemi arabirimleriyle tam uyumludur ve kapsamlı POSIX desteği sunar. Bu özellik, büyük veri ve yapay zeka alanındaki geniş yelpazeli veri gölü hesaplama senaryoları için idealdir. Daha fazla bilgi için bkz. OSS-HDFS Nedir?.
Yordam
Bu konuda, OSS-HDFS'deki veriler üzerinde işlem yapmayı göstermek amacıyla Hive kullanılmıştır. Aynı adımları izleyerek Spark ile de benzer işlemler yapabilirsiniz.
Kümede oturum açın. Daha fazla bilgi için bkz. Kümede Oturum Açma.
-
OSS-HDFS'i işaret eden bir Hive tablosu oluşturun.
-
Hive komut satırına girmek için aşağıdaki komutu çalıştırın.
hive -
OSS-HDFS'i işaret eden bir veritabanı oluşturmak için aşağıdaki komutu çalıştırın.
CREATE DATABASE if not exists dw LOCATION 'oss://{yourHdfsBucketDomain}/{path}';Parametre açıklaması:
dw: Veritabanı adı. Bu adı özelleştirebilirsiniz.{path}: Veritabanının depolanacağı OSS-HDFS yolu. Bu yolu özelleştirebilirsiniz.-
{yourHdfsBucketDomain}: OSS-HDFS hizmeti için paket alan adı.Uç noktayı almak için OSS konsolu üzerinde oturum açın. Hedef pakete gidin. Genel Bakış sekmesinde, Erişim Noktaları bölümünden OSS-HDFS için tam paket uç noktasını kopyalayın.
NotBu örnekte yol ön eki olarak OSS-HDFS alan adı kullanılmıştır. OSS-HDFS'i işaret etmek için yalnızca paket adını kullanmak istiyorsanız paket düzeyinde bir uç nokta veya genel bir uç nokta yapılandırabilirsiniz. Daha fazla bilgi için bkz. Ek 1: Uç Nokta Yapılandırmanın Diğer Yolları.
-
Yeni veritabanını kullanmak için aşağıdaki komutu çalıştırın.
use dw; -
Yeni veritabanında bir tablo oluşturmak için aşağıdaki komutu çalıştırın.
CREATE TABLE IF NOT EXISTS employee(eid int, name String,salary String,destination String) COMMENT 'Employee details';
-
-
Tabloya veri ekleyin.
Tabloya veri yazmak için INSERT INTO ifadesini kullanın. Bu ifade bir MapReduce işi oluşturur.
INSERT INTO employee(eid, name, salary, destination) values(1, 'John Doe', '100.0', ''); -
Tablo verilerini doğrulayın.
SELECT * FROM employee WHERE eid = 1;Çıktı, eklediğiniz verileri içerir.
OK 1 John Doe 100.0 Time taken: 12.379 seconds, Fetched: 1 row(s)