精华内容
参与话题
问答
  • Shark

    2019-10-28 10:15:53
    Shark
  • shark

    2019-10-24 03:46:24
    shark字体是一款用于写信
  • Left shark: not left shark

    2020-12-26 18:30:18
    <div><p>Consider this low priority, but it was brought up by a Googler that the video for the left shark is not actually the left one. It's the right now :)</p><p>该提问来源于开源项目:...
  • Shark Fighter字体

    2019-10-23 05:19:38
    Shark Fighter字体是一款用于杂体设计方面的字体
  • Shark fixes

    2020-12-27 18:15:54
    <div><p>Includes tear downs for hooks and OSD in shark missions, not sure if they created the bug reported about them (#598) but maybe? (I don't know enough about state maintenance in Lua). <p>...
  • <div><p>The Individual class in Algorithms/DirectSearch/Individual.h does not inherit from shark::ISerializable. This appears to be a mistake, as shark::Individual does implement a serialization call....
  • vcpkg install Shark

    2020-12-29 20:32:41
    <p>I wish Shark could be installed via <a href="https://blogs.msdn.microsoft.com/vcblog/2018/04/24/announcing-a-single-c-library-manager-for-linux-macos-and-windows-vcpkg/">vcpkg</a>.</p><p>该提问来源...
  • Land Shark字体下载

    2020-12-26 06:22:23
    该文档为Land Shark字体下载,是一份很不错的参考资料,具有较高参考价值,感兴趣的可以下载看看
  • matlab开发-Shark

    2019-08-21 11:47:32
    matlab开发-Shark。水下航行器非线性6自由度模型
  • Shark typhoon problem

    2020-11-26 10:49:05
    <div><p>When casting a spell the shark token instantly dies no mater what </p><p>该提问来源于开源项目:magefree/mage</p></div>
  • Shark Typhoon Bugged

    2020-12-06 00:37:35
    <div><p>Shark Typhoon doesn't allow me to cast it as an enchantment, only as a cycling card.</p><p>该提问来源于开源项目:magefree/mage</p></div>
  • python shark Excel筛选器宏:Shark Week 2011 (Excel Filter Macro: Shark Week 2011) It's hard to believe that Excel Advanced Filter Week is drawing to a close. I hope that the three filter feeding shark...

    python shark

    image

    It's hard to believe that Excel Advanced Filter Week is drawing to a close. I hope that the three filter feeding shark species, and you, have enjoyed this tribute to Discovery Channel's Shark Week.

    很难相信Excel Advanced Filter Week即将结束。 我希望这三种过滤器可以喂食鲨鱼物种,并且您也对探索频道的“鲨鱼周”表示敬意。

    Today, we'll see how to record a macro while using the Advanced Filter, and edit that macro, so it will automatically adjust if the data changes.

    今天,我们将看到如何在使用“高级过滤器”时记录宏,以及如何编辑该宏,这样,如果数据发生更改,它将自动进行调整。

    高级过滤器结果是静态的 (Advanced Filter Results are Static)

    When you run an Advanced Filter, and copy data to a different location, the copied data is not linked to the original data. If the original data changes, the copied data won't automatically update. You could run the Advanced Filter again, to update the copied data.

    当您运行高级筛选器并将数据复制到其他位置时,复制的数据未链接到原始数据。 如果原始数据发生更改,复制的数据将不会自动更新。 您可以再次运行“高级筛选器”以更新复制的数据。

    If you plan to update the original data frequently, you can save time and effort, by creating a macro to run the Advanced Filter.

    如果计划频繁更新原始数据,则可以通过创建运行高级过滤器的宏来节省时间和精力。

    记录高级过滤步骤 (Record the Advanced Filter Steps)

    In this example, we recorded a macro while filtering the top orders onto a different worksheet. The original data is on the Orders sheet, and the copied data is on the TopOrders sheet.

    在此示例中,我们记录了一个宏,同时将最重要的订单过滤到了另一个工作表上。 原始数据在“订单”表上,而复制的数据在“ TopOrders”表上。

    Here is the code that was recorded by the Excel macro recorder. I added a few line breaks to make it narrower.

    这是Excel宏记录器记录的代码。 我添加了一些换行符以使其更窄。

    AdvancedFilterMacro01

    编辑高级过滤器宏 (Edit the Advanced Filter Macro)

    After you record the macro, you can edit the code, to make it flexible, and to remove any unnecessary lines of code.

    记录宏后,您可以编辑代码,使其变得灵活,并删除任何不必要的代码行。

    In the recorded code, you can delete the following:

    在记录的代码中,您可以删除以下内容:

    • comment lines, that start with an apostrophe.

      注释行,以撇号开头。
    • lines that end with Select

      以Select结尾的行

    The list range in the code is set as "A1:D15". You can change that to the CurrentRegion for cell A1, so the range will automatically adjust, if rows are added or removed.

    代码中的列表范围设置为“ A1:D15”。 您可以将其更改为单元格A1的CurrentRegion,因此,如果添加或删除行,则范围将自动调整。

    Sheets("Orders").Range("A1").CurrentRegion

    Sheets(“ Orders”)。Range(“ A1”)。CurrentRegion

    The other change you should make is to add the sheet name for the CopyToRange. Then, if the destination sheet is not active when you run the macro, it will still work correctly.

    您应该进行的另一项更改是为CopyToRange添加工作表名称。 然后,如果目标表在运行宏时未处于活动状态,则它将仍然可以正常工作。

    CopyToRange:=Sheets("TopOrders").Range("A1:D1")

    CopyToRange:= Sheets(“ TopOrders”)。Range(“ A1:D1”)

    编辑的高级筛选器宏 (The Edited Advanced Filter Macro)

    Here is the final version of the edited Advanced Filter macro.

    这是已编辑的“高级筛选器”宏的最终版本。

    Sub TopOrderFilter()
    Sheets("Orders").Range("A1").CurrentRegion.AdvancedFilter _
       Action:=xlFilterCopy, _
       CriteriaRange:=Sheets("Orders").Range("F1:F2"), _
       CopyToRange:=Sheets("TopOrders").Range("A1:D1") _
       , Unique:=False
    End Sub
    

    Note: In Excel 2007 and later, when you save the file, use the Binary, or Macro-Enabled File Type.

    注意:在Excel 2007和更高版本中,保存文件时,请使用“二进制”或“启用宏的文件类型”。

    下载高级过滤器列表工作簿 (Download the Advanced Filter List Workbook)

    To see the sample data, and test the filter, you can download the Advanced Filter Macro sample workbook.

    要查看样本数据并测试过滤器,可以下载Advanced Filter Macro样本工作簿

    The file is in Excel 2007 format, and is zipped. The file contains macros, so enable them if you want to test the code.

    该文件为Excel 2007格式,并且已压缩。 该文件包含宏,因此如果要测试代码,请启用它们。

    观看高级过滤器宏视频 (Watch the Advanced Filter Macro Video)

    To see the steps for setting up the criteria range, and running the filter, you can watch this short Excel Video tutorial.

    要查看设置标准范围和运行过滤器的步骤,您可以观看这段简短的Excel Video教程。

    演示地址

    翻译自: https://contexturesblog.com/archives/2011/08/05/excel-filter-macro-shark-week-2011/

    python shark

    展开全文
  • Blue Shark no connect

    2020-11-20 20:35:38
    I have blueshark, but when I connect my PC via bluetooth and enter the pin (1234), blueshark is connected but disconnected <p><strong>To Reproduce 1. Turn on the blueshark battery and bluetooth ...
  • shark 简介

    千次阅读 2014-04-17 12:04:15
    1、shark 是什么?

    简介


    Shark是一个新的数据分析系统,在集群上进行查询处理和复杂分析。Shark使用一种新的分布式内存抽象,为SQL查询和复杂分析函数提供了统一的运行引擎,并能够有效的容错。这种新的分布式内存抽象使得shark执行SQL查询的速度比Hive100倍,执行机器学习算法比Hadoop100倍。与之前的系统不同,shark在取得如此良好性能的同时尽可能的保留了类似于mapreduce的执行框架,以及细粒度的容错特性。为了有效的执行SQL查询,shark提供了面向列存储,查询中重计划等机制。Shark在速度上能够与MPP分析数据库相当,同时又具有MPP分析数据库不具备的容错和复杂分析的能力。

    Shark基本上就是在Spark的框架基础上提供和Hive一样的HiveQL命令接口,为了最大程度的保持和Hive的兼容性,Shark使用了HiveAPI来实现query ParsingLogic Plan generation,最后的PhysicalPlan   execution阶段用Spark代替Hadoop MapReduce。通过配置Shark参数,Shark可以自动在内存中缓存特定的RDD,实现数据重用,进而加快特定数据集的检索。同时,Shark通过UDF用户自定义函数实现特定的数据分析学习算法,使得SQL数据查询和运算分析能结合在一起,最大化RDD的重复使用。


    系统概述


    Shark既支持SQL查询处理,也支持机器学习函数。Shark是与Hive兼容的,用户可以无需修改Hive的查询以及数据就能在shark上执行。

    由于与Hive的兼容,shark可以在任何支持Hadoop存储API的系统上进行查询,包括HDFSAmazon S3等。Shark也支持多种数据格式,例如:textjsonxml等。Shark继承了Hiveschema-on-read和嵌套数据类型。

    此外,用户可以选择将部分数据存储到shark的内存中,以便进行快速分析处理。


     


    上图显示了shark集群的体系结构,包括一个master节点和一组worker节点。数据仓库的元数据存储在一个外部事务性数据库中。Shark是建立在Spark之上的,Spark是一个类似于Mapreduce的集群计算引擎。当一个查询提交到master时,shark将该查询转换成一个用RDD表示的操作树。这些RDDSpark转化成一张任务的图,worker节点来执行这些任务。

     



    上图显示了shark的体系结构,特点如下:

    1、 物理计划在Spark上执行;

    2、 依靠Spark的快速执行、容错性及RDD

    3、 尽可能的充分利用Hive的代码:将Hive生成的逻辑计划转换为Spark的执行图(execution graph);

    4、 与Hive的兼容性:无需修改就可以利用hivemetadataHDFS上执行HiveQL

    RDD上执行SQL查询

    Shark与传统的RDBMS一样,执行SQL查询一般都经过以下3个过程:解析查询语句、生成逻辑计划、生成物理计划。给定一个查询,Shark使用Hive的查询编译器解析查询语句并生成对应的抽象语法树,然后将这棵树转化为逻辑计划及基本的逻辑优化(比如,预测下推),以上这些,SharkHive都使用了相同的方法。Hive将把操作转化为有一系列MapReduce程序组成的物理计划,而对于Shark,它的优化器将应用额外的优化规则(如,对于关键字LIMIT对应的优化规则)到各个独立的分区(individual partitions)中,并且创建由一序列在RDDs上的转化操作构成的物理计划,而不是MapReduce Jobs,然后利用在Spark中已经实现的operators(如,mapreduce)或在Shark中实现的operators(如 broadcast joins)执行相应的物理计划。

    系统拓展

    尽管通过这些基本的方法可以在Spark上执行SQL语句,但怎样做到高效率是一个挑战。UDF(用户自定义函数)的流行以及复杂的分析函数在Shark上的使用,很难再编译的时候就确定相应的优化查询计划,特别在没有经过ETL处理的新数据上。另外,尽管有了这样一个计划,愚蠢的在Spark或其他MapReduce环境下也是低效的。为了高效的存储相关的数据以及执行SQL,对Spark引擎进行了一些如下拓展。

    Ø Partial DAG ExecutionPDE

    为了在分布式数据集上支持动态查询优化,拓展了Spark支持PDE,这项技术允许使用在运行时收集的统计数据,动态的改变查询计划。目前,PDE主要用在Shuffle操作阶段边界上,这里将进行数据的交换及重新分区,都是Shark上典型的高消耗操作。默认情况下,在shuffle之前,Spark将在内存中实例化map任务的输出,如果有必要才输出到磁盘上,reduce任务将随后获取这些输出。

    PDE通过以下两步修改这种机制。首先,在实例化map输出的时收集总体可定制的统计信息和每个分区的粒度;然后,将依赖这些统计值,通过选择不同的operators或改变它们的参数(如,并行度)来修改DAG

    Ø Columnar Memory Store




    SharkSpark的内存存储机制上实现了基于列的内存存储。Shark使用JVM原始的数组存储原始类型(primitive types)的所有列,Hive支持的复杂数据类型(如,maparray),将被序列化并由关联着的字节数组进行存储。每一列都只创建了一个JVM对象,能够实现高效的空间利用、GCs和压缩数据,减轻了deserialize的负担。

    Ø Distributed Data Loading

    除了查询的执行,Shark还使用Spark的执行引擎实现了分布式数据加载。在加载的过程中,表将被分割成小的partitions,这些partitions将被不同的tasks根据加载模式,提取相应的数据并以列的形式存储在内存中。每一个数据加载的task将跟踪metadata来决定分区中的每一列是否应该压缩,如:若某列不同的值低于某个阈值,对应的数据加载task将在此列上进行压缩处理。每个task根据加载数据的情况,选择合适的处理优化策略,而不是所有的task都统一使用共同的策略,保证在加载过程中实现最大的并行度。需要注意的是,RDD的血统并不会记录这些处理的策略。

    Ø Data Co-partitioning

    Shark为了在后面的查询中快速的实现join操作,在数据加载过程中,允许在共同的主键上进行co-partitioning。在分布式文件系统(如,HDFS)中,存储系统基于模式判别,不能实现co-partitioning。在join两个co-partitioned tables时,Shark的优化器将会创建一个避免了高耗shuffleDAG并且代替map任务执行join。在Shark中可以使用DISTRIBUTE BY进行实现:

    CREATE TABLE l_mem TBLPROPERTIES ("shark.cache"=true)

    AS SELECT * FROM lineitem DISTRIBUTE BY L_ORDERKEY;

    CREATE TABLE o_mem TBLPROPERTIES ("shark.cache"=true,"copartition"="l_mem") AS SELECT * FROM order DISTRIBUTE BY O_ORDERKEY;

    Ø Partition Statistics and Map Pruning

    存储文件系统中的数据,很有可能在一列或几列上存在在聚集的性质,Map Pruning就是建立在具有聚集特性的数据上进行数据分区修剪的过程。Shark的内存将数据存储成小的分区(block),每个block都包含了一个或几个逻辑上具有聚集性质的组,而Shark可以避免扫描那些不在查询范围内的block

    为了充分利用这些在某些列上具有聚集特性的数据,Shark的内存存储了每个worker在数据加载过程中记录的统计信息,包括每一列值的范围。如果某列上值不同的数较少,还将统计这些不同的值,这些统计值将在master中汇总,实现查询过程中修剪分区。

    支持机器学习 

    Shark的一个重要设计目标就是能处理高效SQL查询和复杂的机器学习。Shark遵循将计算移到数据处的原则,支持机器学习。这样设计的原因是选择了Spark作为执行引擎、RDD作为operators操作的主要数据结构。Shark除了执行SQL查询并返回其结果外,还允许查询返回代表了查询计划的RDD,用户可以使用返回的RDD进行分布式计算。

    Shark会在集群上自动的并行执行上述的mapmapRowsreduce函数,并且master程序将收集reduce函数的输出进行更新操作。目前Shark提供一些基本的机器学习算法,包括linear regressionlogistic regressionk-means。在大部分情况下,用户只需要实现一个mapRows函数提取待分析的数据,然后调用上述提供的算法。

    除了语言的集成,另一个使用RDDs作为operators操作的数据结构关键益处是执行引擎的集成。这个共同的抽象使得机器学习计算和SQL查询可以共用workers,并且可以通过数据缓存避免了数据移动带来的负载。


    转自: http://blog.csdn.net/wangfeinilin/article/details/22746161

    展开全文
  • shark for root

    热门讨论 2012-11-09 09:50:06
    shark for root 传说中的抓包工具我找了好久才找到
  • shark 安装

    千次阅读 2014-02-14 11:28:24
    本文介绍在计算机集群上如何启动和运行Shark。如果对Amazon EC2上运行Shark感兴趣,请点击这里查看如何使用EC2脚本快速启动预先配置好的集群。 依赖: 注意:Shark是一个即插即用的工具,所以可以在现有的Hive...

    本文介绍在计算机集群上如何启动和运行Shark。如果对Amazon EC2上运行Shark感兴趣,请点击这里查看如何使用EC2脚本快速启动预先配置好的集群

    依赖:

    注意:Shark是一个即插即用的工具,所以可以在现有的Hive数据仓库之上运行,不需要您对现有的部署做出任何修改。

    在集群上运行Shark需要一下几个外部组件:

    • Scala 2.9.3
    • Spark 0.7.2
    • 兼容的JAVA运行时环境:OpenJDK 7, Oracle HotSpot JDK 7,或者 Oracle HotSpot JDK 6u23+
    • Shark专用的 Hive JAR (基于Hive 0.9),包括在Shark发布包里。
    • HDFS 集群:在这里不介绍如何安装,可以查看我的博文.

    Scala

    如果系统里没有安装Scala 2.9.3,可以按提示下载:

    $ wget http://www.scala-lang.org/downloads/distrib/files/scala-2.9.3.tgz

    $ tar xvfz scala-2.9.3.tgz

    Spark

    采用Spark的单独部署模式运行Shark

    部署细节:|http://spark-project.org/docs/latest/spark-standalone.html).也可以查看我翻译的博文

    下载Spark:

    $ wget http://spark-project.org/files/spark-0.7.2-prebuilt-hadoop1.tgz  # Hadoop 1/CDH3

    或者

    $ wget http://spark-project.org/files/spark-0.7.2-prebuilt-cdh4.tgz    # Hadoop 2/CDH4

    解压缩:

    $ tar xvfz spark-0.7.2-prebuilt*.tgz

    编辑 spark-0.7.2/conf/slaves添加集群中Slaves的主机名称,每一行对应一个Salve

    编辑spark-0.7.2/conf/spark-env.sh设置SCALA_HOMESPARK_WORKER_MEMORY

    export SCALA_HOME=/path/to/scala-2.9.3

    export SPARK_WORKER_MEMORY=16g

    SPARK_WORKER_MEMORY Spark在每一个节点上可用内存的最大,增加这个数值可以在内存中缓存更多的数据,但是一定要记住给Slave的操作系统和其他服务预留足够的内存。

    Shark

    下载Shark 0.2.1发布包,里边包括 shark-0.2.1hive-0.9.0-bin.

    $ wget http://spark-project.org/download/shark-0.7.0-hadoop1-bin.tgz  # Hadoop 1/CDH3

    或者

    $ wget http://spark-project.org/download/shark-0.7.0-hadoop2-bin.tgz  # Hadoop 2/CDH4

    解压缩:

    $ tar xvfz shark-0.7.0-*-bin.tgz

    编辑shark-0.7.0/conf/shark-env.sh设置HIVE_HOME, SCALA_HOMEMASTER环境变量(参考如下):

    export HADOOP_HOME=/path/to/hadoop

    export HIVE_HOME=/path/to/hive-0.9.0-bin

    export MASTER=spark://<MASTER_IP>:7077

    export SPARK_HOME=/path/to/spark

    export SPARK_MEM=16g

    source $SPARK_HOME/conf/spark-env.sh

    source命令通常用于重新执行刚修改的初始化文件,使之立即生效)

    最后一行是为了避免重复设置SCALA_HOME。一定要确保SPARK_MEM的数值不能超过前面设置的SPARK_WORKER_MEMORY的数值.

    如果是在现有的Hive上运行Shark,确定设置 HIVE_CONF_DIR (shark-env.sh文件中)指向你的配置文件夹.也可以,复制 Hive XML配置文件到Sharkhive-0.9.0-bin/conf配置文件夹内,比如:

    cp /etc/hive/conf/*.xml /path/to/hive-0.9.0-bin/conf/

    复制 Spark Shark目录到所有的slaves.前提是master的用户可以实现无密码SSH登录到所有的slaves.例如:

    $ while read slave_host; do

    $   rsync -Pav spark-0.7.2 shark-0.7.0 $slave_host

    $ done < /path/to/spark/conf/slaves

    运行 Spark的集群启动脚本,启动集群:

    $ cd spark-0.7.2

    $ ./bin/start_all.sh

    基于CDH4/Hadoop2配置Shark

    The newest versions of require additional configuration options.

    新版本的Hadoop需要额外的配置选项。在Hive的配置文件(hive-site.xml)中进行配置:

    • fs.default.name: 指向HDFS namenode.例如:hdfs://myNameNode:8020/
    • fs.defaultFS: fs.default.name设置为同样值。
    • mapred.job.tracker:设置为JobTracker,格式为host:port。如果仅仅运行Spark可以设置为"NONE"。注意:一定要明确设置这个选项,即使不使用JobTracker.

    测试

    使用如下命令,启动Shark

    $ ./bin/shark-withinfo

    关于Spark单独模式的更多脚本细节参考这里

    To verify that Shark is running, you can try the following example, which creates a table with sample data:

    使用下面的命令,创建一个简单的表格就可以确认一下Shark是否可以运行。

    CREATE TABLE src(key INT, value STRING);

    LOAD DATA LOCAL INPATH '${env:HIVE_HOME}/examples/files/kv1.txt' INTO TABLE src;

    SELECT COUNT(1) FROM src;

    CREATE TABLE src_cached AS SELECT * FROM SRC;

    SELECT COUNT(1) FROM src_cached;

    更详细的学习Shark,可以查看官方网站的用户指南


    Shark简介

    Shark即Hive on Spark,本质上是通过Hive的HQL解析,把HQL翻译成Spark上的RDD操作,然后通过Hive的metadata获取数据库里的表信息,实际HDFS上的数据和文件,会由Shark获取并放到Spark上运算。Shark的特点就是快,完全兼容Hive,且可以在shell模式下使用rdd2sql()这样的API,把HQL得到的结果集,继续在scala环境下运算,支持自己编写简单的机器学习或简单分析处理函数,对HQL结果进一步分析计算。

    Shark速度快的原因除了Spark平台提供的基于内存迭代计算外,在设计上还存在对Spark上进行了一定的改造,主要有

      - partial DAG execution:对join优化,调节并行粒度,因为Spark本身的宽依赖和窄依赖会影响并行计算和速度

      - 基于列的压缩和存储:把HQL表数据按列存,每列是一个array,存在JVM上,避免了JVM GC低效,而压缩和解压相关的技术是Yahoo!提供的

    其他特性和设计要点请参看论文Shark: SQL and Rich Analytics at scale

    总结来说,Shark是一个插件式的东西,在我现有的Spark和Hive及hadoop-client之间,在这两套都可用的情况下,Shark只要获取Hive的配置(还有metastore和exec等关键包),Spark的路径,Shark就能利用Hive和Spark,把HQL解析成RDD的转换,把数据取到Spark上运算和分析。在SQL on Hadoop这块,Shark有别于Impala,Stringer,而这些系统各有自己的设计思路,相对于对MR进行优化和改进的思路,Shark的思路更加简单明了些。


    Shark部署

    Shark Wiki上发布了两个主要版本,shark-0.7.0-hadoop1-bin.tgz和shark-0.7.0-hadoop2-bin.tgz。shark-0.7.0-hadoop1-bin.tgz适用于CDH3,shark-0.7.0-hadoop2-bin.tgz适用于CDH4,他们都使用hive-0.9.0进行了编译,使用的Spark是0.7.2的。相对来说,hive的版本比较老,想要支持0.11.0这样更新的版本的话需要自己重新编译Shark。在github上,现在Shark的master分支已经开始支持未发布的Spark0.8版本,编译注意的地方会在下一节讲。

    Shark的部署参看https://github.com/amplab/shark/wiki/Running-Shark-on-a-Clusterhttps://github.com/amplab/shark/wiki/Running-Shark-Locally。首先要选择适合自己Hadoop集群版本的shark-0.7.0-hadoopX-bin.tgz

    解压出来的hive-0.9.0配置在shark-env.sh的HIVE_HOME,同时还可以额外指定HIVE_CONF的目录,一般就指定自己已有的可以连接hadoop的hive conf目录。其余的SPARK_MEM, SPARK_HOME, SCALA_HOME就不说了。

    用bin/shark-withinfo启动shark,可以看到INFO信息,shark首先启动自己的CLI,然后会启动Hive,再启动Spark,之后就可以用HQL测试Shark可用与否。

    在配置好各个HOME后,如果跑在common hadoop上,当你进行select这样和HDFS数据打交道的操作时,会报如下的版本错误

    [html] view plaincopy
    1. ERROR shark.SharkDriver: FAILED: Hive Internal Error: java.lang.RuntimeException(java.io.IOException: Failed on local exception: java.io.IOException: Response is null.; Host Details : local host is: "namenode.hadoop.game.yy.com/xxx.xxx.xx.xxx"; destination host is: "xxx.xxx.com":pppp;   

    具体见Shark Group的这个帖。目前,我尝试了很多也没有找到解决办法,特别是像我用的hadoop-client还是公司自己改装过的,相对的Hive的几个主要jar包(hive-metastore-xx, hive-exec-xx)也被改动了,导致不但shark发布的包不能直接使用,连使用shark重新根据自己的hive编译一遍都编译不过。


    最后再提醒几个可能发生的常见错误

    1. HIVE_HOME/lib下要有jdbc驱动包,比如mysql-driver的jar包,否则会报错。

    2. HIVE_HOME/lib下的hive-metastore-xx.jar,可能太旧,不适应自己的hadoop集群,可以替换成自己的hive/lib下的metastore包,否则会报错,HQL执行不成功。替换后至少在执行use db; show tables; 这样的HQL没有问题。

    3. 有一个错误是:

    [html] view plaincopy
    1. java.lang.UnsatisfiedLinkError: org.apache.hadoop.security.JniBasedUnixGroupsMapping.getGroupForUser(Ljava/lang/String;)[Ljava/lang/String;  
    后来我根据hadoop jira上的这个相似的问题https://issues.apache.org/jira/browse/HADOOP-9232,受到启发,解决方案是对shark目录下lib_manage/jars/org.apache.hadoop/hadoop-common内的jar包内的配置文件core-site.xml,去掉hadoop.security.group.mapping的相关配置,就OK了。


    Shark编译

    主要参考官方文档:https://github.com/amplab/shark/wiki/Building-Shark-from-Source-Code。在下载版本的时候,一定要注意下载配套的源码。我第一次编译的时候用了shark-master的源码,就编译失败了,因为它依赖Spark-0.8版本,而这版本还未发布。应该获取branch-0.7下的版本,

    [html] view plaincopy
    1. git clone https://github.com/amplab/shark.git -b branch-0.7 shark-0.7  

    除了指定下SCALA_HOME和HIVE_HOME外,最好再指定下SPARK_HOME。最后sbt/sbt package,利用sbt进行打包,需要蛮长的时间。

    我尝试了依赖公司的hive包编译,失败了,报了77个error,原因是Shark的源码里很多依赖于hive的接口,有些有,有些没有,所以我又尝试了依赖hive-0.9.0的包编译,成功了,没有报错。虽然我想尝试编译适合自己公司集群的shark失败了,但是我还是完成了这条路的探索。目前我如果想使用Shark的话,只能自己部一套CDH的hadoop和hive了。哎。


    展开全文
  • Shark简介

    千次阅读 2014-04-01 17:32:22
    Shark是一个新的数据分析系统,在集群上进行查询处理和复杂分析。Shark使用一种新的分布式内存抽象,为SQL查询和复杂分析函数提供了统一的运行引擎,并能够有效的容错。这种新的分布式内存抽象使得shark执行SQL查询...

    简介

    Shark是一个新的数据分析系统,在集群上进行查询处理和复杂分析。Shark使用一种新的分布式内存抽象,为SQL查询和复杂分析函数提供了统一的运行引擎,并能够有效的容错。这种新的分布式内存抽象使得shark执行SQL查询的速度比Hive100倍,执行机器学习算法比Hadoop100倍。与之前的系统不同,shark在取得如此良好性能的同时尽可能的保留了类似于mapreduce的执行框架,以及细粒度的容错特性。为了有效的执行SQL查询,shark提供了面向列存储,查询中重计划等机制。Shark在速度上能够与MPP分析数据库相当,同时又具有MPP分析数据库不具备的容错和复杂分析的能力。

    Shark基本上就是在Spark的框架基础上提供和Hive一样的HiveQL命令接口,为了最大程度的保持和Hive的兼容性,Shark使用了HiveAPI来实现query ParsingLogic Plan generation,最后的PhysicalPlan   execution阶段用Spark代替Hadoop MapReduce。通过配置Shark参数,Shark可以自动在内存中缓存特定的RDD,实现数据重用,进而加快特定数据集的检索。同时,Shark通过UDF用户自定义函数实现特定的数据分析学习算法,使得SQL数据查询和运算分析能结合在一起,最大化RDD的重复使用。

    系统概述

    Shark既支持SQL查询处理,也支持机器学习函数。Shark是与Hive兼容的,用户可以无需修改Hive的查询以及数据就能在shark上执行。

    由于与Hive的兼容,shark可以在任何支持Hadoop存储API的系统上进行查询,包括HDFSAmazon S3等。Shark也支持多种数据格式,例如:textjsonxml等。Shark继承了Hiveschema-on-read和嵌套数据类型。

    此外,用户可以选择将部分数据存储到shark的内存中,以便进行快速分析处理。

     

    上图显示了shark集群的体系结构,包括一个master节点和一组worker节点。数据仓库的元数据存储在一个外部事务性数据库中。Shark是建立在Spark之上的,Spark是一个类似于Mapreduce的集群计算引擎。当一个查询提交到master时,shark将该查询转换成一个用RDD表示的操作树。这些RDDSpark转化成一张任务的图,worker节点来执行这些任务。

     

    上图显示了shark的体系结构,特点如下:

    1、 物理计划在Spark上执行;

    2、 依靠Spark的快速执行、容错性及RDD

    3、 尽可能的充分利用Hive的代码:将Hive生成的逻辑计划转换为Spark的执行图(execution graph);

    4、 与Hive的兼容性:无需修改就可以利用hivemetadataHDFS上执行HiveQL

    RDD上执行SQL查询

    Shark与传统的RDBMS一样,执行SQL查询一般都经过以下3个过程:解析查询语句、生成逻辑计划、生成物理计划。给定一个查询,Shark使用Hive的查询编译器解析查询语句并生成对应的抽象语法树,然后将这棵树转化为逻辑计划及基本的逻辑优化(比如,预测下推),以上这些,SharkHive都使用了相同的方法。Hive将把操作转化为有一系列MapReduce程序组成的物理计划,而对于Shark,它的优化器将应用额外的优化规则(如,对于关键字LIMIT对应的优化规则)到各个独立的分区(individual partitions)中,并且创建由一序列在RDDs上的转化操作构成的物理计划,而不是MapReduce Jobs,然后利用在Spark中已经实现的operators(如,mapreduce)或在Shark中实现的operators(如 broadcast joins)执行相应的物理计划。

    系统拓展

    尽管通过这些基本的方法可以在Spark上执行SQL语句,但怎样做到高效率是一个挑战。UDF(用户自定义函数)的流行以及复杂的分析函数在Shark上的使用,很难再编译的时候就确定相应的优化查询计划,特别在没有经过ETL处理的新数据上。另外,尽管有了这样一个计划,愚蠢的在Spark或其他MapReduce环境下也是低效的。为了高效的存储相关的数据以及执行SQL,对Spark引擎进行了一些如下拓展。

    Ø Partial DAG ExecutionPDE

    为了在分布式数据集上支持动态查询优化,拓展了Spark支持PDE,这项技术允许使用在运行时收集的统计数据,动态的改变查询计划。目前,PDE主要用在Shuffle操作阶段边界上,这里将进行数据的交换及重新分区,都是Shark上典型的高消耗操作。默认情况下,在shuffle之前,Spark将在内存中实例化map任务的输出,如果有必要才输出到磁盘上,reduce任务将随后获取这些输出。

    PDE通过以下两步修改这种机制。首先,在实例化map输出的时收集总体可定制的统计信息和每个分区的粒度;然后,将依赖这些统计值,通过选择不同的operators或改变它们的参数(如,并行度)来修改DAG

    Ø Columnar Memory Store

    SharkSpark的内存存储机制上实现了基于列的内存存储。Shark使用JVM原始的数组存储原始类型(primitive types)的所有列,Hive支持的复杂数据类型(如,maparray),将被序列化并由关联着的字节数组进行存储。每一列都只创建了一个JVM对象,能够实现高效的空间利用、GCs和压缩数据,减轻了deserialize的负担。

    Ø Distributed Data Loading

    除了查询的执行,Shark还使用Spark的执行引擎实现了分布式数据加载。在加载的过程中,表将被分割成小的partitions,这些partitions将被不同的tasks根据加载模式,提取相应的数据并以列的形式存储在内存中。每一个数据加载的task将跟踪metadata来决定分区中的每一列是否应该压缩,如:若某列不同的值低于某个阈值,对应的数据加载task将在此列上进行压缩处理。每个task根据加载数据的情况,选择合适的处理优化策略,而不是所有的task都统一使用共同的策略,保证在加载过程中实现最大的并行度。需要注意的是,RDD的血统并不会记录这些处理的策略。

    Ø Data Co-partitioning

    Shark为了在后面的查询中快速的实现join操作,在数据加载过程中,允许在共同的主键上进行co-partitioning。在分布式文件系统(如,HDFS)中,存储系统基于模式判别,不能实现co-partitioning。在join两个co-partitioned tables时,Shark的优化器将会创建一个避免了高耗shuffleDAG并且代替map任务执行join。在Shark中可以使用DISTRIBUTE BY进行实现:

    CREATE TABLE l_mem TBLPROPERTIES ("shark.cache"=true)

    AS SELECT * FROM lineitem DISTRIBUTE BY L_ORDERKEY;

    CREATE TABLE o_mem TBLPROPERTIES ("shark.cache"=true,"copartition"="l_mem") AS SELECT * FROM order DISTRIBUTE BY O_ORDERKEY;

    Ø Partition Statistics and Map Pruning

    存储文件系统中的数据,很有可能在一列或几列上存在在聚集的性质,Map Pruning就是建立在具有聚集特性的数据上进行数据分区修剪的过程。Shark的内存将数据存储成小的分区(block),每个block都包含了一个或几个逻辑上具有聚集性质的组,而Shark可以避免扫描那些不在查询范围内的block

    为了充分利用这些在某些列上具有聚集特性的数据,Shark的内存存储了每个worker在数据加载过程中记录的统计信息,包括每一列值的范围。如果某列上值不同的数较少,还将统计这些不同的值,这些统计值将在master中汇总,实现查询过程中修剪分区。

    支持机器学习 

    Shark的一个重要设计目标就是能处理高效SQL查询和复杂的机器学习。Shark遵循将计算移到数据处的原则,支持机器学习。这样设计的原因是选择了Spark作为执行引擎、RDD作为operators操作的主要数据结构。Shark除了执行SQL查询并返回其结果外,还允许查询返回代表了查询计划的RDD,用户可以使用返回的RDD进行分布式计算。

    Shark会在集群上自动的并行执行上述的mapmapRowsreduce函数,并且master程序将收集reduce函数的输出进行更新操作。目前Shark提供一些基本的机器学习算法,包括linear regressionlogistic regressionk-means。在大部分情况下,用户只需要实现一个mapRows函数提取待分析的数据,然后调用上述提供的算法。

    除了语言的集成,另一个使用RDDs作为operators操作的数据结构关键益处是执行引擎的集成。这个共同的抽象使得机器学习计算和SQL查询可以共用workers,并且可以通过数据缓存避免了数据移动带来的负载。

    展开全文
  • <div><p>i wanted to know if there is any branch of iron-router that is compatible with the current meteor shark</p><p>该提问来源于开源项目:iron-meteor/iron-router</p></div>
  • <div><p>shark installed via conda crashes on our server. Since it is quite an old server, we suspect it is due to the <code>-march=native</code> flag. With this PR I update the Makefile patch ...
  • Most Dangerous Shark

    2020-09-17 22:00:52
    Semyon participates in the most prestigious competition of the world ocean for the title of the most dangerous shark. During this competition sharks compete in different subjects: speed swimming, ...
  • linking Shark on OS X

    2020-12-27 15:31:32
    <div><p>Dear Shark Community, <p>I’m having difficulty at the link stage when trying to use Shark on OS X 10.11.2 (El Capitan), building everything with clang. <p>The linker error I get is: Undefined...
  • 数据仓库系统Shark.zip

    2019-07-16 05:58:35
    Shark 是一个大型的数据仓库系统为 Spark 的设计与 Apache Hive 兼容。它处理 Hive QL 的性能比 Apache Hive 快 30 倍。支持 Hive 查询语言、元存储、序列化格式和用户自定义函数。 要求: Scala 2.10.3 AMPLab's...
  • spark sharkCurrently, I wanna take Shark’s (Spark SQL) DDL and DML as an reference to design/implement SQLE’s DDL and DML. However, I cannot find its DDL and DML. I can only find several SQLs in ...
  • Shark性能测试

    千次阅读 2014-06-25 15:25:37
    Shark性能测试
  • Issue with building shark?

    2020-12-26 23:10:20
    <div><p>Hello, i got the following error when i tried to build shark both using cmd or cmake GUI: <p>C:\Users\Avrahim\Documents\Visual Studio 2015\Projects\Shark-3.0.0\build>cmake -G "Visual ...
  • shark用户指南

    2016-04-27 21:45:14
    http://gaoxianglong.github.io/shark/
  • Shark为何被抛弃?

    2019-12-17 07:09:52
    Shark的来历 Shark是由Reynold Xin从2011年开始主导开发的。当时Hive几乎是唯一的SQL-Hadoop的选择方案,然而hive的性能受限于MapReduce,无法使用spark的计算模型。Shark的提出就是针对这种需求的,它的目标是技能...
  • shark007(xp,vista)最终版

    2020-04-15 11:17:30
    shark007最后支持xp和vista的版本,一套系统媒体解码器扩展

空空如也

1 2 3 4 5 ... 20
收藏数 2,327
精华内容 930
关键字:

Shark