JindoSDK, Hadoop ve Spark ekosistemleri için bir OSS istemcisidir ve yüksek düzeyde optimize edilmiş bir Hadoop FileSystem uygulaması sunar. Hadoop OSS istemcilerine kıyasla JindoSDK, Spark kullanarak OSS-HDFS'deki verileri sorgularken daha iyi performans sağlar.
Ön koşullar
Dağıtım ortamınız olarak Elastic Compute Service (ECS) kullanmak için bir örnek oluşturun.
Bir Hadoop ortamı oluşturulmuş olmalıdır. Daha fazla bilgi için bkz. Hadoop'ta JindoSDK ile OSS-HDFS hizmetine erişim.
Apache Spark dağıtılmış olmalıdır. Daha fazla bilgi için Apache Spark adresini ziyaret edin.
Bir paket için OSS-HDFS etkinleştirilmiş ve OSS-HDFS'ye erişim izinleri verilmiş olmalıdır. Daha fazla bilgi için bkz. OSS-HDFS hizmetini etkinleştirme.
Yordam
ECS örneğine bağlanın. Daha fazla bilgi için bkz. 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,
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 dosyalarını classpath'e kopyalayın.
cp jindosdk-x.x.x-linux/lib/*.jar $SPARK_HOME/jars/
-
OSS-HDFS uygulama sınıfını yapılandırın ve pakete erişmek için kullanmak istediğiniz AccessKey çiftini belirtin.
-
Ayarları core-site.xml dosyasında yapılandırın.
-
Spark'ın core-site.xml 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> -
Spark'ın core-site.xml yapılandırma dosyasında OSS-HDFS etkinleştirilmiş pakete erişmek için kullanılan 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>
-
-
Spark işlerini gönderirken ayarları yapılandırın.
Aşağıdaki örnek, Spark işlerini gönderirken OSS-HDFS uygulama sınıfının nasıl yapılandırılacağını ve bir pakete erişmek için kullanılacak AccessKey çiftinin nasıl belirtileceğini gösterir:
spark-submit --conf spark.hadoop.fs.AbstractFileSystem.oss.impl=com.aliyun.jindodata.oss.OSS --conf spark.hadoop.fs.oss.impl=com.aliyun.jindodata.oss.JindoOssFileSystem --conf spark.hadoop.fs.oss.accessKeyId=LTAI******** --conf spark.hadoop.fs.oss.accessKeySecret=KZo149BD9GLPNiDIEmdQ7d****
-
-
OSS-HDFS uç noktasını yapılandırın.
Object Storage Service (OSS) paketlerine erişmek için OSS-HDFS kullanmak istiyorsanız OSS-HDFS uç noktasını belirtmeniz gerekir. OSS-HDFS'ye erişimde 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ı farklı yöntemlerle de yapılandırabilirsiniz. Farklı yöntemlerle yapılandırılan uç noktaların öncelikleri değişir. Daha fazla bilgi için bkz. Hızlı başlangıç: EMR dışı bir kümeyi OSS-HDFS hizmetine bağlama.
-
OSS-HDFS'ye erişmek için Spark'ı kullanın.
-
Bir tablo oluşturun.
create table test_oss (c1 string) location "oss://examplebucket.cn-hangzhou.oss-dls.aliyuncs.com/dir/"; -
Tabloya veri ekleyin.
insert into table test_oss values ("testdata"); -
Tablodaki verileri sorgulayın.
select * from test_oss;
-