欢迎来到一句话经典语录网
我要投稿 投诉建议
当前位置:一句话经典语录 > 心得体会 > jira使用心得体会

jira使用心得体会

时间:2013-11-03 15:48

在中小型公司里,产品经理主要的工作职责是什么

1. 工作机会概况:总体而言,在加拿大, IT工程师的职位机会没有中国那么多。

我曾在2014年10月从linkedin上爬了网页做了一些分析,14年10月的某一天,整个加拿大的开发、测试等工作机会有3500左右,主要分布在大多伦多地区和大温哥华地区, 编程语言主要是Java 和 .net, 尤其是JAVA,似乎每个公司都在用。

加拿大的中小型公司偏多,做WEB 应用、移动应用的公司很多,做底层产品的公司较少,主要是一些大型跨国公司,比如Intel, AMD, IBM等,他们会用一些C++, C等语言。

2. 工作工具,技术等似乎绝大多数的加拿大公司在都在使用敏捷,一般都是Scrum这一套,管理工具大部分都使用Jira。

我了解过好几个web application的公司, 都是用 Spring MVC来开发产品, 工具用Eclipse的居多(这个一点样本空间较少, 不具备很强的参考性,但感觉是这样的)。

说说测试工程师, 貌似加拿大的软件测试工作自动化水平程度没有国内高,很多manual testing,不过大部分工作都会要求你有自动化测试的能力, 测试主要用Java调用Selenium 接口进行WEB UI testing。

3. 工作强度整体来说,加拿大的工作强度比国内和美国差了很多,整个国家都慢悠悠的,我感觉我在国内需要用一天的工作,这里至少要2天以上,不过完成质量还是不错的。

IT工程师一般都很少加班, 八小时工作足够了(八小时工作时间通常包含中午吃饭时间,吃早茶和下午茶的时间)。

比如我们公司,大部分人10点前到,最多到下午五点,很多人都是四点多,甚至来得很早的人三点多就下班回去了。

周末加班

从来没听谁说过。

非工作时间上班简直会让他们想去死。

我曾经告诉他们什么是996,同事们问,那他们工作的意义在哪里

4. 办公室氛围我感觉这里的普通同事关系要比国内的近,大家都很融洽,但是要说特别铁的也不多。

加拿大人通常都会很礼貌,很友好,爱开玩笑,你有问题他们都会想办法帮助你。

同事生小孩,结婚,离职等都会给大家带好吃的来庆祝,关系好的也会凑份子钱(一般就给10加币左右,20算是很多了).我们公司大概一千多人,算是加拿大比较大的公司了,中国人有70-80个左右,大家很团结,公司的人都非常友好,我从来没有感受到什么歧视或者不友好,其中有一个中国人还是VP, manager, director 大概有3-4个,team lead 一堆,我感觉10个人左右吧。

过年的时候,有的老外同事还穿一身红来公司...5. 职业规划这个和国内差不多,程序员 一般就是两条线,管理或者技术,管理的话成为manager,技术路线的话走Junior -> Senior -> Architect, 或者 继续跳槽去其他公司,或者去美国工作。

走管理的话,英语水品要比较好,因为整天要和别人开会,计划,扯皮等。

6. 薪资我了解到的情况是,大部分开发的薪水比美国要低,和中国的一些企业(比如BAT,华为等)相比也不是十分具有竞争力。

一般的公司,初级程序员年薪约有5-7w加币, 中级 7-9w, 高级 10- 13w加币左右。

但是在本地加币的购买力还是强于等量人民币,一般的吃穿都相对便宜。

比如20到30刀一家三口吃顿饭没啥问题。

jira中能不能批量移动问题,从这个项目移动到另外一个项目中

在过滤器中搜索出需要移动的问题。

点右上角“工具”,批量修改,移动问题, 就可以整体移动了。

如何选择Apache Spark和Apache Flink

我们是否还需要另外一个新的数据处理引擎

当我第一次听到flink的时候这是我是非常怀疑的。

在大数据领域,现在已经不缺少数据处理框架了,但是没有一个框架能够完全满足不同的处理需求。

