JindoSDK, Hadoop ve Spark ekosistemleri için geliştirilmiş bir OSS istemcisidir. JindoSDK, OSS tabanlı yüksek düzeyde optimize edilmiş bir Hadoop dosya sistemi uygular. Hadoop topluluğunun OSS istemcisiyle karşılaştırıldığında, JindoSDK Impala kullanarak OSS-HDFS (JindoFS) içinde depolanan verileri sorgularken daha iyi performans sunar.
Önkoşullar
Bir Alibaba Cloud hesabı varsayılan olarak gerekli izinlere sahiptir. OSS-HDFS hizmetine erişmek için bir Resource Access Management (RAM) kullanıcısı kullanıyorsanız, RAM kullanıcısına gerekli izinleri vermeniz gerekir. Daha fazla bilgi için bkz. RAM kullanıcısına EMR dışı bir kümeyi OSS-HDFS hizmetine bağlama izni verme.
Örneğin, dağıtımınız için Alibaba Cloud ECS kullanıyorsanız bir ECS örneği satın almanız gerekir.
Bir Hadoop ortamı oluşturun. Daha fazla bilgi için bkz. Hadoop çalışma zamanı ortamı oluşturma.
Bir paket için OSS-HDFS hizmetini etkinleştirin ve hizmete erişim yetkilendirmesi yapın. 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. Paket adını indirdiğiniz gerçek sürümle değiştirin.tar zxvf jindosdk-x.x.x-linux.tar.gzNotx.x.x, JindoSDK JAR paketinin sürüm numarasını belirtir.
-
JindoSDK JAR paketini Hive'ın classpath yoluna kopyalayın.
cp jindosdk-x.x.x-linux/lib/*.jar $HIVE_HOME/lib/ -
İndirilen JindoSDK JAR paketini classpath tarafından belirtilen yola kopyalayın.
cp jindosdk-x.x.x-linux/lib/*.jar $HIVE_HOME/lib/
-
OSS-HDFS uygulama sınıfını yapılandırın ve pakete erişmek için kullanmak istediğiniz AccessKey çiftini belirtin.
-
Impala'nı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> -
Impala'nın core-site.xml dosyasında, OSS-HDFS etkin pakete erişmek için kullandığınız hesabın 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 (örnek:oss://examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampleobject.txt) yapılandırmanızı öneririz. 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öntemler kullanılarak yapılandırılan uç noktaların farklı öncelikleri vardır. Daha fazla bilgi için bkz. Hızlı başlangıç: EMR dışı bir kümeyi OSS-HDFS hizmetine bağlama.
-
Impala kullanarak OSS-HDFS'de depolanan verileri sorgulayın.
-
Tablo oluşturun.
CREATE EXTERNAL TABLE customer_demographics ( `cd_demo_sk` INT, `cd_gender` STRING, `cd_marital_status` STRING, `cd_education_status` STRING, `cd_purchase_estimate` INT, `cd_credit_rating` STRING, `cd_dep_count` INT, `cd_dep_employed_count` INT, `cd_dep_college_count` INT) STORED AS PARQUET LOCATION 'oss://bucket.endpoint/dir'; -
Tablodaki verileri sorgulayın.
select * from customer_demographics;
-