大数据hadooppighiveMahouthbase菜菜920

Pig最早是雅虎公司的一个基于Hadoop的并行处理架构,后来Yahoo将Pig捐献给Apache的一个项目,由Apache来负责维护,Pig是一个基于Hadoop的大规模数据分析平台。

Pig为复杂的海量数据并行计算提供了一个简易的操作和编程接口,这一点和FaceBook开源的Hive一样简洁,清晰,易上手!

Pig包括两部分

1:用于描述数据流的语言,称为PigLatin(拉丁猪,个人翻译)

2:用于运行PigLatin程序的执行环境。一个是本地的单JVM执行环境,一个就是在hadoop集群上的分布式执行环境。

作用:

雅虎公司主要使用Pig:

优势与不足

MapReducer能够让我们自己定义连续执行的map和reduce函数,但是数据处理往往需要很多的MapReducer过程才能实现,所以将数据处理要求改写成MapReducer模式是很复杂的。和MapReducer相比,Pig提供了更加丰富的数据结构,一般都是多值和嵌套的数据结构。Pig还提供了一套更强大的数据交换操作,包括了MapReducer中被忽视的"join"操作

使用Pig来操作hadoop处理海量数据,是非常简单的,如果没有Pig,我们就得手写MapReduce代码,这可是一件非常繁琐的事,因为MapReduce的任务职责非常明确,清洗数据得一个job,处理得一个job,过滤得一个job,统计得一个job,排序得一个job,每次只要改动很小的一个地方,就得重新编译整个job,然后打成jar提交到Hadoop集群上运行,是非常繁琐的,调试还很困难。

但是,Pig并不适合处理所有的“数据处理”任务。和MapReducer一样,它是为数据批处理而设计的,如果想执行的查询只涉及一个大型数据集的一小部分数据,Pig的实现不是很好,因为它要扫描整个数据集或其中的很大一部分。

Pig有两种运行模式:

1、local模式:Pig运行local模式,只涉及单独一台计算的

2、mapReduce模式:需要可以访问一个hadoop集群,并且需要装上HDFS

Pig的调用方式:

gruntshell方式:通过交互方式,输入命令执行任务

Pigscript方式:通过script脚本方式来运行任务

嵌入式方式:嵌入java源码中,通过java调用运行任务

Pig工作原理:

ApachePIG提供一套高级语言平台,用于对结构化与非结构化数据集进行操作与分析。这种语言被称为PigLatin,其属于一种脚本形式,可直接立足于PIGshell执行或者通过PigServer进行触发。用户所创建的脚本会在初始阶段由PigLatin处理引擎进行语义有效性解析,而后被转换为包含整体执行初始逻辑的定向非循环图(简称DAG)。

为了理解这一优化机制的原理,我们假定用户编写了一套脚本,该脚本对两套数据集进行一项连接操作,而后是一条过滤标准。PIG优化器能够验证过滤操作是否能够在连接之前进行,从而保证连接负载最小化。如果可以,则其将据此进行逻辑规划设计。如此一来,用户即可专注于最终结果,而非将精力分散在性能保障身上。

只有在经过完全优化的逻辑规划准备就绪之后,编译才会生效。其负责生成物理规划,即为最终驻留于HDFS中的数据分配与之交互的执行引擎。

某网站访问日志,请大家使用pig计算出每个ip的点击次数

//加载HDFS中访问日志,使用空格进行分割,只加载ip列records=LOAD'hdfs://hadoop:9000/class7/input/website_log.txt'USINGPigStorage('')AS(ip:chararray);

//按照ip进行分组,统计每个ip点击数records_b=GROUPrecordsBYip;records_c=FOREACHrecords_bGENERATEgroup,COUNT(records)ASclick;

//按照点击数排序,保留点击数前10个的ip数据records_d=ORDERrecords_cbyclickDESC;top10=LIMITrecords_d10;

//把生成的数据保存到HDFS的class7目录中STOREtop10INTO'hdfs://hadoop:9000/class7/out';

尽管ApachePig性能优异,但是它要求程序员要掌握SQL之外的知识。Hive和SQL非常相似,虽然Hive查询语言(HQL)有一定的局限性,但它仍然是非常好用的。Hive为MapReduce提供了很好的开源实现。它在分布式处理数据方面表现很好,不像SQL需要严格遵守模式。

hive工作原理:

服务端组件:

客户端组件:

Tipsmysql首次安装修改密码

sudomysqld_safe--skip-grant-tables&sudoservicemysqlstatus

mysql-urootmysql>usemysql;

mysql>updateusersetpassword=password('root')whereuser='root';

mysql>flushprivileges;

mysql>quit;

sudoservicemysqlrestart

sudoservicemysqlstatus

#创建hive用户,若已经存在则无需再创建mysql>createuser'hive'identifiedby'hive';