自从Apache spark出现后,貌似已经成为当今把大部分的问题解决得最好的框架了,所以我对另外一款解决类似问题的框架持有很强烈的怀疑态度。

不过因为好奇,我花费了数个星期在尝试了解flink。

一开始仔细看了flink的几个例子,感觉和spark非常类似,心理就倾向于认为flink又是一个模仿spark的框架。

但是随着了解的深入,这些API体现了一些flink的新奇的思路,这些思路还是和spark有着比较明显的区别的。

我对这些思路有些着迷了,所以花费了更多的时间在这上面。

flink中的很多思路,例如内存管理,dataset API都已经出现在spark中并且已经证明 这些思路是非常靠谱的。

所以,深入了解flink也许可以帮助我们分布式数据处理的未来之路是怎样的 在后面的文章里,我会把自己作为一个spark开发者对flink的第一感受写出来。

因为我已经在spark上干了2年多了,但是只在flink上接触了2到3周,所以必然存在一些bias,所以大家也带着怀疑和批判的角度来看这篇文章吧。

Apache Flink是什么flink是一款新的大数据处理引擎,目标是统一不同来源的数据处理。

这个目标看起来和spark和类似。

没错,flink也在尝试解决spark在解决的问题。

这两套系统都在尝试建立一个统一的平台可以运行批量,流式,交互式,图处理,机器学习等应用。

所以,flink和spark的目标差别并不大,他们最主要的区别在于实现的细节。

后面我会重点从不同的角度对比这两者。

Apache Spark vs Apache Flink1.抽象 Abstractionspark中,对于批处理我们有RDD,对于流式,我们有DStream,不过内部实际还是RDD.所以所有的数据表示本质上还是RDD抽象。

后面我会重点从不同的角度对比这两者。

在flink中,对于批处理有DataSet,对于流式我们有DataStreams。

看起来和spark类似,他们的不同点在于:一)DataSet在运行时是表现为运行计划(runtime plans)的在spark中,RDD在运行时是表现为java objects的。

通过引入Tungsten,这块有了些许的改变。

但是在flink中是被表现为logical plan(逻辑计划)的,听起来很熟悉

没错,就是类似于spark中的dataframes。

所以在flink中你使用的类Dataframe api是被作为第一优先级来优化的。

但是相对来说在spark RDD中就没有了这块的优化了。

flink中的Dataset,对标spark中的Dataframe,在运行前会经过优化。

在spark 1.6,dataset API已经被引入spark了,也许最终会取代RDD 抽象。

二)Dataset和DataStream是独立的API在spark中,所有不同的API,例如DStream,Dataframe都是基于RDD抽象的。

但是在flink中,Dataset和DataStream是同一个公用的引擎之上两个独立的抽象。

所以你不能把这两者的行为合并在一起操作,当然,flink社区目前在朝这个方向努力(),但是目前还不能轻易断言最后的结果。

2.内存管理 一直到1.5版本,spark都是试用java的内存管理来做数据缓存,明显很容易导致OOM或者gc。

所以从1.5开始,spark开始转向精确的控制内存的使用,这就是tungsten项目了 flink从第一天开始就坚持自己控制内存试用。

这个也是启发了spark走这条路的原因之一。

flink除了把数据存在自己管理的内存以外,还直接操作二进制数据。

在spark中,从1.5开始,所有的dataframe操作都是直接作用在tungsten的二进制数据上。

3.语言实现spark是用scala来实现的,它提供了Java,Python和R的编程接口。

flink是java实现的,当然同样提供了Scala API所以从语言的角度来看,spark要更丰富一些。

因为我已经转移到scala很久了,所以不太清楚这两者的java api实现情况。

4.APIspark和flink都在模仿scala的collection API.所以从表面看起来,两者都很类似。

