Spark计算引擎介绍
1. Spark是什么Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。Spark是加州大学伯克利分校的AMP实验室(Algorithms, Machines and People Lab)开源的类Hadoop MapReduce的通用并行框架,拥有Hadoop MapReduce所具有的优点,但不同于MapReduce的是Job(工作)中间输出的结果可以保存在内存中,从而不
Hive数据存储简介
Hive数据仓库和传统关系型数据库是不一样的,Hive数据仓库建立在Hadoop集群的HDFS之上。也就是说,Hive数据仓库中的数据是保存在HDFS上的。Hive数据仓库可以通过ETL的形式来抽取、转换和加载数据。Hive提供了类似SQL的查询语句HQL,可以用“select * from表名;”来查询到Hive数据仓库中的数据,这与关系型数据库的操作是一样的。下面看看Hive的数据存储格式。首
Hive的安装与配置
由于Hive是运行在Hadoop下的数据仓库,所以必须在已经安装好Hadoop的环境下运行Hive,且要正确配置HADOOP_HOME环境变量。本书讲解的Hive运行在2.2.2小节搭建的Hadoop伪分布式环境的基础上,我们可以利用CentOS7-201虚拟机(如图2-35所示)进行Hive的安装与配置。(1)下载、安装和配置HiveHive官网:http://hive.apache.org/安
配置MySQL保存Hive元数据
Hive默认使用自带(内嵌)的Derby进行元数据存储,这个就意味着无法实现多个hive shell并发连接Hive。如果需要支持多用户登录Hive,必须配置一个独立的数据库。上一节我们已经将MySQL数据库安装到Linux上,本节我们将讲解一下配置MySQL保存Hive元数据的步骤。(1)修改hive-site.xml文件我们继续以MySQL为例,首先需要在文件hive-site.xml中配置M
Hive和Hadoop关系
Hive和Hadoop关系 Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以查询和分析存储在Hadoop中的大规模数据的机制。Hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。关于Hive的描述可以归结为这么几点来理解:l Hive是工具。l
PyQt重绘事件处理函数paintEvent
PyQt中的重绘和Windows编程中的重绘差不多,但是Qt的重绘更有特色,更加智能。基础部件类QWidget提供的paintEvent函数是一个纯虚函数,继承它的子类想用它,就必须重新实现它。下列4种情况会发生重绘事件:(1)当窗口部件第一次显示时,系统会自动产生一个绘图事件。(2)repaint()与update()函数被调用时。(3)当窗口部件被其他部件遮挡,然后又再次显示出来时,就会对隐藏
《PyQt 5从入门到精通》简介
本书既是介绍PyQt5的快速入门书籍,也是介绍PyQt5实战应用的书籍。本书学习曲线平缓,除了适合初学者之外,其内容详细和广泛的特点又使得其非常适合做软件工程师们的案头查询手册,大大节省了繁忙的工程师去查阅和筛选信息的时间,做到“一本在手,PyQt我有”。本书配套示例源码。本书共分11章,从最基本的PyQt5环境搭建开始,不但有PyQt5窗口设计基础、PyQt5常用控件、菜单、工具栏和状态栏、对话
基于LeNet-5的手写数字识别实战
图像识别是计算机视觉最常用的任务之一,几乎所有的有关图像识别的教程都会将MNIST数据集作为入门数据集,因为MNIST数据集是图像识别问题中难度最小、特征差异较为明显的数据集,非常适合作为图像识别入门者的学习案例。本案例使用MNIST数据集,基于LeNet-5网络实现手写数字的识别任务。本节中的所有代码在Ubuntu 20.04+Python 3.8.10+TensorFlow 2.9.1+Ker
基于Keras-YOLO实现目标检测
Keras-YOLO 3项目使用Python语言实现了YOLO v3网络模型,并且可以导入Darknet网络预先训练好的权重文件信息直接使用网络进行目标识别。1. 下载Keras-YOLO 3项目执行如下命令下载Keras-YOLO 3项目代码:git clone https://github.com/qqwweee/keras-yolo3.git2. 转换Darknet的weights文件格式为
自然语言处理技术简介
长期以来,研究人员进行自然语言处理研究主要依赖各种机器学习模型,以及手工设计的特征,但这样做带来的隐患是由于语言信息被稀疏表征表示,会出现维度诅咒之类的问题。而随着近年来词嵌入(低维、分布式表征)的普及和成功,和传统机器学习模型(如SVM、Logistic回归)相比,基于神经网络的模型在各种语言相关任务上取得了优异的成果。下面简要介绍几种基于神经网络方法的自然语言处理技术。1. 神经语言模型(20
《Java Web开发从0到1》
《Java Web开发从0到1》,新书已出版,定价139元。本书详解JSP、JavaBean、Servlet、JDBC、EL、JSTL、Ajax、SSM框架、Spring IoC、Spring AOP、MyBatis、Spring MVC、SSM框架整合等技术,剖析基于SSM框架的学生信息管理系统项目开发过程。作者为资+深Java开发工程师,有十余年开发经验。 本书内容 本书分
数据仓库选择Greenplum还是SQL-on-Hadoop
Greenplum和Hadoop都是为了解决大数据并行计算而出现的技术,二者的相似点在于:l 分布式存储数据在多个节点上。l 采用分布式并行计算框架。l 支持向外扩展来提高整体的计算能力和存储容量。l 支持X86开放集群架构。但两种技术在数据存储和计算方法上,也存在很多显而易见的差异:l Greenplum按照关系数据库行列表方式存储数据
Greenplum数据库系统架构
Greenplum是一个纯软件的MPP数据库服务器,其系统架构专门用于管理大规模分析型数据仓库或商业智能工作负载。从技术上讲,MPP无共享架构是指具有多个节点的系统,每个节点都有自己的内存、操作系统和磁盘,它们协作执行一项操作。Greenplum使用这种高性能系统架构分配PB级别的数据,并行使用系统的所有资源来处理请求。3.2.1 Greenplum与PostgreSQLGreenpl
一个简化、落地的实时数据仓库解决方案
从传统的经验来讲,数据仓库有一个很重要的功能是记录数据变化历史。通常,数据仓库都希望从业务上线的第一天开始有数据,然后一直记录到现在。但实时处理技术,又是强调当前处理状态的一门技术,所以当这两个相互对立的方案重叠在一起的时候,注定不是用来解决一个比较广泛问题的方案。于是,我们把实时数据仓库建设的目标定位为解决由于传统数据仓库数据时效性低而解决不了的问题。实时数据仓库也引入了类似于离线数据仓库的分层
什么是数据仓库
数据仓库的概念可以追溯到20世纪80年代,当时IBM的研究人员开发出了“商业数据仓库”。本质上,数据仓库试图提供一种从操作型系统到决策支持环境的数据流架构模型。数据仓库概念的提出,是为了解决与这个数据流相关的各种问题,主要是解决多重数据复制带来的高成本问题。在没有数据仓库的时代,需要大量的冗余数据来支撑多个决策支持环境。在大组织里,多个决策支持环境独立运作是典型的情况。尽管每个环境服务于不同的用户
Vue.js表单输入绑定
Vue.js表单输入绑定对于Vue来说,使用v-bind并不能解决表单域对象双向绑定的需求。所谓双向绑定,就是无论是通过input还是通过Vue对象,都能修改绑定的数据对象的值。Vue提供了v-model进行双向绑定。本章将重点讲解表单域对象的双向绑定方法和技巧。10.1 实现双向数据绑定对于数据的绑定,不管是使用插值表达式({{}})还是v-text指令,对于数据间的交互都是单向的,
Docker容器体系结构及特点
Docker容器体系结构及特点Docker是一个应用容器引擎,通过Docker,管理员可以非常方便地对容器进行管理。Docker基于Go语言开发,并且遵从Apache 2.0开源协议。Docker提供了对容器镜像的打包封装功能。利用Docker,开发者可以将他们开发的应用系统以及依赖打包起来,放到一个轻量级的、可移植的容器中,然后发布到任何的Linux或者Windows上面。这样的话,Docker
学好数据结构的秘诀
学好数据结构的秘诀作为计算机专业的一名“老兵”,笔者从事数据结构和算法的研究已经近20余年了,在学习的过程中,也会遇到一些问题,但在解决问题时,积累了一些经验,为了让读者在学习数据结构的过程中少走弯路,本节分享一些笔者在学习数据结构与算法时的一些经验,希望对读者的学习有所帮助。1. 明确数据结构的重要性,树立学好数据结构的信心数据结构是计算机科学与技术专业的核心课程,不仅仅涉及计算机硬件的研究范围
Python多线程之_thread与threading模块
Python多线程之_thread与threading模块在Python程序中,多线程的应用程序会创建一个函数,来执行需要重复执行多次的程序代码,然后创建一个线程执行该函数。一个线程是一个应用程序单元,用于在后台并行执行多个耗时的动作。在多线程的应用程序中,每一个线程的执行时间等于应用程序所花的CPU时间除以线程的数目。因为线程彼此之间会分享数据,所以在更新数据之前,必须先将程序代码锁定,如此所有
Vscode开发第一个Vue+Element Plus示例
目前,前端开发工具非常多,如Webstorm、Atom、HBuilder、Visual Studio Code、Sublime Text、Notepad++等。对于有经验的开发者来说,使用哪一款工具都可以。笔者习惯使用Visual Studio Code。 Visual Studio Code简称VScode。VScode是微软发布的一款功能完备、免费开源的现代轻量级代码编辑器,可用于编码、调试、