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源代码实现

  • 相关阅读:
    遗传算法(Genetic Algorithm, GA)及MATLAB实现
    CCF CSP 201809-2 买菜
    PAT (Basic Level) Practice (中文)1008 数组元素循环右移问题 (20 分)
    PAT (Basic Level) Practice (中文)1006 换个格式输出整数 (15 分)
    PAT (Basic Level) Practice (中文)1004 成绩排名 (20 分)
    PAT (Basic Level) Practice (中文)1002 写出这个数 (20 分)
    PAT (Advanced Level) Practice 1001 A+B Format (20 分)
    BP神经网络(原理及MATLAB实现)
    问题 1676: 算法2-8~2-11:链表的基本操作
    问题 1744: 畅通工程 (并查集)
  • 原文地址:https://www.cnblogs.com/inuyasha1027/p/kettle_cluster_sorting2.html
Copyright © 2011-2022 走看看