使用 Spark 和 IBM Cloud Object Storage 更快地分析数据(2)
 
- UID
- 1066743
|

使用 Spark 和 IBM Cloud Object Storage 更快地分析数据(2)
使用 Keystone Version 3 配置文件对于 Keystone Version 3,可以使用这个 core-site.xml 并按清单下方的说明进行替换。请记住,对于 Keystone Version 3,使用 userID 和 tenantID 代替 username 和 tenant 值。
清单 3. Keystone Version 3 配置文件1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
| <configuration>
<property>
<name>fs.swift2d.impl</name>
<value>com.ibm.stocator.fs.ObjectStoreFileSystem</value>
</property>
<!-- Keystone based authentication -->
<property>
<name>fs.swift2d.service.spark.auth.url</name>
<value>http://your.keystone.server.com:5000/v3/auth/tokens</value>
</property>
<property>
<name>fs.swift2d.service.spark.public</name>
<value>true</value>
</property>
<property>
<name>fs.swift2d.service.spark.tenant</name>
<value>1c5c9e97c8db488baeca8d667497aef7</value>
</property>
<property>
<name>fs.swift2d.service.spark.password</name>
<value>passw0rd</value>
</property>
<property>
<name>fs.swift2d.service.spark.username</name>
<value>d2a2adb8bd924c2da1545e2e9ee7c4fe</value>
</property>
<property>
<name>fs.swift2d.service.spark.auth.method</name>
<value>keystoneV3</value>
</property>
<property>
<name>fs.swift2d.service.spark.region</name>
<value>IBMCOS</value>
</property>
</configuration>
|
- 将 your.keystone.server.com 替换为 Keystone 服务器的真实地址。
- 将所有身份验证凭证(tenant、username 和 password)替换为您的对象存储的有效凭证。请记住,对于 Keystone Version 3,使用 userID 和 tenantID 代替 username 和 tenant 值。
- 使用全球 Keystone 时,需要根据为 IBM COS 访问定义的 Keystone 地区来定义 region 属性。
在代码中以编程方式指定参数如果喜欢在代码中指定参数,可以使用下面的代码示例,其中的 SERVICE_NAME 为 spark。
清单 4. 向代码添加配置参数1
2
3
4
5
6
7
8
9
| hconf = sc._jsc.hadoopConfiguration()
hconf.set("fs.swift2d.impl", "com.ibm.stocator.fs.ObjectStoreFileSystem")
hconf.set("fs.swift2d.service.spark.auth.url", "http://your.authentication.server.com/v2.0/tokens")
hconf.set("fs.swift2d.service.spark.public", "true")
hconf.set("fs.swift2d.service.spark.tenant", "service")
hconf.set("fs.swift2d.service.spark.username", "swift")
hconf.set("fs.swift2d.service.spark.auth.method", "keystone")
hconf.set("fs.swift2d.service.spark.password", "passw0rd")
hconf.set("fs.swift2d.service.spark.region", "IBMCOS")
|
表 1 对每个参数进行了说明。
表 1. 配置参数键说明 fs.swift2d.service.SERVICE_NAME.impl jar 内的驱动程序类的路径 fs.swift2d.service.SERVICE_NAME.auth.url Keystone 服务的 URL fs.swift2d.service.SERVICE_NAME.public 定义将通过公有 (true) 或私有 (false) 网络进行访问。默认设置为 false。 fs.swift2d.service.SERVICE_NAME.tenant 对象存储租户名称 fs.swift2d.service.SERVICE_NAME.password 对象存储用户密码 fs.swift2d.service.SERVICE_NAME.username 对象存储用户名 fs.swift2d.service.SERVICE_NAME.block.size 读/写数据块大小 (MB)。默认设置为 128MB。 fs.swift2d.service.SERVICE_NAME.region Keystone 地区(针对全球 Keystone 用例) fs.swift2d.service.SERVICE_NAME.auth.method 身份验证方法。对于 Keystone Version 2,将其设置为 keystone;对于 Keystone Version 3,将其设置为 keystoneV3。SERVICE_NAME 应替换为您的服务名称,比如 spark。
4
启动启用了 Stocator 的 Spark
在利用 Stocator 从 Spark 访问 IBM COS 对象之前,需要静态地将 Spark 和 Stocator 重新编译到一起,或者动态地将 Stocator 的库传递给 Spark。
要利用源代码重新编译 Spark 来包含 Stocator 驱动程序,请参阅 中的说明。
要通过 Stocator 的独立 jar 库使用 Spark,而不重新编译它,可以使用 –jars 选项运行 Spark。在我们的环境中,我们使用了 1.0.8 版的 Stocator,所以独立 jar 库的名称为 stocator-1.0.8-SNAPSHOT-jar-with-dependencies.jar。在我们的示例环境中,传递给 Spark 的选项包括:–jars stocator-1.0.8-SNAPSHOT-jar-with-dependencies.jar。
清单 5. Jars 选项1
2
3
4
5
6
7
8
9
10
11
12
13
14
| ofer@beginnings:~$ ~/spark-2.0.1/bin/spark-shell \
--jars stocator-1.0.8-SNAPSHOT-jar-with-dependencies.jar
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 2.0.1
/_/
Using Scala version 2.11.8 (OpenJDK 64-Bit Server VM, Java 1.7.0_111)
Type in expressions to have them evaluated.
Type :help for more information.
scala>
|
|
|
|
|
|
|