#赋予权限mysql>grantallon*.*TO'hive'@'%'identifiedby'hive'withgrantoption;mysql>grantallon*.*TO'hive'@'localhost'identifiedby'hive'withgrantoption;

启动:hive

hive之前需要启动metastore和hiveserver服务

hive--servicemetastore&

hive--servicehiveserver&

总结

Hive更适合于数据仓库的任务,Hive主要用于静态的结构以及需要经常分析的工作。Hive与SQL相似促使其成为Hadoop与其他BI工具结合的理想交集。而且很多企业都需要对历史数据进行分析,Hive就是一款分析历史数据的利器。但是Hive只有在结构化数据的情况下才能大显神威。Hive的软肋是实时分析,如果想要进行实时分析,可以采用HBase。

Pig赋予开发人员在大数据集领域更多的灵活性,并允许开发简洁的脚本用于转换数据流以便嵌入到较大的应用程序。并且ApachePig适用于非结构化的数据集,可以充分利用SQL。Pig无需构建MapReduce任务,如果你有SQL学习的背景,那么入门会非常快。

ApacheMahout是ApacheSoftwareFoundation(ASF)旗下的一个开源项目,提供了一些经典的机器学习的算法,皆在帮助开发人员更加方便快捷地创建智能应用程序。目前已经有了三个公共发型版本,通过ApacheMahout库,Mahout可以有效地扩展到云中。Mahout包括许多实现,包括聚类、分类、推荐引擎、频繁子项挖掘。

ApacheMahout的主要目标是建立可伸缩的机器学习算法。这种可伸缩性是针对大规模的数据集而言的。ApacheMahout的算法运行在ApacheHadoop平台下,他通过Mapreduce模式实现。但是,ApacheMahout并非严格要求算法的实现基于Hadoop平台,单个节点或非Hadoop平台也可以。ApacheMahout核心库的非分布式算法也具有良好的性能。

mahout主要包含以下5部分

频繁挖掘模式:挖掘数据中频繁出现的项集。

分类:利用已经存在的分类文档训练分类器,对未分类的文档进行分类。

推荐引擎(协同过滤):获得用户的行为并从中发现用户可能喜欢的事物。

频繁子项挖掘:利用一个项集(查询记录或购物记录)去识别经常一起出现的项目。

主要算法:

算法类

算法名

中文名

分类算法

LogisticRegression

逻辑回归

Bayesian

贝叶斯

SVM

支持向量机

Perceptron

感知器算法

NeuralNetwork

神经网络

RandomForests

随机森林

RestrictedBoltzmannMachines

有限波尔兹曼机

聚类算法

CanopyClustering

Canopy聚类

K-meansClustering

K均值算法

FuzzyK-means

模糊K均值

ExpectationMaximization

EM聚类(期望最大化聚类)

MeanShiftClustering

均值漂移聚类

HierarchicalClustering

层次聚类

DirichletProcessClustering

狄里克雷过程聚类

LatentDirichletAllocation

LDA聚类

SpectralClustering

谱聚类

关联规则挖掘

ParallelFPGrowthAlgorithm

并行FPGrowth算法

回归

LocallyWeightedLinearRegression

局部加权线性回归

降维/维约简

SingularValueDecomposition

奇异值分解

PrincipalComponentsAnalysis

主成分分析

IndependentComponentAnalysis

独立成分分析

GaussianDiscriminativeAnalysis

高斯判别分析

进化算法

并行化了Watchmaker框架

推荐/协同过滤

Non-distributedrecommenders

Taste(UserCF,ItemCF,SlopeOne)

DistributedRecommenders

ItemCF

向量相似度计算

RowSimilarityJob

计算列间相似度

VectorDistanceJob

计算向量间距离

非Map-Reduce算法

HiddenMarkovModels

隐马尔科夫模型

集合方法扩展

Collections

扩展了java的Collections类

HBase-HadoopDatabase,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PCServer上搭建起大规模结构化存储集群。

HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。

HBase是GoogleBigTable的开源实现,类似GoogleBigTable利用GFS作为其文件存储系统,HBase利用HadoopHDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用HadoopMapReduce来处理HBase中的海量数据;GoogleBigtable利用Chubby作为协同服务,HBase利用Zookeeper作为对应

优势:

>写入性能高,且几乎可以无限扩展。

>海量数据下(100TB级别表)的查询依然能保持在5ms级别。

>存储容量大,不需要做分库分表,切勿维护简单。

>表的列可以灵活配置,1行可以有多个非固定的列。

劣势:

>查询便利性上缺少支持sql语句。

>无索引,查询必须按照RowKey严格查询,不带RowKey的filter性能较低。

>对于查询会有一些毛刺,特别是在compact时,平均查询延迟在2~3ms,但是毛刺时会升高到几十到100多毫秒。

