0%

通常在系统管理后台中,使用列表(表格)形式展示数据是最为常见的方式。而在使用Axure设计产品原型时想实现这个数据列表却不太容易,或许常见的做法就是使用矩形拼凑起来,还有就是直接使用表格控件来布局。但是这都不太方便,首先就是布局麻烦,其次就是数据修改比较麻烦。接下来给大家介绍下如何使用表格+中继器控件实现数据列表。

今天在做产品原型设计时,遇到了个关于动态显现遮罩层的难点。“无奈"为追求高保真的效果,还是花了点心思做个原型实现。待做好回过头来看看的话,其实这个效果的难度也不大,只是看个人意愿是否想做而已。Axure本身就提供了模板的功能,也就是说只要实现一次但可以一劳永逸。下面就一起来看看这个遮罩层实现过程和效果吧。

前些时间做了关于Apache Nifi分布式集群的搭建分享,但很多时候要搭建分布式集群机器资源是个问题,而现在的单机的配置还是相当不错的,故现在就做个关于Windows上搭建个伪分布式集群的分享,同时通过另外一种方式实现Apache Nifi的授权认证。

系统环境及软件版本

  • Windows8.1

  • JDK1.8.0_131

  • Nifi-1.4.0

Nifi安装目录WEB端口
xxx\nifi-ncm9443
xxx\nifi-cluster019444
xxx\nifi-cluster029445

(其它版本可参考此篇文章) 另在测试中发个问题,使用Apache Nifi内嵌的Zookeeper搭建伪集群里启动总是提示端口占用的问题,故放弃只采用了单结点启动。

之前一直都是用HDP来搭建和管理Hadoop环境,在安装完成调试时也未曾出现过棘手的问题,但这次在Centos6x系统上布署好后却是遇到奇怪的问题:

表面上看来Hive服务是正常运行的,进程运行正常,页面UI也正常,日志也没错误输出。简单的建表的语句都能执行,可偏偏在导入本地/HDFS数据时,便就抛出异常啦。错误的堆栈信息如下:

1
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'OPTION SQL_SELECT_LIMIT=DEFAULT' at line 1 

另外一个问题在使用Ambari提供的HiveView UI进行HDFS数据导入提示文件不存在,错误信息如下:

1
org.apache.hive.service.cli.HiveSQLException: Error while compiling statement: FAILED: SemanticException Line 1:17 Invalid path ''/tmp/xxx/xxxxx.csv'': No files matching path hdfs:/...

在官方文档的介绍中,了解到Azkaban所支持的工作类型还是很丰富的,如:CommandHadoopShellPythonJavaHivePig等等。不过在此我们主要具体只来讲解下PythonJava的工作类型任务,其它工作类型的话,比如CommnadHiveHadoopShell相对比较简单就不做详解,有需要的话可以自行实践一下。

不管提交哪一种任务,Azkaban默认都是通过上传压缩包来管理,那么在此建议大家养成一个习惯,不要所执行的文件(代码)打包到Azkaban的工程包里面。这样带来的好处是显而易见的,比如:

  • 工程创建的速度快,不需要上传执行部分文件

  • 避免了修改MySQL中的max_allow_packet参数以解决工程文件上传失败的问题

  • 在分布式布署环境中,当执行Task免去了在不同节点中拷贝工程包的麻烦

背景与介绍

在大数据繁杂的ETL或其它数据处理过程当中,有些任务是需要定时执行的,虽然Linux自带了cron命令功能,但是仍不能满足最大的一点就是它不能提供集中式的管理和可视化的编辑。其实在大数据的生态当中已集成有个定时调度框架Oozie,只是实践下来发现其学习成本不低,布署的过程也较复杂。在尝试过其它分布工调度框架后(如阿里的宙斯Zeus),还是选择了社区较多人使用的Azkaban

Azkaban3相对于上个版本所做的更改还是比较大的,感兴趣的话可以到其官方网站 Azkaban 了解下。接下来主要还是分享下Azkaban3的安装布署,下面是Azkaban3的系统架构设计图:

Azkaban-Install00

图中的3个组件便是Azkaban3的重要组成部分:

  • MySQL关系数据存储数据
  • Web Server GUI管理服务提供者
  • Executor Server 分布式节点服务布署

码好代码在测试环境做好测试后,满怀信心的去布署上线到生产环境,结果就是一堆的异常,具体查看了后发现是连接数据库的问题,异常信息如下:

1
2
3
4
(40532, 'Cannot open server "1433D" requested by the login.  
The login failed.DB-Lib error message 20018, severity 20:\n
General SQL Server error: Check messages from the SQL Server\n
DB-Lib error message 20002, severity 9:\nAdaptive Server connection failed\n')

在非Windows环境下去访问,连接 MSSQL 数据,本身就是件苦差事来的。自写Python程序以来在ORM方面都是使用pyxxx的模块,果不其然连接 MSSQL 也有个模块叫pymssql,只是实际使用中并不是特别的顺利。如笔者所处的环境就是如此,开发环境为OSX 10.11,发布环境为CentOS 6.4,按官方的安装步骤实行下来,Linux 环境是OK的,只是 Mac 环境下安装失败,错误的堆栈信息如下: