Spring XD用于数据提取

Spring XD是一个功能强大的工具,它是一组可安装的Spring Boot服务,可以独立运行,在YARN或EC2之上运行。 Spring XD还包括一个管理UI网站和一个用于作业和流管理的命令行工具。 Spring XD是一组功能强大的服务,可与各种数据源一起使用。

为了达到理想的使用效果,它应该在Apache Spark或Hadoop集群中运行。 在第一部分中,我们将设置XD使其在具有必要数据服务的Centos / RHEL机器上运行。 这些用于运行所需的基础结构以及数据摄取。 您可以集成现有的RDBMS,MongoDB,Kafka,Apache Spark,Hadoop,REST,RabbitMQ和其他服务。

您还可以在Mac,Windows和其他Linux发行版上安装XD。 对于开发人员机器上的基本用法,只需从Spring.IO网站下载Spring XD并运行xd / xd / bin / xd-standalone,这足以运行数据提取。

1. Spring XD设置

首先,让我们在您的Linux服务器上安装Spring XD,注意其运行要求。 如果您没有所需的服务,则XD下载包含它们的版本供您运行。

参考:

  • http://docs.spring.io/spring-xd/docs/current/reference/html/#_redhat_centos_installation
  • https://github.com/spring-projects/spring-xd/wiki/Running-Distributed-Mode
  • https://github.com/spring-projects/spring-xd/wiki/XD-Distributed-Runtime

要求:

  • Apache Zookeeper 3.4.6
  • 雷迪斯
  • RDBMS(MySQL,Postgresql,Apache Derby等)

浓缩机:

  • GemFire(强烈建议用于内存数据网格)
  • GemFire XD(强烈建议用于内存数据库)
  • RabbitMQ(强烈推荐)
  • 阿帕奇纱线

在Centos / RHEL / Fedora上安装MySQL

需要一个关系数据库来存储您的工作信息,而可以使用内存中的RDBMS,但为了实际使用,应使用RDBMS。 如果您有可从XD群集访问的RDBMS,则可以使用它。 我更喜欢将开放源代码数据库仅用于XD,您可以为此安装MySQL或Postgresql。

sudo yum install mysql-server
  • http://dev.mysql.com/downloads/repo/yum/

安装Postgresql(不要与GreenPlum安装在同一台计算机上)

sudo yum install postgresql-server

安装Redis

  • http://redis.docs.pivotal.io/doc/2x/index.html#getting-started/src/install.html #topic_q3g_vzs_yn

(请参阅RabbitMQ)

ᅠwget -q -O – http://packages.pivotal.io/pub/rpm/rhel6/app-suite/app-suite-installer | sh
ᅠ ᅠ ᅠ ᅠ ᅠ ᅠsudo yum install pivotal-redis
ᅠ ᅠ ᅠ ᅠ ᅠ ᅠsudo service pivotal-redis-6379 start
ᅠ ᅠ ᅠ ᅠ ᅠ ᅠsudo chkconfig —level 35 pivotal-redis-6379 on

安装RabbitMQ

即使您有另一个消息队列,也需要RabbitMQ。 单个节点就足够了,但是通信需要它。 我强烈建议您使用真正的RMQ群集,因为它适合大多数流媒体需求。

  • http://rabbitmq.docs.pivotal.io/doc/33/index.html#getstart/src/install-getstart.html #安装,RHEL
ᅠ
sudo wget -q -O – packages.pivotal.io | sh
sudo wget -q -O – http://packages.pivotal.io/pub/rpm/rhel6/app-suite/app-suite-installer | sh

根据权限的不同,您可能必须将其发送到文件,将其更改为chmod 700并通过sudo ./installer.sh运行。

ᅠ
sudo yum search pivotalpivotal-rabbitmq-server.noarch: The RabbitMQ serversudo yum install pivotal-rabbitmq-server
sudo rabbitmq-plugins enable rabbitmq_management ᅠ ᅠ

如果您正在该计算机上运行其他内容,则可能与端口冲突。

ᅠ
sudo /sbin/service rabbitmq-server start

安装Spring-XD

