2.5 知识图谱
已有的知识图谱可以直观理解为知识+图谱,即用图的模型与方法对知识数据进行建模、存储与查询挖掘。知识很有用,图谱也有用,所以知识图谱肯定有用,但是大家肯定期待知识和图谱结合起来,有什么新的用处,诸如推理、纠错等强大的功能,也就是做两个减法:知识图谱-知识-图谱 所剩下的那部分功能到底有什么。我个人的看法是:还有待进一步观察。下文也针对这点展开讨论。
从搜索引擎到语义网 知识图谱起源于搜索引擎的瓶颈:对查询需求与信息的理解不足。搜索引擎体系以关键字来理解查询需求。以“老家在安徽并且在国务院工作的博士是谁?”问题为例,当下的搜索引擎的主干技术均在于对语句分词,得到关键字后通过关键字对目标网页进行召回排序并反馈。而关键字序列的信息相比原句是有不少信息损失的。 此外,搜索引擎所获取的信息也是非结构的复杂的数据,如无格式化的文本、表格等等。直接按排序提供给用户之后,用户需要另外浏览选择过滤得到目标的结果,用户可能在无关的网页中进行费时的筛选。因此以关键字理解查询需求存在不少信息损失,以网页文本集反馈用户,对用户来说其实也存在额外的信息获取成本。基于这个原因,WWW联盟的Tim Berners-Lee在1998年提出了语义网的概念。
-
Sparkcontext的作用:一是分发task,申请资源等功能外,更重要的一个功能是将RDD拆分成task,即绘制DAG图。
借用上图我们再来了解一下spark的运算过程:
-
构建Spark Application的运行环境,启动SparkContext;
-
SparkContext向资源管理器(可以是Standalone,Mesos,Yarn)申请运行Executor资源,并启动StandaloneExecutorbackend;
-
Executor向SparkContext申请Task;
-
SparkContext将应用程序分发给Executor;
-
SparkContext构建成DAG图,将DAG图分解成Stage、将Taskset发送给Task Scheduler,最后由Task Scheduler将Task发送给Executor运行;
-
Task在Executor上运行,运行完释放所有资源;
RDD计算案例
我们用一个案例来分析RDD的计算过程:
节点介绍:
-
Cluster Manager:在standalone模式中即为Master主节点,控制整个集群,监控worker。在YARN模式中为资源管理器负责分配资源,有点像YARN中ResourceManager那个角色,大管家握有所有的干活的资源,属于乙方的总包。
-
WorkerNode:可以干活的节点,听大管家ClusterManager差遣,是真正有资源干活的主。从节点,负责控制计算节点,启动Executor或者Driver。
-
Executor:在WorkerNode上起的一个进程,相当于一个包工头,负责准备Task环境和执行。
-
Task:负责内存和磁盘的使用。Task是施工项目里的每一个具体的任务。
-
Driver:统管Task的产生与发送给Executor的,运行Application 的main()函数,是甲方的司令员。
-
SparkContext:与ClusterManager打交道的,负责给钱申请资源的,是甲方的接口人。
整个互动流程是这样的:
-
甲方来了个项目,创建了SparkContext,SparkContext去找ClusterManager申请资源同时给出报价,需要多少CPU和内存等资源。ClusterManager去找WorkerNode并启动Excutor,并介绍Excutor给Driver认识;
-
Driver根据施工图拆分一批批的Task,将Task送给Executor去执行;
-
Executor接收到Task后准备Task运行时依赖并执行,并将执行结果返回给Driver;
-
Driver会根据返回回来的Task状态不断的指挥下一步工作,直到所有Task执行结束;
运行流程及特点为:

(编辑:柳州站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|