spring可用于数据层吗_Spring XD用于数据提取

spring可用于数据层吗

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

spring可用于数据层吗

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

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

相关文章

go语言mysql操作_使用Go语言操作MySQL数据库的思路与步骤

最近在做注册登录服务时&#xff0c;学习用Go语言操作MySQL数据库实现用户数据的增删改查&#xff0c;现将个人学习心得总结如下&#xff0c;另外附有代码仓库地址&#xff0c;欢迎各位有兴趣的fork。软件环境&#xff1a;Goland、Navicat for MySQL。一、实现思路1&#xff0c…

学习嵌入式C语言的6个层级,你在哪一层?

C语言可以说是一种经典的编程语言&#xff0c;没有C语言就没有今天的各种操作系统。C语言是基础&#xff0c;那么你掌握了多少&#xff1f;新手级别学习目的&#xff1a;过计算机二级&#xff0c;考证&#xff0c;应付期末考试。需要掌握的程度&#xff1a;掌握C语言的基本语法…

intellij idea_IntelliJ IDEA内部设计

intellij ideaIntelliJ IDEA的第一个版本于2001年1月发布&#xff0c;当时它是第一个集成了高级代码导航和代码重构功能的Java IDE之一。 2009年&#xff0c;JetBrains开源了其社区版本 。 从那时起&#xff0c;创建了许多基于它的IDE&#xff0c;例如Google的Android Studio。…

mysql索引下沉_MySQL 5.6 索引条件下推优化

索引下推优化是MySQL5.6版本中新加的功能。索引条件下推(ICP)是对MySQL使用索引从表中检索行的情况的优化。如果没有ICP&#xff0c;存储引擎会遍历索引以查找基表中的行&#xff0c;并将它们返回给MySQL服务器&#xff0c;由server层再做一波筛选。启用ICP后&#xff0c;如果只…

C语言 | 函数执行成功时,return 1 还是return 0?

今天分享的内容是关于函数执行成功&#xff0c;返回0还是1的讨论~基本上&#xff0c;没有人会将大段的C语言代码全部塞入 main() 函数&#xff0c;更好的做法是按照复用率高&#xff0c;耦合性低的原则&#xff0c;尽可能的将代码拆分不同的功能模块&#xff0c;并封装成函数。…

jcache_窥探JCache API(JSR 107)

jcache这篇文章从较高的层次介绍了JCache API&#xff0c;并提供了一个预告片–仅够您&#xff08;希望&#xff09;开始对此发痒了&#xff1b;-) 在这篇文章中……。 JCache概述 JCache API&#xff0c;实现 JCache API支持的&#xff08;Java&#xff09;平台 快速了解O…

redis 启动加载mysql_Redis分析系列:启动加载过程

从本篇文章开始(命名为Redis分析系列)&#xff0c;将会通过分析Redis的源代码(以Redis 2.2.0 RC1为准)&#xff0c;来对它的内部实现做一些探讨。本文主要介绍Redis启动加载过程&#xff0c;总体上可以分为如下几步&#xff1a;1. 初始化全局服务器配置2. 加载配置文件(如果指定…

c 文件怎么进行读取和写入操作?

C >>和<<读写文本文件&#xff1a;fstream 或者 ifstream 类负责实现对文件的读取&#xff0c;它们内部都对 >> 输出流运算符做了重载&#xff1b;同样&#xff0c;fstream 和 ofstream 类负责实现对文件的写入&#xff0c;它们的内部也都对 << 输出流…

mysql+误操作怎么恢复_Mysql误操作恢复流程

一、开启binlog。show variables like log_bin;#vim /etc/my.cnf在[mysqld]中加入log-bin mysql-binlog-bin /usr/local/mysql/log/mysql-bin.log重启mysql服务#service mysqld stop#service mysqld start二、数据写入建库create database …

drools6.5_Drools 6.2.0.Final发布

drools6.5我们很高兴地宣布最新&#xff0c;最出色的Drools 6.2.0.Final版本。 特别是此发行版更加注重改进的可用性和功能&#xff0c;这些功能使项目更易于使用&#xff08;和采用&#xff09;。 新功能包括对工作台UI的大量改进&#xff0c;对社交活动和插件管理的支持以及…

