Bigdan的博客

  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

PMP:每日一题-5

发表于 2019-07-17 | 更新于 2019-07-18 | 分类于 PMP , 每日一题
本文字数: 1.1k | 阅读时长 ≈ 1 分钟

2019.7.16每日一题:

A new mobile application is in the integration testing phase. To maintain competitiveadvantage in an aggressive market, the product manager requests the inclusion of a new feature.The project manager disagrees with this. What should the project manager do?
A. Immediately implement the new feature to minimize schedule impact.
B. Refuse to implement the feature to minimize time-to-market impact.
C. Prepare and submit a change request to the change control board (CCB).
D. Review the request and obtain project sponsor approval.

一个新的移动应用程序正处于集成测试阶段。为了在激进的市场中保持竞争优势,产品经理要求包含一项新功能。项目经理不同意。项目经理应该怎么做?
A.立即实施新功能,尽可能减少进度影响。
B.拒绝实施该功能,尽可能减少对投入市场时间的影响。
C.准备并向变更控制委员会(CCB)提交一份变更请求。
D.审查请求并获得项目发起人的批准。

答案:C。解析:无论项目经理自身是否同意变更,都需要通过正式的变更控制流程来处理,范围基准变更通常由CCB来决定,项目经理通常是CCB的成员之一。

PMP:项目生命周期

发表于 2019-07-17 | 分类于 PMP , 知识点
本文字数: 1.4k | 阅读时长 ≈ 1 分钟

项目的生命周期:

项目的生命周期指的是从启动到收尾的一系列的阶段。把一个项目划分为若干个阶段来进行管理,可以是2阶段、3阶段、4阶段或者是多个阶段。每一个阶段都是一个子项目,因为每一个阶段都有开始有结束,它具有项目的临时性。
PMBOK有一个通用的项目生命周期划分:启动项目阶段、组织与准备阶段、执行项目工作阶段和结束项目阶段。每一个阶段都以重要的可交付成果的移交作为阶段结束的时间点。比如说章程交付了我们就认为启动阶项目段结束;项目管理计划交付了,组织与准备阶段结束;验收的可交付成果移交了执行项目工作阶段结束;存档的项目文件交付了那么结束项目阶段结束了。
若干阶段之间有两种关系:顺序关系和交叠关系。顺序关系,前一个阶段完全结束了后一个阶段才能开始;交叠关系,前一个阶段的工作还没有完全结束,后一个阶段的工作就开始了,多个阶段的工作并行执行,同时开展,这增加了项目的风险,增加了项目返工的机会。

当项目进度落后,倾向于选择交叠关系,虽然交叠关系会增加项目风险和返工的机会,但由于是多个活动同时执行,并行开展,它更容易缩短项目的时间,缩短项目的总工期。


单选题:

一个新公司体系在多个部门分不同阶段实施。第一阶段按时按预算实施。团队存档所有相关项目文件,召开经验教训会议,组织团队里程碑活动,然后进入下一个项目阶段。在进入下一个阶段之前,团队还应该完成哪一项工作?
A.召开一次阶段退出审查
B.收集相关项目干系人的反馈
C.评估供应商绩效
D.演示最终产品

【解析:收尾过程组需要进行项目后评价或者阶段结束评价。阶段的结束以作为阶段性可交付成果的工作产品的转移或移交为标志。阶段结束点是重新评估项目活动,并变更或终止项目(如果必要)的一个当然时点。这个时点可称为阶段关口、里程碑、阶段审查、阶段门或关键决策点。在很多情况下,阶段收尾需要得到某种形式的批准,阶段才算结束。】

由于产品技术规格不完整且不断发生变化,一个创新项目失败了,为确保项目成功交付,本应在哪一个阶段澄清项目生命周期?
A.启动阶段
B.执行阶段
C.监控阶段
D.规划阶段

【解析:由项目管理团队确定各个项目最合适的生命周期。项目生命周期需要足够灵活,能够应对项目包含的各种因素,在项目启动阶段就需要确定生命周期。】