最简单的安装方法是使用Pivotal的RHEL官方版本,因为它们已通过认证。 您不需要成为客户就可以使用它们。 还有许多其他方式来下载/安装XD,但这对于RHEL是最简单的,因为它将配置它们为服务。

sudo wget -q -O – http://packages.pivotal.io/pub/rpm/rhel6/app-suite/app-suite-installer sh sudo yum install spring-xd

建议

还建议在同一容器内部署XD节点和DataNode并使用数据分区。 这将加速数据处理和提取。

设置工作数据库

更改数据源,选择以下一项以进行最简单的设置。 作业数据库是存储Spring XD作业信息和元数据的地方。 这是必要的。 这将是非常少量的数据。

/opt/pivotal/spring-xd/xd/config
ᅠ#spring:
# ᅠdatasource:
# ᅠ ᅠurl: jdbc:mysql://mysqlserver:3306/xdjobs
# ᅠ ᅠusername: xdjobsschema
# ᅠ ᅠpassword: xdsecurepassword
# ᅠ ᅠdriverClassName: com.mysql.jdbc.Driver
# ᅠ ᅠvalidationQuery: select 1
#Config for use with Postgres - uncomment and edit with relevant values for your environment
#spring:
# ᅠdatasource:
# ᅠ ᅠurl: jdbc:postgresql://postgresqlserver:5432/xdjobs
# ᅠ ᅠusername: xdjobsschema
# ᅠ ᅠpassword: xdsecurepassword
# ᅠ ᅠdriverClassName: org.postgresql.Driver
# ᅠ ᅠvalidationQuery: select 1

测试Spring-XD单节点是否正常工作:

cd /opt/pivotal/springxd/xd/bin
./xd-singlenode —hadoopDistro phd20

如果您使用的是与Pivotal HD 2.0不同的Hadoop发行版,则可以在此处指定该标记或将其保留为关闭状态。

测试Spring-XD Shell是否有效

cd /opt/pivotal/springxd/shell/bin
ᅠ ᅠ ./xd-shell—hadoopDistro phd20

该外壳程序具有帮助和快捷方式,只需开始键入,Tab即可为您解析名称和参数。

设置Spring XD的环境变量

export XD_HOME=/opt/pivotal/spring-xd/xd

对于默认访问,我使用:

/opt/pivotal/spring-xd/shell/bin/xd-shell —hadoopDistro phd20

用于测试分布式Spring XD(DIRT)的容器和管理服务器

sudo service spring-xd-admin start
sudo service spring-xd-container start

用于测试Spring XD

  • http://blog.pivotal.io/pivotal/products/spring-xd-for-real-time-analytics
  • https://github.com/spring-projects/spring-xd-samples

一些Spring XD Shell命令进行测试

had config fs —namenode hdfs://pivhdsne:8020
admin config server http://localhost:9393
runtime containers
runtime moduleshadoop fs ls /xd/
stream create ticktock —definition “time | log”
stream deploy ticktock
stream list

xd图像1

xd-image-2

检查网页界面

  • http:// localhost:9393 / admin-ui /#/ streams / definitions

xd图像3

2. Spring XD Job and Stream with SQL

注意:为了节省空间,完整的字段列表被缩写,您必须列出所有正在使用的字段。

首先,我们创建一个简单的filejdbc Spring Job,它将原始代字号分隔的文件加载到HAWQ中 。 这些字段都以TEXT字段形式出现,出于某些目的,这可能是可以的,但对于我们的需求而言不是。 我们还使用自定义接收器(请参阅XML,无编码)创建XD流,该流运行SQL命令从该表插入并转换为其他HAWQ类型(例如数字和时间)。

我们通过命令行REST POST触发辅助流,但是我们可以使用定时触发或许多其他方式(自动,脚本或手动)来启动辅助流。 您也可以只创建一个自定义XD作业,该作业完成类型的转换和一些操作,或者通过Groovy脚本转换完成。 XD中有很多选项。

jobload.xd

