现在的部分工作是进行日志分析,由于每天的日志压缩前80多G左右,用lzop压缩后10G左右,如果用shell直接进行统计,需要花费很长时间才能完成,而且还需要用java函数对request url进行转换,于是采用hive+hdfs+sqoop方案进行日志统计分析
hadoop+hive+hdfs+sqoop的架构就不详细说了,可以直接用cloudera的repo直接安装
日志分析步骤
一 下载服务器中的日志,因为应用服务使用了多台服务器,所以需要对日志进行合并整理,然后用lzop进行压缩
二 在hive中创建表
- hive>CREATE TABLE maptile (ipaddress STRING,identity STRING,user STRING,time STRING,method STRING,request STRING,protocol 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 %10$s %11$s")STORED AS TEXTFILE;
hive>CREATE TABLE maptile (ipaddress STRING,identity STRING,user STRING,time STRING,method STRING,request STRING,protocol 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 %10$s %11$s")STORED AS TEXTFILE;
三 导入日志数据
- hive>load data local inpath '/home/log/1.lzo' overwrite into table maptile;
hive>load data local inpath '/home/log/1.lzo' overwrite into table maptile;
四 在hive中创建日志统计后结果表
- hive>create table result (ip string,num int) partitioned by (dt string);
hive>create table result (ip string,num int) partitioned by (dt string);
五 统计日志并将统计结果插入到新表中
- hive>insert overwrite table result partition (dt='2011-09-22') select ipaddress,count(1) as numrequest from maptile group by ipaddress sort by numrequest desc;
hive>insert overwrite table result partition (dt='2011-09-22') select ipaddress,count(1) as numrequest from maptile group by ipaddress sort by numrequest desc;
六 将统计结果导出到mysql中
- sqoop export --connect jdbc:mysql://localhost:3306/result --username root --password admin --table ip_info --export-dir /user/hive/warehouse/result/dt=2011-09-22 --input-fields-terminated-by '\001'
sqoop export --connect jdbc:mysql://localhost:3306/result --username root --password admin --table ip_info --export-dir /user/hive/warehouse/result/dt=2011-09-22 --input-fields-terminated-by '\001'
以上步骤可以写入到shell script中设置定时任务自动完成
相关推荐
分布式文件存储系统:HDFS 分布式计算框架:MapReduce 集群资源管理器:YARN 单机伪集群环境搭建 集群环境搭建 常用 Shell 命令 Java API 的使用 基于 Zookeeper 搭建 Hadoop 高可用集群 二、Hive 简介及核心概念 ...
在大数据项目中,AirFlow能确保数据从收集到分析的整个流程自动化、有条不紊地运行,例如设置定时任务从MySQL抽取数据,用Sqoop导入HDFS,然后启动Hive和Spark作业进行分析。 最后,Grafana是一个强大的可视化工具...
使用 Sqoop 将 Hive 中处理后的数据导出到 MySQL 数据库,这样可以将大数据分析的结果与传统的业务系统结合,方便进行报表展示和业务决策。 4. 数据可视化展示 最后,通过 Python 编程实现对 MySQL 中数据的可视化...
mapreduce方式入库hbase hive hdfs,速度很快,里面详细讲述了代码的编写过程,值得下载
Oozie是Hadoop的工作流调度器,用于管理Hadoop作业(包括MapReduce、Pig、Hive、Sqoop等)和Spark作业的调度。配置Oozie时,需要设置Hadoop和Spark的相关路径,并创建Oozie数据库。 Kafka是一个分布式流处理平台,...
### 第15章-Sqoop+Hive+Hbase+Kettle+R某技术论坛日志分析项目案例 #### 案例概述 本案例详细介绍了如何利用一系列大数据处理工具,包括Sqoop、Hive、Hbase、Kettle以及R语言,对一个技术论坛的日志数据进行分析的...
2. Hive:Hive是建立在Hadoop之上的数据仓库工具,它允许用户使用SQL(HQL,Hive Query Language)语言对存储在Hadoop上的结构化和半结构化数据进行查询、分析和处理。Hive将SQL语句转换为MapReduce任务执行,简化了...
在本主题中,我们将深入探讨 Sqoop 的导入功能,特别是如何将数据从 MySQL 和 Sybase 数据库导入到 HDFS,并进一步加载到 Hive 表中。 ### 一、Sqoop 导入介绍 1. **语法结构**: Sqoop 导入数据的基本语法如下:...
然后,你可以使用Sqoop命令行工具,结合Hive的HQL,实现从MySQL数据库到HDFS的数据迁移,或者反过来,将处理过的数据写回到MySQL。这整个过程简化了大数据处理的流程,使得数据的导入导出变得更加高效和便捷。 总结...
该项目是一个综合性的大数据分析实践,主要利用Hadoop生态系统中的组件,包括Sqoop、Hadoop、Hive以及MySQL,对电商数据进行深入分析。这个过程涵盖了数据的导入、存储、处理和查询等多个环节,展示了大数据技术在...
在将 mysql 数据库中的表导入到 HDFS 中时,需要启动 hadoop,登录 mysql 数据库,查看 hive 数据库中有哪些表,然后使用 sqoop 命令将 hive 数据库中的表导入到 HDFS 中。最后,查看是否导入 HDFS 中。 Sqoop ...
Hive将SQL查询转化为一系列MapReduce任务,简化了大数据的分析工作,尤其适合离线数据分析。 **Spark**是快速、通用的大数据处理引擎,它在内存计算方面有显著优势,可以大幅提升数据处理速度。Spark不仅支持批处理...
本压缩包"hadop安装文件.rar"提供了关于Hadoop及其相关组件(如Hive、HBase、Sqoop和MySQL)的安装步骤,这对于初学者和系统管理员来说是一份宝贵的资源。 首先,我们来详细了解一下Hadoop。Hadoop由Apache软件基金...
实战Sqoop数据导入及大数据用户行为案例分析(全套视频+代码+工具+课件讲义) 内容包括: 01_CDH版本框架的介绍 02_CDH版本框架的环境部署 03_Sqoop的介绍及其实现原理 ...12_案例分析-指标分析使用Sqoop导出
在导入过程中,Sqoop可以自动检测表结构,将列映射到HDFS文件的字段,并且可以选择不同的导入模式,如完全导入、增量导入或导出数据到Hive、HBase等其他Hadoop组件。通过这种方式,你可以方便地在SQL Server和Hadoop...
例如,我们可以先使用Sqoop将关系数据库中的数据导入到Hadoop的HDFS中,然后通过Hive对这些数据进行清洗、转换和分析。分析完成后,如果需要将结果数据返回到数据库,同样可以利用Sqoop完成导出操作。这种组合应用...
通过以上步骤,我们可以构建一个功能完备的大数据离线分析平台,利用Hadoop处理大规模数据,用Hive进行结构化查询,而 Sqoop 则作为数据交换的桥梁。这个系统的搭建和配置是大数据工程师必备的技能之一,对于理解...
Sqoop 可以与 Hive、HBase、Pig 等组件无缝集成,进一步增强大数据处理能力。 9. **Sqoop 导入导出模式** - **批处理**:一次性导入整个表或查询结果。 - **连续导入**:监控数据库的变更,并仅导入新数据或已...
Sqoop 是一个强大的工具,它在大数据领域中起到了桥梁的作用,允许用户在关系型数据库(如 Oracle)和 Hadoop 分布式...通过熟练掌握 Sqoop 的使用,用户可以高效地管理、导入和导出大规模数据,提升数据分析的效率。
- 使用Sqoop导入和导出数据,例如:`sqoop import --connect <jdbc-url> --username <user> --password <pass> --table <table-name> --target-dir <hdfs-path>`。 通过这样的配置,你可以在本地环境中模拟一个...