PMP:每日一题-4

发表于 2019-07-15 | 分类于 PMP , 每日一题
本文字数: 1k | 阅读时长 ≈ 1 分钟

2019.7.15每日一题: 答案 C

You are a project manager of a company and your project is currently in execution phase.The customer has requested you for additional work. This work will affect the budget, but not the schedule of the project. What should you do next?
A. Add the additional requirements to the project plan.
B. Ignore the request.
C. Explain the change procedure and ask to submit a request for change.
D. Discuss with the project team about the change.

你是公司的项目经理,你的项目目前处于执行阶段。客户已要求你进行其他工作。这项工作将影响预算,但不会影响项目的进度。接下来你应该做什么?
A.将额外要求添加到项目计划中。
B.忽略请求。
C.解释变更程序并要求提交变更请求。
D.与项目团队讨论变更。

【解析:客户提出的其他工作会影响预算,虽然不会影响进度,也要通过变更流程来采取对应措施,因此解释变更程序并要求提交变更请求是最佳选择。】

PMP:每日一题-3

发表于 2019-07-12 | 更新于 2019-07-15 | 分类于 PMP , 每日一题
本文字数: 906 | 阅读时长 ≈ 1 分钟

2019.7.12每日一题: 答案D

During project implementation, the project manager discovers that a team member has usedopen source software. This is a violation of company regulations and will seriously affect theproject’s release.What should the project manager do?
A. Execute the risk management plan.
B. Remove the team member.
C. Log the risk in the risk register.
D. Submit a change request to delete the open source software.

项目经理在项目执行过程中发现团队成员违规使用开源软件,违反公司规章并且将严重影响项目的发布。这时候项目经理应该如何处理?
A.执行风险管理计划。
B.开除该成员。
C.在风险登记册中记录该风险。
D.提交变更请求,删除使用的开源软件。

【解析:纠正措施属于变更,需要提交变更请求。】

PMP:项目集与项目组合

发表于 2019-07-12 | 分类于 PMP , 知识点
本文字数: 771 | 阅读时长 ≈ 1 分钟

项目已经完成,且已经获得项目可交付成果的最终验收。项目经理这时意识到,由于与另一个正在进行中的项目存在冲突,可交付成果的所有权无法移交运营。项目经理应该怎么做?

A.与干系人开会

B.通知项目集经理

C.将问题上报给项目组合经理

D.项目收尾

【解析:本项目可交付成果由于与其他项目产生冲突,无法移交给运营,这会妨碍本项目收尾。而其他项目不是本项目经理所能解决,必须升级处理,应该将问题上报给项目组合经理。项目组合管理,管理项目的优先级】


公司里面有A、B、C三个项目。这些项目根据公司的目标,按照一套相同的标准化分优先顺序。项目B的优先级较高,因为它将会扩大公司的市场份额,减少对不可靠供应商的依赖性。这是在执行什么活动?

A.项目组合管理

B.项目集管理

C.项目管理

D.份额管理

【解析:题干说:关注资源的优先分配、减少依赖性。这是关键词】

PMP:每日一题-2

发表于 2019-07-11 | 更新于 2019-07-12 | 分类于 PMP , 每日一题
本文字数: 1.3k | 阅读时长 ≈ 1 分钟

2019.7.11每日一题:答案A

You are in charge of managing a software development project which is related to simulations for driving racing cars.In one of your team meetings - it has been reported that a lot of issues have been reported in the air tunnel modelling module.On deeper analysis - it is found that many of the issues could have been prevented had a simple code review checklist been used.You prepare a code review checklist and ensure the code is reviewed as per the checklist.This is a good example of :
A. Corrective Action
B. Preventive Action
C. Defect Repair
D. Quality Control

你负责管理与驾驶赛车模拟相关的软件开发项目。在你的一次团队会议中 - 据报道,在空气隧道建模模块中报告了很多问题。进一步分析发现只要使用简单的代码审查清单就可以避免许多问题。你准备了代码审查清单,并确保代码按照清单进行审查。这是一个很好的示例:
A.纠正措施
B.预防性行动
C.缺陷修复
D.质量控制