job create loadjob --definition "filejdbc --resources=file:/tmp/xd/input/files/*.* --names=time,userid,dataname,dataname2,
dateTimeField, lastName, firstName, city, state, address1, address2 --tableName=raw_data_tbl --initializeDatabase=true 
--driverClassName=org.postgresql.Driver --delimiter=~ --dateFormat=yyyy-MM-dd-hh.mm.ss --numberFormat=%d 
--username=gpadmin --url=jdbc:postgresql:gpadmin" --deploy
stream create --name streamload --definition "http | hawq-store" --deploy
job launch jobload
clear
job list
stream list
  1. 作业将包含所有文本列的文件加载到Raw HAWQ表中。
  2. 流是由网页命中或命令行调用触发的
  3. (需要hawq-store)。 这确实会插入到实际表中并截断临时表。

triggerrun.sh(用于测试的BASH Shell脚本)

curl -s -H "Content-Type: application/json" -X POST -d "{id:5}" http://localhost:9000

将spring-integration-jdbc jar添加到/ opt / pivotal / spring-xd / xd / lib

hawq-store.xml(Spring集成/ XD配置)

/opt/pivotal/spring-xd/xd/modules/sink/hawq-store.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:int="http://www.springframework.org/schema/integration"xmlns:int-jdbc="http://www.springframework.org/schema/integration/jdbc"xmlns:jdbc="http://www.springframework.org/schema/jdbc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/integrationhttp://www.springframework.org/schema/integration/spring-integration.xsdhttp://www.springframework.org/schema/integration/jdbchttp://www.springframework.org/schema/integration/jdbc/spring-integration-jdbc.xsd">
<int:channel id="input" />
<int-jdbc:store-outbound-channel-adapterchannel="input" query="insert into real_data_tbl(time, userid, firstname, ...) select cast(time as datetime), 
cast(userid as numeric), firstname, ... from dfpp_networkfillclicks" data-source="dataSource" />
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="org.postgresql.Driver"/><property name="url" value="jdbc:postgresql:gpadmin"/><property name="username" value="gpadmin"/><property name="password" value=""/>
</bean>
</beans>

createtable.sql

CREATE TABLEᅠraw_data_tbl(time text,userid text ,
...somefieldᅠtext)WITH (APPENDONLY=true)DISTRIBUTED BY (time);

3. Shell的Spring XD脚本

我的常规安装脚本(我将其保存在setup.xd中,并通过 script –file setup.xd加载它)

had config fs --namenode hdfs://localhost:8020
admin config server http://localhost:9393
hadoop fs ls /
stream list

通过Spring-XD将文件加载到GemFireXD的脚本

stream create --name fileload --definition "file --dir=/tmp/xd/input/load --outputType=text/plain | ᅠjdbc --tableName=APP.filetest --columns=id,name" --deploy

4. GemFire XD的Spring XD配置

将GemFire XD JDBC驱动程序复制到Spring-XD(可能也需要tools.jar)

cp /usr/lib/gphd/Pivotal_GemFireXD_10/lib/gemfirexd-client.jar /opt/pivotal/spring-xd/xd/lib/

修改接收器的JDBC属性以指向您的Gemfire XD,如果您使用的是Pivotal HD VM并安装带有Yum的Spring-XD(sudo yum update spring-xd),则此位置:

/opt/pivotal/spring-xd/xd/config/modules/sink/jdbc/jdbc.properties
url = jdbc:gemfirexd://localhost:1527
username = gfxd
password = gfxd
driverClassName = com.pivotal.gemfirexd.jdbc.ClientDriver

对于Peer Client Driver,您需要GemFireXD Lib(.so二进制文件)中的更多文件,链接可能是一个好主意。

5. GemFire XD设置

gfxd
connect client 'localhost:1527';create table filetest (id int, name varchar(100)) REPLICATE PERSISTENT;
select id, kind, netservers from sys.members;ᅠ
select * from filetest;

Spring XD命令

stream list

显示你的流

参考:

  • Spring XD文档
  • Spring XD Wiki
  • 在Centos上安装Spring XD
  • GemFire XD文档
  • Spring XD文件 提取 到JDBC中
  • 带有Hadoop的Spring XD

6.通过Spring XD将数据从RabbitMQ导入RDBMS

从名为“ rq”的Rabbit队列读取的简单流,并将其发送到“消息和主机”列的SQL数据库,从而创建名为“ rq”的新表。