下面是分别用RDD和DataSet API实现的word count\\\/\\\/ Spark wordcountobject WordCount { def main(args: Array[String]) { val env = new SparkContext(local,wordCount) val data = List(hi,how are you,hi) val dataSet = env.parallelize(data) val words = dataSet.flatMap(value => value.split(\\\\\\\\s+)) val mappedWords = words.map(value => (value,1)) val sum = mappedWords.reduceByKey(_+_) println(sum.collect()) }}\\\/\\\/ Flink wordcountobject WordCount { def main(args: Array[String]) { val env = ExecutionEnvironment.getExecutionEnvironment val data = List(hi,how are you,hi) val dataSet = env.fromCollection(data) val words = dataSet.flatMap(value => value.split(\\\\\\\\s+)) val mappedWords = words.map(value => (value,1)) val grouped = mappedWords.groupBy(0) val sum = grouped.sum(1) println(sum.collect()) }}不知道是偶然还是故意的,API都长得很像,这样很方便开发者从一个引擎切换到另外一个引擎。

我感觉以后这种Collection API会成为写data pipeline的标配。

Steamingspark把streaming看成是更快的批处理,而flink把批处理看成streaming的special case。

这里面的思路决定了各自的方向,其中两者的差异点有如下这些: 实时 vs 近实时的角度flink提供了基于每个事件的流式处理机制,所以可以被认为是一个真正的流式计算。

它非常像storm的model。

而spark,不是基于事件的粒度,而是用小批量来模拟流式,也就是多个事件的集合。

所以spark被认为是近实时的处理系统。

Spark streaming 是更快的批处理,而Flink Batch是有限数据的流式计算。

虽然大部分应用对准实时是可以接受的,但是也还是有很多应用需要event level的流式计算。

这些应用更愿意选择storm而非spark streaming,现在,flink也许是一个更好的选择。

流式计算和批处理计算的表示 spark对于批处理和流式计算,都是用的相同的抽象:RDD,这样很方便这两种计算合并起来表示。

而flink这两者分为了DataSet和DataStream,相比spark,这个设计算是一个糟糕的设计。

对 windowing 的支持 因为spark的小批量机制,spark对于windowing的支持非常有限。

只能基于process time,且只能对batches来做window。

而Flink对window的支持非常到位,且Flink对windowing API的支持是相当给力的,允许基于process time,data time,record 来做windowing。

我不太确定spark是否能引入这些API,不过到目前为止,Flink的windowing支持是要比spark好的。

Steaming这部分flink胜SQL interface目前spark-sql是spark里面最活跃的组件之一,Spark提供了类似Hive的sql和Dataframe这种DSL来查询结构化数据,API很成熟,在流式计算中使用很广,预计在流式计算中也会发展得很快。

至于flink,到目前为止,Flink Table API只支持类似DataFrame这种DSL,并且还是处于beta状态,社区有计划增加SQL 的interface,但是目前还不确定什么时候才能在框架中用上。

所以这个部分,spark胜出。

Data source IntegrationSpark的数据源 API是整个框架中最好的,支持的数据源包括NoSql db,parquet,ORC等,并且支持一些高级的操作,例如predicate push downFlink目前还依赖map\\\/reduce InputFormat来做数据源聚合。

这一场spark胜Iterative processingspark对机器学习的支持较好,因为可以在spark中利用内存cache来加速机器学习算法。

但是大部分机器学习算法其实是一个有环的数据流,但是在spark中,实际是用无环图来表示的,一般的分布式处理引擎都是不鼓励试用有环图的。

但是flink这里又有点不一样,flink支持在runtime中的有环数据流,这样表示机器学习算法更有效而且更有效率。

这一点flink胜出。

Stream as platform vs Batch as PlatformSpark诞生在Map\\\/Reduce的时代,数据都是以文件的形式保存在磁盘中,这样非常方便做容错处理。

Flink把纯流式数据计算引入大数据时代,无疑给业界带来了一股清新的空气。

这个idea非常类似akka-streams这种。

成熟度目前的确有一部分吃螃蟹的用户已经在生产环境中使用flink了,不过从我的眼光来看,Flink还在发展中,还需要时间来成熟。

结论目前Spark相比Flink是一个更为成熟的计算框架,但是Flink的很多思路很不错,Spark社区也意识到了这一点,并且逐渐在采用Flink中的好的设计思路,所以学习一下Flink能让你了解一下Streaming这方面的更迷人的思路。

WebStorm 有哪些过人之处