解析:这个问题是为了测试你对纠正措施和预防措施之间的区别的理解。缺陷修复适用于当前交付中发现的问题,这也不是关于质量控制。所以使我们只有两种选择 :纠正或预防措施。而预防措施之前不会出现不符合。预防措施总是采取积极主动,在所述问题没有任何示范采取积极措施,因此这不是预防措施的一个例子。所以正确的答案是选项A纠正措施。参考PMBOK96。

PMP:工作授权系统

发表于 2019-07-10 | 更新于 2019-07-12 | 分类于 PMP , 知识点
本文字数: 1.4k | 阅读时长 ≈ 1 分钟

工作授权系统(Work Authorization System)

2019.7.10每日一题:答案A

What is the BEST use of a Work Authorization System ?

A. It manages the timing and sequence of when activities need to be performed

B. It manages who performs the activity

C. It identifies the resources needed to complete activities

D. It is used for comparing actual work against the baselines

工作授权系统的最佳用途是什么?

A.它管理需要执行活动的时间和顺序

B.它管理谁来执行这项活动

C.它确定完成活动所需的资源

D.它用于比较实际工作与基线


Work Authorization System [Tool] 工作授权系统:整个项目管理系统的一个子系统。它是一系列正式书面程序的集合,规定如何授权(委托)项目工作,以保证该工作由正确的组织、在正确的时间、以正确的顺序执行。工作授权系统包括发布工作授权所需的步骤、文件、跟踪系统以及审批层次。

在老版的PMBOK中,这是作为项目计划实施的工具与技术出现的:

工作授权系统:为确保工作按规定时间与顺序进行而采取的一套项目工作正式审批程序。其主要机制通常是对一项具体活动或者一组工作的书面动工核准书。

工作授权系统的设计应当在提供控制的价值和为其所付出的代价两者之间权衡利弊。例如,对许多较小型项目而言,口头核准一般就已经足够了。

线程池中线程都执行完毕再执行后续操作

发表于 2019-06-15 | 分类于 语言 , Java , 多线程
本文字数: 7.6k | 阅读时长 ≈ 7 分钟

问题

在AsteriaGraph上查询MayKnow节点时,为了提高查询性能,我们决定使用线程池启动多个查询线程来提高查询效率。我们使用固定大小的线程池,每个线程在查询过程中会将查询结果存放到一个公共的结构中,核心代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
/*
*使用固定大小的线程池启动多个查询线程计算查询结果
*/
private static void createResultMap(int poolSize, Set<String> midNodeSet,
ConcurrentHashMap<String, Bag> concurrentMap, AsteriaGraphClient graphClient, String startNodeValue,
RelationCondition.RelationConditionBuilder builder)
throws AsteriaGraphException {
//固定数量的线程池
ExecutorService pool = Executors.newFixedThreadPool(poolSize);
RelationshipIterator rels = null;
for (String midNode : midNodeSet) {//遍历每一个中间节点,对每一个中间节点启动一个查询线程
//获取到每个中间节点的所有符合builder配置的直连边的遍历器
rels =
Utils.getDirectedRelsIterator(graphClient, Utils.getNode(graphClient, Constant.UID, midNode), builder);
//启动一个查询线程
pool.execute(new TraversalThread(rels, midNode, startNodeValue, concurrentMap, midNodeSet));
}
//关闭线程池
pool.shutdownNow();
}

在实际环境经过多次验证,我们发现有个现象:每次返回的结果数量可能不一致!再定位到代码,我们觉得问题的原因应该是这样的:在所有查询线程还未全部执行完毕时就输出了查询结果。

解决方法

解决问题的方法就是需要保证在代码pool.shutdownNow()执行之后保证所有线程池内的所有线程都执行完毕才执行后续的代码。

查阅资料后发现有两种解决思路:

①闭锁(CountDownLatch);

②线程池自身的方法(awaitTermination)来判断所有线程是否执行完毕。