stream create --name rq --definition "rabbit --outputType=text/plain | jdbc --columns='message,host' --initializeDatabase=true" --deploy

7.通过Spring XD将数据从REST API导入HDFS

stream create --name hdfssave --definition "http  | hdfs" –deploy

翻译自: https://www.javacodegeeks.com/2015/03/spring-xd-for-data-ingestion.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/360260.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JDK 9 REPL:入门

会议是聚会Java名人的好地方。 Devoxx France是与Java语言架构师&#xff0c;前同事和老朋友Brian Goetz&#xff08; briangoetz &#xff09;见面的一个机会。 我们谈论了JDK 9&#xff0c;而他全都热衷于REPL。 他提到&#xff0c;尽管Java SE 9中有很多重要功能 &#xff0…

sinaapp mysql连接_手把手教你在新浪云上免费部署自己的网站--连接数据库

看完之后&#xff0c;默认你知道怎么将代码上传到新浪云SAE&#xff0c;并且能够成功运行&#xff0c;连接数据库之前&#xff0c;你必须先创建有一个应用。现在我创建一个名称为sampleone的应用&#xff0c;如下图点击左侧的代码管理&#xff0c;选在右侧创建一个版本然后就会…

HDU-4527 小明系列故事——玩转十滴水 模拟

题意&#xff1a;就是平时玩的十滴水游戏&#xff0c;游戏者拥有一定的水滴&#xff0c;能够滴在某些位置&#xff0c;如果一个点上的体积超过了4就会爆炸&#xff0c;向四周传递一个小水滴。该题就是要求模拟这个过程。 分析&#xff1a;这里有一个问题就是不能够使用递归来处…

win8改win7 教程

新入手的WIN8怎么改成WIN7呢&#xff1f;下面以戴尔Dell V3560 win8换win7系统为例说明&#xff1a; win8改win7本文转自http://jingyan.baidu.com/article/ed2a5d1f2a97ee09f6be17e2.html 第一步&#xff1a;开机过程中不断按F2进入到BIOS&#xff0c;更改bios设置&#xff0c…

7 centos 查看程序文件数量_解析CentOS 7中系统文件与目录管理

LINUXLinux操作系统解析CentOS 7中系统文件与目录管理Linux目录结构Linux目录结构是树形的目录结构根目录所有分区、目录、文件等的位置起点整个树形目录结构中&#xff0c;使用独立的一个“/”表示常见的子目录目录目录名称目录目录名称/root管理员家目录/bin所有用户可执行命…

IE浏览器模式设置

文件兼容性用于定义让IE如何编译你的网页。此文件解释文件兼容性&#xff0c;如何指定你网站的文件兼容性模式以及如何判断一个网页该使用的文件模式。 前言 为了帮助确保你的网页在所有未来的IE版本都有一致的外观&#xff0c;IE8引入了文件兼容性。在IE6中引入一个增设的兼容…

mysql存储过程套嵌_mysql存储过程套嵌

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航&#xff0c;为用户…

拆卸invokedynamic

许多Java开发人员认为JDK的第七版有些令人失望。 从表面上看&#xff0c;仅少数语言和库扩展使它成为了发行版&#xff0c;即Project Coin和NIO2 。 但在幕后&#xff0c;该平台的第七个版本对JVM类型系统进行了最大的扩展&#xff0c;这是它最初发布后引入的。 添加invokedyna…

CRON

http://blog.csdn.net/tianlesoftware/article/details/5315039 1. 同时修改文件的修改时间和访问时间 touch -d "2010-05-31 08:10:30" test.doc 2. 只修改文件的修改时间 touch -m -d "2010-05-31 08:10:30" test.doc 3. 只修改文件的访问时间 touch -a …

mysql innodb_file_format_Innodb表压缩过程中遇到的坑(innodb_file_format)

对于越来越多的数据&#xff0c;数据库的容量越来越大&#xff0c;压缩也就越来越常见了。在我的实际工作中进行过多次压缩工作&#xff0c;也遇到多次问题&#xff0c;在此和大家分享一下。首先&#xff0c;我们先说说怎么使用innodb的压缩.第一&#xff0c;mysql的版本需要大…