上图描述了HadoopEcoSystem中的各层系统,其中HBase位于结构化存储层,HadoopHDFS为HBase提供了高可靠性的底层存储支持,HadoopMapReduce为HBase提供了高性能的计算能力,Zookeeper为HBase提供了稳定服务和failover机制。

此外,Pig和Hive还为HBase提供了高层语言支持,使得在HBase上进行数据统计处理变的非常简单。Sqoop则为HBase提供了方便的RDBMS数据导入功能,使得传统数据库数据向HBase中迁移变的非常方便

THE END
1.我的最佳办公搭子——小浣熊,助力高效分析项目进度后来了解到小浣熊办公助手,它可以提高效率,自动化处理流程,支持更复杂的分析,并能处理更大规模的数据集,并且提供了强大的数据清洗、分析、可视化功能,能提升数据分析的准确性和可重复性。 本文以项目经理的角度,来分析项目人员的开发情况,确保任务完成进度。 https://blog.51cto.com/u_15885506/12852207
2.可怕的错误持续了八年,但是作者早就退出了科学界我们的马拉松授课专注于表达量矩阵的数据处理技巧传授,包括表达量芯片,转录组 测序, 单细胞转录组,都是一脉相承的。 每个知识点都有对应的练习题安排给学员来考验大家是否掌握差异分析和富集分析的精髓,其中表达量芯片环节大家完成作业还是比较积极的,后面的转录组和单细胞转录组测序数据分析就开始有人掉队了,毕竟生物https://cloud.tencent.com/developer/article/2479271
3.fastgraphrag探索(4)我把模型服务干崩了!“insert代码看完之后,我们代码跑起来先。”小胖坐在他那有些凌乱但舒适的办公桌前,自言自语道。今天,他要处理从某财整理的一些研报数据,用来测试模型效果。这些数据集将帮助他验证最近修改的模型参数是否有效。 ? ? 按照官方example中的指导,小胖精心调整了模型的相关参数,编写了一段代码,通过for循环逐一写入https://www.lllyyb.com/archives/i1dxtN12
4.一文了解Trimmomatic及使用方法Trimmomatic是一个处理高通量测序数据常用的工具,尤其是对于 Illumina 测序数据。它提供了包括去除接头序列(adapter trimming)、质量过滤(quality filtering)、去除低质量序列(trimming low-quality bases)等在内的功能,以帮助提高序列数据的质量和可靠性。值得一提的是,虽然刊载Trimmomatic的杂志<Bioinformatics>影响因子只有https://www.bilibili.com/opus/1012119527359512576
5.震惊!不会代码也可以实现机器学习一键自动化分析?帮助临床研究者跨越临床研究设计和数据分析的鸿沟,让天下没有难发的SCI。做以“研究设计和数据分析思路为导向的临床研究”,最大程度挖掘临床数据价值,将临床经验转换为医学证据,为临床研究者提供“以临床科学家为核心的临床研究一体化解决方案”,实现从“https://mp.weixin.qq.com/s?__biz=MzI2OTQyMzc5MA==&mid=2247522082&idx=2&sn=545ec48e0d235bec10435c25b1affefa&chksm=eb030150f7b218aee6225982019afdc9db2e2abdf30a6efcdc14cff231e1277d116cae44d367&scene=27
6.不懂这25个名词,好意思说你懂大数据?这个词听起来几乎就是「SQL,结构化查询语言」的反义词,SQL 是传统的关系型数据管理系统(RDBMS)必需的,但是 NOSQL 实际上指的是「不止SQL」。 NoSQL实际上指的是那些被设计来处理没有结构(或者没有「schema」,纲要)的大量数据的数据库管理系统。NoSQL 适合大数据系统,因为大规模的非结构化数据库需要 NoSQL的这种https://gxq.guiyang.gov.cn/zjgxq/zjgxqxyzs/zjgxqxyzsdsjqy/201710/t20171013_17120534.html
7.大数据处理技术详解Hadoop生态系统全面剖析OSCHINAHBase:一个开源的非关系型分布式数据库(NoSQL),它基于 HDFS,用于存储非结构化和半结构化大数据。 Hive:一个构建在 Hadoop 之上的数据仓库工具,它可以将结构化数据文件映射为一张数据库表,并提供简单的 SQL 查询功能。 Pig:一个高级过程语言,用于简化 Hadoop 上的数据处理任务。 https://my.oschina.net/emacs_8501574/blog/16536759
8.Pig大规模数据分析平台原理与代码实例讲解大数据AI人工智能在当今大数据时代,海量的结构化和非结构化数据不断产生和积累。这些数据蕴含着巨大的商业价值和洞见,但如何高效地处理和分析这些数据成为了一个巨大的挑战。Apache Pig是一个用于大规模数据分析的平台和编程框架,旨在解决这一挑战。 Pig是基于Apache Hadoop构建的,它提供了一种高级的数据流语言(Pig Latin),使开发人员https://download.csdn.net/blog/column/12507777/139729287
9.大数据开发笔记江阴雨辰互联MapReduce:它是一种并行编程模型在大型集群普通硬件可用于处理大型结构化,半结构化和非结构化数据。 HDFS:Hadoop分布式文件系统是Hadoop的框架的一部分,用于存储和处理数据集。它提供了一个容错文件系统在普通硬件上运行。 Hadoop生态系统包含了用于协助Hadoop的不同的子项目(工具)模块,如Sqoop, Pig 和 Hive。 https://www.yc00.com/news/1693587585a724437.html
10.大数据范文12篇(全文)互联网数据已超出关系型数据库的管理范畴, 电子邮件、超文本、博客、标签 (Tag) 以及图片、音视频等各种非结构化数据逐渐成为大数据的重要组成部分, 而面向结构化数据存储的关系型数据库已经不能满足数据快速访问、大规模数据分析的需求, 随之而来, 一系列新型的大数据管理技术和工具应运而生。 https://www.99xueshu.com/w/ikeyu2arcqua.html
11.Pig教程Pig教程UDF的:Pig提供了使用其他编程语言(例如Java)创建用户定义函数并将其调用或嵌入Pig脚本的功能。 处理各种数据: Apache Pig分析所有结构化和非结构化数据。它将结果存储在HDFS中。Apache Pig 与 MapReduce 下面列出的是Apache Pig和MapReduce之间的主要区别。Pighttps://www.hadoopdoc.com/pig/pig-tutorial
12.大数据处理流程通常?家最为熟知是 MySQL、Oracle 等传统的关系型数据库,它们的优点是能够快速存储结构化的数据,并?持随机访问。但?数据的数据结构通常是半结构化(如?志数据)、甚?是?结构化的(如视频、?频数据),为了解决海量半结构化和?结构化数据的存储,衍?了 Hadoop HDFS 、KFS、GFS 等分布式https://wenku.baidu.com/view/99b3bcf9d25abe23482fb4daa58da0116c171f05.html
13.平安云对象存储OBS(Object Based Storage)是基于大规模分布式、高并发存储框架的云存储服务,适用于存储大量任意大小、任意格式的非结构化数据,如视频、音频、文档、图像、网页内容等。可以广泛应用于内容存储与分发、大数据分析、数据归档与容灾备份等场景。 对象/文件(Object) https://pinganyun.com/ssr/help/general/glossary?menuItem=glossary
14.基于金山云的Hadoop大数据平台当前,数据驱动业务是推动企业业务创新,实现业务持续增长的源动力。基于Hadoop HDFS和YARN的大规模分布式存储和计算使得企业能在合理投资的前提下,实现对结构化数据和非结构化数据的离线分析和实时分析。而云计算按使用付费和弹性的特性使得企业大数据平台项目可以在更少https://www.ksyun.com/developer/article/6884.html
15.Pig和Hive的区别有哪些问答Pig和Hive是两种用于大数据处理的工具,主要用于Hadoop生态系统。它们的区别如下: Pig是一种数据流语言,类似于SQL,被用于数据处理和分析。Pig Latin是Pig的脚本语言,可以用于编写数据处理逻辑。而Hive是一种基于SQL的查询语言,允许用户以类似于SQL的方式查询和分析数据。 Pig主要用于数据流处理,可以处理非结构化和半结构https://www.yisu.com/ask/56211002.html
16.Pig编程指南像Hadoop这样的新型数据处理系统的发展促使了已经存在的工具和语言对Hadoop的移植,以及新工具(如Apache Pig)的构造。像Pig这样的工具为数据使用者提供了一种较高层次的抽象,为使用者提供了一种可以使用到Hadoop强大的处理能力和灵活性的方式,而并不需要他们用低层Java代码来编写大量的数据处理程序。 https://www.epubit.com/bookDetails?id=N31127
17.《大数据技术与应用》核心考点10.大数据采集技术概念:大数据采集技术是指通过RFID数据、传感器数据、社交网络交互数据及移动互联网数据等方式获得各种类型的结构化、半结构化,、非结构化的海量数据。 11.大数据的数据源:运营数据库、社交网络和感知设备 12.数据预处理包含的部分:数据清理、数据集成和变换及数据规约 https://www.modb.pro/db/438644
18.《数据采集与预处理》教学教案(全).doc3.数据采集的方法(1)数据采集的新方法① 系统日志采集方法② 网络数据采集方法:对非结构化数据的采集③ 其他数据采集方法(2)网页数据采集的方法互联网网页数据具有分布广等大数据的典型特点,需要有针对性地对互联网网页数据进行采集、转换、加工和存储。互联网网页数据是大数据领域的一个重要组成部分,为互联网和金融https://max.book118.com/html/2022/0713/6102233133004211.shtm