为解决频繁的数据插入和更新问题(这些数据的可靠性要求不高,不需要事务),赶上NoMysql的热潮,选择目前最热门的Mongodb,在测试中充分感受到mongodb安装的简单性和客户端调用API的便捷。

但在生产环境下(操作系统CentOS6.2,内存64G,CPU12核),却出现频繁的宕机,有时候一天就要宕2次,虽然设置了replicasets,却很容易挂掉2台,导致不可用。

查看mongod.log,发现每次宕机时都会打印Gotsignal:11(Segmentationfault),但从这个查找不到能够解决问题的资料。

有人认为mongodb频繁宕机大多数是因为在并发查询的压力下,因为热数据没有在内存中,被迫到文件系统读取数据,很容易出现timeout的问题,之后会造成进程锁死,经过验证,如果把查询(只有通过主键查一条记录的查询)的客户端关闭掉,宕机的概率小非常多。

查看每台mongodb的内存(通过mongodb命令控制台的db.serverStatus()看“mem”部分的“resident”),发现mongodb热数据的内存只占用不到2G,而数据文件有近200G,可能也是因为频繁的宕机,导致热数据一直未全部加载。

但还是会出现宕机,为了不需要人工重启,就在每个replica的服务器上用LinuxShell脚本写了一段每隔1分钟检测mongodb进程死掉自动重启的进程,虽然能够解决mongodb一直在运行的状态,但发现mongodb的collections中出现很多损坏的数据,甚至出现一些自动创建的异常collections,如一个collections的名称是“jingdong”,则会出现多个“ingdong”、jing、“jingdon”之类的collections。

不得已只好把mongodb的定时检测启动脚本关闭掉,顺着这个现象找问题,终于在mongodb官网的JIRA看到有个用户反馈的现象跟我们完全一致,最后他解决的方法是把mongodb客户端的java驱动jar包由2.9.1回退至2.8.0,我们也按照这样处理后,果然不会再出现crash问题。

有没有 mac 系统可用的研发管理软件

为解决频繁的数据插入和更新问题(这些数据的可靠性要求不高,不需要事务),赶上NoMysql的热潮,选择目前最热门的Mongodb,在测试中充分感受到mongodb安装的简单性和客户端调用API的便捷。

但在生产环境下(操作系统CentOS 6.2,内存64G,CPU 12核),却出现频繁的宕机,有时候一天就要宕2次,虽然设置了replica sets,却很容易挂掉2台,导致不可用。

查看mongod.log,发现每次宕机时都会打印Got signal: 11 (Segmentation fault),但从这个查找不到能够解决问题的资料。

有人认为mongodb频繁宕机大多数是因为在并发查询的压力下,因为热数据没有在内存中,被迫到文件系统读取数据,很容易出现timeout的问题,之后会造成进程锁死,经过验证,如果把查询(只有通过主键查一条记录的查询)的客户端关闭掉,宕机的概率小非常多。

查看每台mongodb的内存(通过mongodb命令控制台的db.serverStatus()看“mem”部分的“resident”),发现mongodb热数据的内存只占用不到2G,而数据文件有近200G,可能也是因为频繁的宕机,导致热数据一直未全部加载。

但还是会出现宕机,为了不需要人工重启,就在每个replica的服务器上用Linux Shell脚本写了一段每隔1分钟检测mongodb进程死掉自动重启的进程,虽然能够解决mongodb一直在运行的状态,但发现mongodb的collections中出现很多损坏的数据,甚至出现一些自动创建的异常collections,如一个collections的名称是“jingdong”,则会出现多个“ingdong”、jing、“jingdon”之类的collections。

不得已只好把mongodb的定时检测启动脚本关闭掉,顺着这个现象找问题,终于在mongodb官网的JIRA看到有个用户反馈的现象跟我们完全一致,最后他解决的方法是把mongodb客户端的java驱动jar包由2.9.1回退至2.8.0,我们也按照这样处理后,果然不会再出现crash问题。

声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。联系xxxxxxxx.com

Copyright©2020 一句话经典语录 www.yiyyy.com 版权所有

友情链接

心理测试 图片大全 壁纸图片