Starting Shark

博客介绍了Shark的启动和配置方法。启动可通过客户端应用,先配置后获取实例,若用CORBA接口需先启动服务。配置有四种方法,可使用无参数、指定文件路径、文件对象或Properties对象的configure方法,还提到多实例配置的注意事项。

Starting Shark

Shark可以通过一个客户端应用来启动,首先要进行配置(支持三种不同的风格),获得Shark实例。下面是一种最普遍的方式:

String confFilePath="Shark.conf";

Shark.configure(confFilePath);

Shark shark=Shark.getInstance();

如果你想使用SharkCORBA接口,首先你要启动一个CORBA服务(通过run脚本),这样你就可以通过SharkCORBA API访问(通过runA启动管理服务)。通过run启动服务之后,服务器会自动在机器上启动。

Configuring Shark

下面介绍几种不同的Shark配置方法:

1.       使用无参数的configure()方法:

Shark通过Jar文件中的配置文件进行配置,这种配置方式,Shark以默认配置运行,而没有许多的内部API工具(缓存、验证、用户组)。

2.       使用configurefilePath)方法

通过给定的配置文件路径创建

3.       使用configureFile configFile

Shark首先使用Jar文件中给出的属性,附加配置通过特定的文件实现。如果配置文件中存在和默认Jar配置相同的属性,将覆盖默认属性,加上附加的配置属性,都将应用于Shark配置中。你所传入的配置文件不需要定义所有的配置项,但是可以重新定义默认配置参数(比如engineName, ObjectFactoryClassName,等等)并可以附加其它配置信息。

4.       使用configureProperties props)方法

其实和前一个方法基本功能相同(实际上,是将前一个方法的配置文件变成Properties对象),它提供了一种客户端使用Properties对象进行Shark配置的方法。

你可以使用不同的配置方式进行Shark实例化。如果你想使用多个来自同一数据库的Shark实例(来自多个VM),你通常需要使用不同的“engineName”配置属性(同样,如果使用多个VM,所有的配置必须重载DODS缓存空间值(必须设为0),CacheManagerClassName属性不应该存在)。这是因为进程同步执行,如果一个VM执行一个进程操作,进程将被这个Shark实例锁定,所以它就不能被其它的VM使用,直到那个进程完成它的工作。

Shark是一个具有良好可配置性的引擎,它的所有组件,包括kernel,都可以客户化定义。

03-25
### 关于Shark Framework或Apache Shark数据处理 #### 定义与背景 Shark 是一种基于 Spark 的分布式 SQL 查询引擎,最初由 UC Berkeley AMP 实验室开发。它旨在提供比传统 Hive 更高的性能和更丰富的功能集[^1]。然而,在后续的发展过程中,Shark 被弃用并逐渐被 Spark SQL 取代。 #### 性能比较 相比于传统的 Hive-on-MapReduce 架构,Shark 提供了显著的性能改进。这是因为 Shark 基于内存计算模型,能够减少磁盘 I/O 并优化查询执行计划[^3]。此外,由于其底层依赖于 Spark 的 RDD 数据结构,Shark 还支持复杂的多阶段操作而无需多次写入磁盘。 #### 功能特性 尽管 Shark 曾经是一个重要的项目,但它的一些核心理念已经被集成到 Spark SQL 中。Spark SQL 不仅继承了 Shark 的优点,还进一步增强了兼容性和易用性。例如,Spark SQL 支持标准 ANSI SQL 语法以及 DataFrame API,使得开发者可以更加灵活地进行数据分析。 #### 应用场景 对于需要实时分析能力的企业来说,采用类似于 Spark SQL 或曾经存在的 Shark 框架会优于经典的 Hadoop MapReduce 方法。这些现代工具不仅提供了更高的吞吐量,还能满足亚秒级延迟的需求。 ```python from pyspark.sql import SparkSession spark = SparkSession.builder.appName("example").getOrCreate() # Example query using Spark SQL data = [("James", "", "Smith", "36636", "M", 3000), ("Michael", "Rose", "", "40288", "M", 4000), ("Robert", "", "Williams", "42114", "M", 4000)] columns = ["firstname", "middlename", "lastname", "id", "gender", "salary"] df = spark.createDataFrame(data=data, schema=columns) df.select("firstname", "salary").show() ``` 上述代码展示了如何利用 PySpark 创建一个简单的 DataFrame,并通过 Spark SQL 执行基本的选择操作。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值