zoukankan      html  css  js  c++  java
  • Kettle的集群排序 2——(基于Windows)

    5.使用kettle集群模式对相关的数据进行排序

    既然,基于Carte服务程序所搭建的集群已经在Spoon中设定好了,

    可以首先,先来启动四个节点:

    "以管理员身份运行"打开 四个 cmd窗口,(路径要根据个人主机设置进行变更)

    分别输入:

    分别开启集群的各个节点。

    接下来要做的就是导入数据到数据库中作为实验数据。

    首先下载数据源,然后将其加载到数据库中,

    下面的这个链接是可以直接下载到mysql的一个经典的数据集的,

    LZ的很多实验都是使用这个数据集的。

    http://www.mysqltutorial.org/download/2

    使用命令:(具体路径与个人主机解压路径不同而不同,要注意修改的)

    mysql>source    F:ETL_notes7_14mysqlsampledatabase1mysqlsampledatabase.sql

    将数据集导入到mysql数据库中。

    如下截图为mysqlsampledatabase.sql文件所创建的数据库classicmodels中的各个数据表:

     这样就表示了数据集已经正确的导入到数据库中去了。

    创建相关的数据库连接,主对象树->DB连接,对弹出对话框中参数设定如下:

    使用Step 表输入 来将数据库中的表数据导入。

    点击编辑选中刚刚创建好的数据库连接,然后点击“获取SQL查询语句”,

    在弹出对话框中选中对应数据库中想要导入的表名称并且双击。

    接下来点击 预览 按钮就会看到,表输入step已经成功的将数据库中的customers表中数据读入了。

    然后,使用 排序记录Step 来对从数据库表中的数据进行排序处理,

    首先,双击 排序记录

    然后,点击获取记录,

    这样的话就会把导入的数据库表中的对应字段显示到对话框中去了。

    排序SQL语句中的某些设定是很像的,都是要实现设定关键字,通常设定两个(这个不是绝对的,根据具体情况而定)

    接下来选取不需要作为关键字排序的字段,使用delete键进行删除。

    最后确定。

    如果要实现的是集群并发的方式来对数据进行排序的,只需要右键单击 排序记录

    后选择"集群"。

        

    然后选取事先我们设定好的 Cluster1这个集群:具体使用Carte搭建集群请参见:

    在选择集群之后呢,

    因为我们所设定的集群是一主三从,

    主负责 分发  回收任务,

    三从负责并发跑任务。

    所以会看到排序记录的右上角显示有: C*3的字样。

     

    对于输出的话,为了可以清晰、方便的查看结果,使用 文本输出 是很好的方式。

    不过要对文件的路径进行指定选取,以便于到相应的文件夹的下面可以找到输出该文件。

     

    不过这个运行的结果真的是很有意思的,

    首先我们来看一下,carte的相关四个cmd窗口:

    接下来我们再来看一下,工作区中的一个transformation变成了8个,(有点多,就不截图了)

    分别对应的master/slave1/slave2/slave3并且显示了对应执行的不同的操作。

    正如实现所想象的:master负责与 表输入  相交互 将排序的数据抽取出来并分发给 其余的三个slave结点。

    以及收取三个slave进行排序的相应数据,并把数据输出到文本文件中去;

    这也是为什么后三个显示的cmd命令窗口中的相关输入输出为0呢,因为输入输出都是master的工作的。

    三个slave只是负责将分到到自己的数据进行排序,然后将排序结果提交到master就可以了。

     

    这也解释了为什么,集群并发的方式十分适用于处理I/O频繁或是cpu频繁的任务。

    因为并发的运行可以大大的提高相关任务的运行效率,最大限度的使用cpu资源。

     

    接下来我们来看一下文本文件吧,这个可是我们此次实验的运行结果呢。

    大概就是这个样子了呢,根据customerNumber(primary key)进行排序的。

    开头是字段名称,接下来是已经排好序了的数据表中的数据。

    因为选取的第一个 排序关键字 是本表的 主键 。

    所以,根本没有重复的时候。所以第二个选取的concatFirstName也就没有选取的必要了呢。

     

    个人感觉,此文篇幅过长所以第六块的内容就写到下一篇文章中吧~

    6.有关于集群调用子服务器的java源代码实现

  • 相关阅读:
    SVN的安装和使用手册2
    svn安装
    【1】第一篇 Postman的初级使用之设置环境快速切换生成环境与测试环境
    【4】Postman之Tests(断言)
    RIDE,如何指定report,log,output的存放位置
    python启动robotframework-ride失败,解决方案
    Python安装第三库超时的解决方法
    python 识别登陆验证码图片(完整代码)
    代码-字典
    Python数据分析入门
  • 原文地址:https://www.cnblogs.com/inuyasha1027/p/kettle_cluster_sorting2.html
Copyright © 2011-2022 走看看