`
landyer
  • 浏览: 138728 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Apache Hive入门2

阅读更多

我的偏见:
  对于互联网公司来说提炼挖掘生产中用户产生的大量日志是个有价值的工作,在这些看似垃圾东西中蕴含着大量的商业机会和用户的需求,如果可以简单的实现当然皆大欢喜,但是面对庞大的输出日志需要去提炼的时候只好束手无则无视他的存在,就拿我们最熟悉的Log4J来说,如果是上TB的海量文本类型输出的格式根本无法查询,更谈不上数据挖掘。
   当然我们也知道存放在数据库里面当然是不错的选择,对抗海量的日志数据存储与查询坚持做下去的话最后换来的是高昂的代价,Hive借助MapReduce的计算+HDFS的海量存储的功能,对与海量的日志存储、查询,数据挖掘Hive也是个不错的选择,在功能上和总体成本上高于刚刚所说的前两者。
   但是对与存储在其他类型的NOSQL产品,Hive投入正式生产的环境我们还需要进一步的分析与比较,例如:MongoDB vs Hive,这个2个产品对于海量日志数据挖掘的性能与系统的扩展性来说谁将会比谁更胜一筹喃?因为 MongoDB 中也是支持海量级分布式存储,并且MongoDB也支持了MapReduce算法,这样我就需要为此得出一个结论,或者说我需要一个折中的方案,但不是现在。
 
   Hive 中不支持对数据的改写和添加,所有的数据都是在加载的时候中确定好的。Hive中你添加了数据就无法删除的,SQL的fans们是不是很费解?我是这样认为的就拿Google的Google Analytics分析工具为例子,在Google Analytics分析工具 会有对日志进行删除的操作吗?答案是“NO!”,也许在Hive设计的时候Facebook的工程师就认为对需要进行挖掘的数据删除是一项没有必要的工作,Hive在Facebook能成功,并且运行在上千台的节点上 或许就是Facebook工程师们明确了Hive不去做的事情,让Hive只做好那一部分事情。

以上是我对 Hive Why(为什么使用Hive)片面的观点。
 

集群中的Hive
Hive的失效转发可以设计成这样的,将元数据和存储的数据分别保存在同一个位置,如图所示:
Hive Cluster

多个Hive的物理节点连接到相同的数据库和HDFS环境,防止Hive Thrift Server单点失效(SPFO)问题。

将Hive的MetaData 存储在 MySQL中,MySQL的运行环境支持双向同步或者集群,这样至少2台数据库服务器上热备份着Hive的元数据存储,例如:
<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://192.168.1.203:3306/hive?createDatabaseIfNotExist=true</value>
</property>

多个物理Hive节点的数据内容保存在HDFS上,通过修改 hive-default.xml 配置 文件,指向NameNode节点即可,例如:
<property>
  <name>hive.metastore.warehouse.dir</name>
   <value>hdfs://serv1:9000/user/hive/warehouse</value>
   <!– <value>/user/hive/warehouse</value> –>
  <description>location of default database for the warehouse</description>
</property>


Hive 与 Log4J 

在Hive中建一张表叫user_log,里面含有4个字段,以\t划分,一行一条数据,建表的脚本如下:
CREATE TABLE USER_LOG(DateInfo STRING,LogName STRING,LogLevel STRING,MSG STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' STORED AS TEXTFILE;

在Log4J的日子输出格式中每个栏目以Tab相隔开,中间不是空格而是Tab,例如:
log4j.appender.A1.layout.ConversionPattern=%d    %-6p    %l %m  %n

输入数据文件格式如下:
Hive Cluster
 
在Hive的控制台下将Log4J输出的日志文件导入Hive中,操作结果如下,如图所示:
Hive Cluster

 

 

在建表语句中还可以加入正则表达式,的自定义功能都在contrib里面, 例如:将WEB日志先用正则表达式进行组合,再按需要的条件进行组合输入到表中
add jar ../build/contrib/hive_contrib.jar;
CREATE TABLE apachelog (
host STRING,
identity STRING,
user STRING,
time STRING,
request STRING,
status STRING,
size STRING,
referer STRING,
agent STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "([^ ]*) ([^ ]*) ([^ ]*) (-|\\[[^\\]]*\\]) ([^ \"]*|\"[^\"]*\") (-|[0-9]*) (-|[0-9]*)(?: ([^ \"]*|\"[^\"]*\") ([^ \"]*|\"[^\"]*\"))?",
"output.format.string" = "%1$s %2$s %3$s %4$s %5$s %6$s %7$s %8$s %9$s"
)STORED AS TEXTFILE;


对于Hive的学习方向:

1、hive 的 hive-default.xml 配置文件中的参数细节,主要针对Hive的性能优化。
2、Hive 是如何使用MapReduce来完成工作的整套机制。
 

我的口水,目前使用Hadoop产品的国内外公司有如下一些:
Facebook
    处理内部产生的日志和数据挖掘、展示以及机器学习
IBM
    用Hadoop MapReduce 分析billions of lines of GPS data 并产生交通路线资讯.
Krugle
    用Hadoop and Nutch 建构原始码搜寻引擎
SEDNS – Security Enhanced DNS Group
    收集全世界的DNS 以探索网路分散式内容.
Technical analysis and Stock Research
    分析股票资讯
University of Nebraska Lincoln, Research Computing Facility
    用Hadoop跑约200TB的Compact Muon Solenoid经验分析紧凑渺子线圈,该机构是为瑞士欧洲核子研究组织CERN的大型强子对撞器计划的两大通用型粒子侦测器中的一个。
Yahoo!
    使用Hadoop平台来发现发送垃圾邮件的僵尸网络
趋势科技
    过滤像是钓鱼网站或恶意连结的网页内容
还有以前提到过的:A9.com、ImageShack、Last.fm、Powerset、纽约时报
 
国内使用Hadoop的公司有:
淘宝、中国移动研究院、英特尔研究院、金山软件、百度、腾讯、新浪、搜狐。

 

相关文章:
Apache Hive入门1

 

–end–

分享到:
评论

相关推荐

    Hive 入门教程-Apache Hive入门介绍与HQL语法解析

    Hive入门经典教程 Apache Hive 淘宝团队验证

    第1章 数据仓库基础与Apache Hive入门1

    第1章数据仓库基础与Apache Hive入门课程计划目录 一、 课程计划 2 二、 数据仓库 5 1. 数据仓库概念 5 2. 场景案例:数据仓库为何而来?6

    Hive编程指南+HIVE从入门到精通+Hive高级编程+Apache Oozie

    Hive编程指南+HIVE从入门到精通+Hive高级编程+Apache Oozie

    apache-hive-1.2.1-bin.tar.gz.zip

    Hive入门配套软件

    大数据开发Spar、Hive入门

    通过讲解大数据概述、技术栈、数据处理与分析、开发工具、开发流程等内容,结合示例,帮助王子入门大数据开发。 本示例展示了如何使用Apache Spark进行数据处理和机器学习。通过读取CSV文件,对数据进行清洗和特征...

    Hive 口袋手册

    《Hive 口袋手册》是笔者根据自己对 Apache Hive 的知识点的理解汇总而成的小册子。这本小册子的撰写宗旨就两点 1. 常用;2. 概要。 这就注定了这本小册子并不是一本 “全面”、“详尽” 的书籍,它是一个对常用知识...

    hive-quick-start:Hive快速入门指南

    蜂巢 概念: 数据库或架构:定义一组表 ... 对于开发实例来说,这应该足够了,但是在某些情况下,我们将希望同时运行hive CLI,元存储甚至hiveserver2,为了做到这一点,我们将需要一个实际保留信息的数据库。 为

    Apache Flink入门

    目前开源大数据计算引擎有很多选择,流计算如 Storm、Samza、Flink、Kafka Stream 等,批处 理如Spark、Hive、Pig、Flink 等。而同时支持流处理和批处理的计算引擎,只有两种选择:一个 是Apache Spark,一个是Apache ...

    Apache Hadoop---Crunch.docx

    Apache Crunch 是基于 FlumeJava 实现的,...与 Pig 和 Hive 一样,Crunch 是为了降低 MapReduce 的入门成本。它们的区别是:Pig 是一个基于管道的框架,而 Crunch 则是一个 Java 库,它提供比 Pig 更高级别的灵活性。

    ApacheBeam实战指南之基础入门

    随着大数据2.0时代悄然到来,大数据从简单的批处理扩展到了实时处理、流处理、交互式查询和机器学习应用。...面对这种情况,Google在2016年2月宣布将大数据流水线产品(GoogleDataFlow)贡献给Apache

    大数据基础知识入门.pdf

    支 持 大 多 数 Hadoop 组 件 , 包 括 HDFS 、 MapReduce 、 Spark 、 Hive 、 Pig 、 Hbase 、 Zookeper、Sqoop等 大数据集群管理方式 分 为 手 工 方 式 ( Apache hadoop)和工具方式(Ambari + hdp 和 ...

    sparkhivewebapp:一个使用 spark-hive 的非常简单的 webapp

    一个使用 apache spark hive 的非常简单的 spring web 应用程序作者###入门首先,应将 spark 组件 jar(在安装 spark lib 文件夹中提供)添加到 maven 本地 repo。 该命令在下面关于 spark 依赖项的注释部分中给...

    大数据必看经典书籍:大数据从入门到深入书籍推荐.pdf

    《Hive编程指南》 《Hive编程指南》是⼀本Apache Hive的编程指南,对Hive的SQL⽅法HiveQL来汇总、查询和分析存储在Hadoop分布式⽂件系统上的⼤ 数据集合做了详细的介绍。 第三阶段,是针对分布式计算框架的学习,...

    Apache Kylin 权威指南

    清晰的文字,是快速入门OLAP,学习使用kylin的入门神器 ps:让我填所属分类,好bt,要么你就整个全一点的数据库,分类多点,找了半天没有找到OLAP,KYLIN;让我没得选,只能选择大数据-&gt;hive了,比较相近了

    vagrant-jilla-hadoop:流浪者设置来启动vm hadoop集群

    Pig客户端的vagrant-hadoop-2.6.0介绍Vagrant项目通过数据节点中的Hadoop v2.6.0,Spark 1.4.1以及apache hive和pig客户端启动了由5个虚拟机组成的集群node1:HDFS名称节点+ Spark Master node2:HDFS数据节点+ ...

    Spark入门实战系列 超清自解压 PDF文件

    spark入门级资料推荐,开始是介绍简装 编译运行等基础介绍,从第五章开始 Hive介绍及部署 Hive实战 SparkSQL介绍 实战 深入了解运行计划及调优 SparkStreaming原理介绍 实战 SparkMLlib机器学习及SparkMLlib简介 ...

    jms-activemq-example:使用Apache ActiveMQ的Belajar JMS

    Apache ActiveMQ入门 如何运行应用程序: 提炼 跑步 bin/activemq start 启动 JMS术语 提供者,即面向消息的中间件或充当代理的应用程序,示例之一是Apache ActiveMQ,RabitMQ,Hive MQTT,IBM MQ,JBoss ...

    Flume总结 全.pdf

    对于Flume学习上的总结,包含: 1.Linux环境Flume安装配置及...2.Apache Flume 入门教程。 3.flume的部署和avro source测试;netcast source测试。 4.Flume部署及使用。 5.Flume监听本地Linux-hive日志文件采集到HDFS。

    nosql 入门教程

    第一部分 NoSQL入门 第1章 NoSQL的概念及适用范围 2 1.1 定义和介绍 3 1.1.1 背景与历史 3 1.1.2 大数据 5 1.1.3 可扩展性 7 1.1.4 MapReduce 8 1.2 面向列的有序存储 9 1.3 键/值存储 11 1.4 文档数据库 ...

Global site tag (gtag.js) - Google Analytics