java内存泄漏和内存溢出_Java和内存泄漏

java内存泄漏和内存溢出总览 术语“内存泄漏”在Java中的使用方式不同于在其他语言中使用的方式。 通用术语中的“内存泄漏”是什么意思&#xff0c;在Java中如何使用&#xff1f; 维基百科的定义 当计算机程序消耗内存但无法将其释放回操作系统时&#xff0c;就会发生计算机科…

JSP内置对象之WEB安全性及config对象

一、WEB-INF的安全性是最高的。 在Java EE的标准中&#xff0c;Web目录中的WEB-INF是必须存在的&#xff0c;而且此文件夹的安全性是最高的&#xff0c;在各个程序的开发中&#xff0c;基本上都将一些配置信息保存在此文件夹中。在定义WEB-INF目录时一定要注意大小写的问题&…

一行中的Java 8 Lambda

如果您了解这一行&#xff0c;或者更好的是仍然可以编写此代码&#xff0c;则可以说您已经了解了Java 8 Lambda的本质。 当然&#xff0c;它们可以与集合一起使用。 我在Peter Lawrey最近的一次演讲中发现了这一点 。 &#xff08;有空余时间绝对值得观看整个演示文稿。&#…

mysql事务的重复性读_Mysql下InnoDB的可重复读级别的事务测试

Mysql下InnoDB的可重复读的事务测试### 背景&#xff1a;* mysql版本&#xff1a;Server version: 5.1.71* 操作系统&#xff1a;CentOS 6.5 X64* 事务隔离级别&#xff1a;不可重复读### 实验前的准备&#xff1a;mysql> use test;mysql> create table test_table(id in…

python动态绘图并保留之前绘图_[转]基于Python实现matplotlib中动态更新图片(交互式绘图)...

最近在研究动态障碍物避障算法&#xff0c;在Python语言进行算法仿真时需要实时显示障碍物和运动物的当前位置和轨迹&#xff0c;利用Anaconda的Python打包集合&#xff0c;在Spyder中使用Python3.5语言和matplotlib实现路径的动态显示和交互式绘图(和Matlab功能类似)。Anacond…

一步一步学Silverlight 2系列(25):综合实例之Live Search

概述 Silverlight 2 Beta 1版本发布了&#xff0c;无论从Runtime还是Tools都给我们带来了很多的惊喜&#xff0c;如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython&#xff0c;对JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。《一步一步学Silverlig…

gateway中的局部过滤器_Spring Cloud Gateway中的过滤器工厂:重试过滤器

Spring Cloud Gateway基于Spring Boot 2&#xff0c;是Spring Cloud的全新项目&#xff0c;该项目提供了一个构建在Spring 生态之上的API网关。本文基于的Spring Cloud版本为Finchley M9&#xff0c;Spring Cloud Gateway对应的版本为2.0.0.RC1。Spring Cloud Gateway入门一文介…

MySql命令行基本操作

启动mysql服务&#xff1a; net start mysql关闭mysql服务&#xff1a; net stop mysql命令行登陆mysql&#xff1a;mysql -h localhost -u root -p admin 命令行登陆mysql&#xff1a;mysql -uroot -padmin 退出mysql控制台&#xff1a;quit或者exit查看mysql控制台当前信息&a…

mysql 5.7 启动脚本_MySQL数据库 5.7 启动脚本

本文主要向大家介绍了MySQL数据库 5.7 启动脚本&#xff0c;通过具体的内容向大家展现&#xff0c;希望对大家学习MySQL数据库有所帮助。最近这段时间&#xff0c;在看mysql&#xff0c;安装了&#xff0c;也应用过&#xff0c;对于生产环境中&#xff0c;一般都选择使用source…

cocos2d-x for android配置 运行 Sample on Linux OS

1.从http://www.cocos2d-x.org/download下载稳定版 比如cocos2d-x-2.2 2.解压cocos2d-x-2.2.zip,比如本文将其解压到 /opt 目录下 3.运行 android-buildsetup.sh,运行之前需要先设置3个环境变量,如将以下变量写到文件 /etc/profile中 export ANDROID_SDK_ROOT/opt/android-sdk-…