因为①的效率不是很好,我们这里着重讲解方法②。

awaitTermination方法:
awaitTermination(long timeOut,TimeUnit unit)方法有两个参数,一个是timeout(超时时间),另一个是unit(时间单位)。调用该方法后,当前线程阻塞,直到
1、等所有已提交的任务(包括正在跑的和队列中等待的)执行完毕
2、或者到达超时时间
3、或者线程被中断,抛出InterruptedException

然后返回true(shutdown请求后所有任务执行完毕)或者false(已超时)。

修改后的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
private static void createResultMap(int poolSize, Set<String> midNodeSet,
ConcurrentHashMap<String, Bag> concurrentMap, AsteriaGraphClient graphClient, String startNodeValue,
RelationCondition.RelationConditionBuilder builder)
throws AsteriaGraphException {
//固定数量的线程池
ExecutorService pool = Executors.newFixedThreadPool(poolSize);
RelationshipIterator rels = null;
for (String midNode : midNodeSet) {//遍历每一个中间节点,对每一个中间节点启动一个查询线程
//获取到每个中间节点的所有符合builder配置的直连边的遍历器
rels =
Utils.getDirectedRelsIterator(graphClient, Utils.getNode(graphClient, Constant.UID, midNode), builder);
//启动一个查询线程
pool.execute(new TraversalThread(rels, midNode, startNodeValue, concurrentMap, midNodeSet));
}
//关闭线程池
pool.shutdownNow();
try {
if(!pool.awaitTermination(1, TimeUnit.MINUTES)){//因为我们对于查询时间的要求是秒级的,所以这里的超时时间设置为1分钟
logger.error("查询超时!");
}
} catch (InterruptedException e) {
logger.error("Exception Happened during finding mayknow nodes!",e);
}
}

mapreduce.job.user.classpath.first

发表于 2019-06-11 | 分类于 大数据 , hadoop
本文字数: 2k | 阅读时长 ≈ 2 分钟

一、问题描述

在一个MR中使用到了guava中的Range类用于合并不同数据中的vtime字段(时间区间)。在运行该MR时,将其打包成可执行jar包,使用hadoop jar XXX.jar方式运行。

可是,运行中段报错了,错误内容是:

1
2
Error:com.google.common.collect.Range.closed(Ljava/lang/Comparable;Ljava/lang/Comparable;)
Lcom/google/common/collect/Range;

二、解决方法

网上查找资料后,定位到问题的原因:MR运行时会从hadoop集群的CLASSPATH下寻找依赖的jar包,可是hadoop集群的CLASSPATH下没有guava包,而guava包在我打的可执行jar包中。

解决上面问题的方法是在mapred-site.xml文件中加入下列配置项:

1
2
3
4
<property>
<name>mapreduce.job.user.classpath.first</name>
<value>true</value>
</property>

该配置项设置后,hadoop集群在运行MR时会优先找用户的CLASSPATH。

在修改完mapred-site.xm文件后需要重启ResourceManager才能生效。

map未完全运行结束就启动reduce的异常与解决方法

发表于 2019-06-10 | 分类于 大数据 , hadoop
本文字数: 1.5k | 阅读时长 ≈ 1 分钟

今日运行噪音过滤MR,反复几次,map运行至99.8%reduce运行至16%时,程序僵死,持续2个多小时,忍无可忍,kill之。截图如下:

exception

遂发sos与“科学家”,小论之,迎刃而解。解法:进配置文件,添加参数“mapreduce.job.reduce.slowstart.completedmaps”。参数细节请客官观之:

1
2
3
4
<property>
<name>mapreduce.job.reduce.slowstart.completedmaps</name>
<value>1.0</value>
</property>

释义:map100%运行完后才启动reduce。

done

(2017-03-09)

1…111213…15
Bigdan

Bigdan

理想三旬
142 日志
35 分类
54 标签
© 2019 Bigdan | 120k | 1:49
由 Hexo 强力驱动 v3.8.0
|
主题 – NexT.Gemini v7.1.0