c程序编写x的y次方的方法

c程序怎么编写x的y次方?C语言pow()函数&#xff1a;求x的y次方&#xff08;次幂&#xff09;头文件&#xff1a;#include pow() 函数用来求 x 的 y 次幂&#xff08;次方&#xff09;&#xff0c;其原型为&#xff1a;double pow(double x, double y);pow()用来计算以x 为底的…

python redis pipeline使用方法_python使用pipeline批量读写redis的方法

用了很久的redis了。随着业务的要求越来越高。对redis的读写速度要求也越来越高。正好最近有个需求(需要在秒级取值1000的数据)&#xff0c;如果对于传统的单词取值&#xff0c;循环取值&#xff0c;消耗实在是大&#xff0c;有小伙伴可能考虑到多线程&#xff0c;但这并不是最…

jboss fuse 教程_JBoss Fuse –一些鲜为人知的技巧

jboss fuse 教程TL; DR 将Java静态调用公开为Karaf Shell本机命令 在部署时覆盖OSGi标头 在使用OSGi片段部署时间后覆盖OSGi标头 将Java静态调用公开为Karaf Shell本机命令 作为必须与支持人员和客户进行协作的软件工程师的一部分&#xff0c;我经常发现自己需要从无法访问…

8条嵌入式C语言编程小知识总结

1. 流水线被指令填满时才能发挥最大效能&#xff0c;即每时钟周期完成一条指令的执行(仅指单周期指令)。如果程序发生跳转&#xff0c;流水线会被清空&#xff0c;这将需要几个时钟才能使流水线再次填满。因此&#xff0c;尽量少的使用跳转指令可以提高程序执行效率&#xff0c…

c语言函数的三种调用方式是什么?

函数的三种调用方式&#xff1a;1、函数作为表达式中的一项出现在表达式中&#xff0c;例“zmax(x,y)”&#xff1b;2、函数作为一个单独的语句&#xff0c;例“printf("%d",a)”&#xff1b;3、函数作为调用另一个函数时的实参&#xff0c;例“printf("%d"…

CF1913D. Array Collapse [dp+单调栈+前缀和]

传送门 [前题提要]:感觉dp还是很显然的,感觉单调栈也不是很难想,但是VP的时候脑子比较乱,dp方程想偏了,没写出来… 看完题目,不难发现应该存在一种递推关系.因为会发现最后剩下来的必然是原序列的一种子序列,然后这种子序列计数的问题.应该想到使用dp计数. 刚开始我的想法是使…

弱口令扫描工具mysql ftp_基于端口的弱口令检测工具--iscan

iscan: 基于端口的弱口令检测工具亲手打造了一款基于端口的弱口令检测工具&#xff0c;使用python进行编写&#xff0c;主要可以用于渗透测试中常见服务端口弱口令的检测。目前支持以下服务&#xff1a;系统弱口令&#xff1a;ftp、ssh、telnet、ipc$数据库弱口令&#xff1a;m…

javafx 剪切板_JavaFX技巧18:路径剪切

javafx 剪切板我最近注意到&#xff0c;我致力于ControlsFX项目的PopOver控件无法正确剪切其内容。 当我为FlexCalendarFX框架开发手风琴弹出窗口时&#xff0c;这一点变得显而易见。 每当最后一个标题窗格扩展时&#xff0c;其底角不再是圆角而是正方形。 在标题窗格中放置一个…

用于单片机的几种C语言算法

单片机主要作用是控制外围的器件&#xff0c;并实现一定的通信和数据处理。虽然单片机不擅长实现算法和进行复杂的运算&#xff0c;但在某些特定场合&#xff0c;不可避免地要用到数学运算。比如&#xff1a;在单片机进行数据采集时&#xff0c;会遇到数据的随机误差&#xff0…

jmh 基准测试_JMH:如何设置和运行JMH基准

jmh 基准测试健康警告&#xff01; 这篇文章描述了如何设置和运行简单的JMH基准测试。 众所周知&#xff0c;微基准测试很难正确设置&#xff0c;即使您确实正确设置了&#xff08;通过使用JMH之类的工具&#xff09;&#xff0c;它们仍然会产生误导。 仅仅因为您的代码在极端孤…