Trino, etkileşimli analitik sorguları çalıştırmaya yönelik açık kaynaklı dağıtık bir SQL sorgu motorudur. Bu konu, OSS-HDFS'de depolanan verileri sorgulamak için Trino ile birlikte JindoSDK'nın nasıl kullanılacağını açıklar.
Ön koşullar
-
Örneğin, dağıtım ortamınız olarak Elastic Compute Service (ECS) kullanmak istiyorsanız bir örnek oluşturun.
-
Bir Hadoop ortamı oluşturulmuş olmalıdır. Hadoop'un nasıl kurulacağı hakkında daha fazla bilgi için bkz. Hadoop ile JindoSDK kullanarak OSS-HDFS'ye erişme.
-
Trino dağıtılmış olmalıdır. Daha fazla bilgi için Deploying Trino sayfasını ziyaret edin.
-
Bir paket için OSS-HDFS etkinleştirilmiş ve OSS-HDFS üzerindeki erişim izinleri verilmiş olmalıdır. Daha fazla bilgi için bkz. Enable OSS-HDFS service.
Yordam
-
ECS örneğine bağlanın. Daha fazla bilgi için bkz. Bir ECS örneğine bağlanma.
-
JindoSDK'yı yapılandırın.
-
JindoSDK JAR paketinin en son sürümünü indirin. JindoSDK'yı indirmek için GitHub adresini ziyaret edin.
-
JindoSDK JAR paketini açın.
Aşağıdaki örnek kod,
jindosdk-x.x.x-linux.tar.gzadlı bir paketin nasıl açılacağını gösterir. Farklı bir JindoSDK sürümü kullanıyorsanız paket adını ilgili JAR paketinin adıyla değiştirin.tar zxvf jindosdk-x.x.x-linux.tar.gzNotx.x.x, JindoSDK JAR paketinin sürüm numarasını belirtir.
-
İndirilen JindoSDK JAR paketini classpath tarafından belirtilen yola yükleyin.
cp jindosdk-x.x.x-linux/lib/*.jar $Trino_HOME/plugin/hive-hadoop2/
-
-
OSS-HDFS uygulama sınıfını yapılandırın ve pakete erişmek için kullanmak istediğiniz AccessKey çiftini belirtin.
-
Tüm Trino düğümlerindeki core-site.xml adlı Hadoop yapılandırma dosyasında OSS-HDFS uygulama sınıfını yapılandırın.
<configuration> <property> <name>fs.AbstractFileSystem.oss.impl</name> <value>com.aliyun.jindodata.oss.JindoOSS</value> </property> <property> <name>fs.oss.impl</name> <value>com.aliyun.jindodata.oss.JindoOssFileSystem</value> </property> </configuration> -
Tüm Trino düğümlerindeki core-site.xml dosyasında, OSS-HDFS'nin etkinleştirildiği pakete erişmek için kullanmak istediğiniz AccessKey ID ve AccessKey secret değerlerini belirtin.
<configuration> <property> <name>fs.oss.accessKeyId</name> <value>LTAI********</value> </property> <property> <name>fs.oss.accessKeySecret</name> <value>KZo1********</value> </property> </configuration>
-
-
OSS-HDFS uç noktasını yapılandırın.
Object Storage Service (OSS) içindeki paketlere erişmek için OSS-HDFS kullanmak istiyorsanız OSS-HDFS uç noktasını belirtmeniz gerekir. OSS-HDFS'ye erişmek için kullanılan yolu
oss://{yourBucketName}.{yourBucketEndpoint}/{path}biçiminde yapılandırmanızı öneririz. Örnek:oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampleobject.txt. Erişim yolunu yapılandırdıktan sonra JindoSDK, erişim yolunda belirtilen uç noktaya göre ilgili OSS-HDFS işlemini çağırır.OSS-HDFS uç noktasını başka yöntemler kullanarak da yapılandırabilirsiniz. Farklı yöntemlerle yapılandırılan uç noktaların öncelikleri farklıdır. Daha fazla bilgi için bkz. Hızlı başlangıç: EMR olmayan bir kümeyi OSS-HDFS hizmetine bağlama.
ÖnemliYukarıdaki yapılandırmaları tamamladıktan sonra yapılandırmaların etkili olması için Trino'yu yeniden başlatmanız gerekir.
-
OSS-HDFS'de depolanan verileri sorgulayın
Aşağıdaki örnekte HiveCatalog kullanılır. Trino kullanarak OSS için bir şema oluşturabilir ve OSS-HDFS'de depolanan verileri sorgulamak için SQL deyimlerini çalıştırabilirsiniz. Trino, Hive Metastore'u bağımlılık olarak kullandığından JindoSDK'yı Hive hizmetine yüklemeniz ve dağıtmanız gerekir. Daha fazla bilgi için bkz. Hive ile JindoSDK kullanarak OSS-HDFS'de depolanan verileri işleme.
-
Trino konsoluna giriş yapın.
trino --server <Trino_server_address>:<Trino_server_port> --catalog hive -
OSS için bir şema oluşturun.
create schema testDB with (location='oss://{yourBucketName}.{yourBucketEndpoint}/{schema_dir}'); -
Şemayı kullanın.
use testDB; -
Bir tablo oluşturun.
create table tbl (key int, val int); -
Tabloya veri ekleyin.
insert into tbl values (1,666); -
Tablodaki verileri sorgulayın.
select * from tbl;
-