Centos6.5 64位 安装Hadoop2.7.0, MapReduce日志分析, Hive2.1.0, JDBC连接Hive查询 (2)

Cloudera CDP 7.1.7企业级平台实战:从CM部署到Kerberos安全运维 Cloudera不是Hadoop的简单封装,而是面向PB级数据治理的企业级平台操作系统。其核心在于Cloudera Manager(CM)驱动的声明式编排能力、Kerberos深度集成的安全模型,以及Parcel机制保障的版本一致性与可回滚性。理解CM如何替代手工配置、Kerberos如何成为服务间信任根、CDP 7.1.x相比CDH 6.3在Parcel回滚与数据库兼容性上的工程优势,是构建高可用、可审计、可运维大数据平台的技术前提。本内容聚焦真实生产环境中的集群筑基、安全启用、故障三角定位(认证/存储/ 阅读详情

第二篇 MapReduce日志分析


做日志分析之前, 我觉得要先了解下MapReduce , 网上很多, 你可以搜下, 这位哥们讲的还不错 点击打开链接

日志长这样的:


<?php  if ( ! defined('ROOT_PATH')) exit('No direct script access allowed'); ?>

[2016-06-01 00:10:27] POST 218.82.131.157 /user/HealthCenter.php?m=submit uid=14&hash=dd16e3e4d0e8786f13166a4065f24fa0&num=13.0&type=1&time=1464711029 0(OK)
[2016-06-01 08:10:27] POST 218.82.131.157 /user/HealthCenter.php?m=submit uid=14&hash=863fbf2535639c16d885a55c78dff665&num=13.0&type=1&time=1464739829 0(OK)
[2016-06-01 09:10:28] POST 124.74.69.134 /user/HealthCenter.php?m=submit uid=14&hash=9a310b722e795e2673cdba76bea29b26&num=13.0&type=1&time=1464743429 0(OK)
[2016-06-01 09:16:05] GET 124.74.69.134 /index/Main.php?hash=eac57627d3407963dab81da2bb07e378&page_num=1&page_size=10&time=1464743769&uid=8 0(OK)
[2016-06-01 10:01:30] GET 124.74.69.134 /index/Main.php?hash=7979353ef669c61f75a5a7e9d39cd646&page_num=1&page_size=10&time=1464746494&uid=8 0(OK)
[2016-06-01 10:10:28] POST124.74.69.134 /user/HealthCenter.php?m=submit uid=14&hash=98012832769b5a0e45f036e92032f1ef&num=13.0&type=1&time=1464747029 0(OK)
[2016-06-01 10:11:12] GET 124.74.69.134 /index/Main.php?hash=77938b0fdf1b733a9e15d9a2055767d1&page_num=1&page_size=10&time=1464747076&uid=8 0(OK)
[2016-06-01 10:48:00] GET 124.74.69.134 /index/Main.php?hash=1a1979e9fdcfca2f17bf1b287f4508aa&page_num=1&page_size=10&time=1464749284&uid=8 0(OK)
[2016-06-01 10:48:42] POST 124.74.69.134 /user/Position.php uid=9&address=undefine&latitude=4.9E-324&time=1464749394&type=1&hash=d4aebe936762be3a0420b62a77e37b00&longitude=4.9E-324 0(OK)

分别是: 时间 请求方式 IP 请求地址 参数 返回值

每天产生一个, 分别已Y-m-d.php 方式命名.

达到的目的是: 统计每天 每个接口的请求次数, 以返回结果分组,

编写程序

/**
 * @ClassName:     LogMapReduce.java
 * @author         273030282@qq.com
 * @version        V1.0 
 * @Date           2016-7-11 10:20:11
 * @Description:   TODO
 *
 */

package www.com.cn;

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.conf.Configured;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
import org.apache.hadoop.util.Tool;
import org.apache.hadoop.util.ToolRunner;

public class LogMapReduce extends Configured implements Tool {

	public static void main(String[] args) {
		Configuration conf = new Configuration();
		try {
			int res = ToolRunner.run(conf, new LogMapReduce(), args);
			System.exit(res);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	@Override
	public int run(String[] args) throws Exception {
		Configuration conf = new Configuration();
		final Job job = Job.getInstance(conf, "LogParaseMapReduce");
		job.setJarByClass(LogMapReduce.class);
		FileInputFormat.setInputPaths(job, args[0]);
		job.setMapperClass(MyMapper.class);
		job.setReducerClass(MyReducer.class);
		job.setOutputKeyClass(Text.class);
		job.setOutputValueClass(IntWritable.class);
		FileOutputFormat.setOutputPath(job, new Path(args[1]));
		boolean success = job.waitForCompletion(true);
		if (success) {
			System.out.println("process success!");
		} else {
			System.out.println("process failed!");
		}
		return 0;
	}
	
    enum Counter{  
        LINESKIP,  
    }     
	

	static class MyMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
		private final static IntWritable one = new IntWritable(1);
		public void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
			if ("".equals(value)) {
				return;
			}
			String line = value.toString();
			if (line.length() == 0 || !"[".equals(line.substring(0, 1))) {
				return;
			}
			
			try {
				String[] lines = line.split(" ");
				String data = lines[0].replace("[", "") + "\t";
				if ("GET".equals(lines[2])) {
					String url = "";
					String[] urls = lines[4].split("[?]");
					String[] params = urls[1].split("[&]");
					if (params[0].indexOf('m') != -1) {
						url = urls[0] + "?" + params[0];
					} else {
						url = urls[0];
					}
					data += url + "\t" + lines[5];
				} else if ("POST".equals(lines[2])) {
					data += lines[4] + "\t" + lines[6];
				}
				Text out = new Text(data);
				context.write(out, one);
			} catch (ArrayIndexOutOfBoundsException e) {
				context.getCounter(Counter.LINESKIP).increment(1); 
			}
		}
	}

	static class MyReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
		protected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {
			int count = 0;
			for (IntWritable v: values) {
				count = count + 1;
			}
			context.write(key, new IntWritable(count));
		}
	}

}

然后将程序打jar包:LogMapReduce.jar

打包时注意选择 Main class, 这时候选择就不用在调用时指定包目录了


Shell脚本

脚本分为两个, 一个执行脚本, 一个运行执行的脚本

运行脚本 run.sh:

#! /bin/bash

d=`date "+%Y-%m-%d %H:%M:%S"`
echo "{$d} start..."

file=$1;
if [ -f ${file} ];then
        echo "${file} exists"
else
        echo "${file} not exists"
        exit 0
fi


#获取文件名
fileinfo=(${file//// })
filename=${fileinfo[$[${#fileinfo[@]}-1]]}
info=(${filename//./ })
name=${info[0]}
echo "hadoop put file to /api/put/${filename}"
hadoop fs -put ${file} /api/put/${filename}
echo "call LogMapReduce.jar"
hadoop jar /home/hadoop/hadoop-2.7.0/share/hadoop/mapreduce/LogMapReduce.jar /api/put/${filename} /api/out/${name}
echo "hive load into api_logs"
hive -e "load data inpath '/api/out/${name}/part-r-00000' into table apis.api_logs"
echo "delete /api/put/${filename}"
hadoop fs -rm /api/put/${filename}
echo "delete /api/out/${name}"
hadoop fs -rmr /api/out/${name}
echo "end"
~          

大致的逻辑, 接收传入的文件(含路径), 然后分割, 得到文件名, 然后将文件put到hadoop, 调用LogMapReduce.jar, 将结果插入到hive, 删除文件


运行执行的脚本 process_2016_06.sh:

#!/bin/sh

for((i=5;i<31;i++))
do
        logdate=`printf "%'.02d" $i`
        ./run.sh /home/hadoop/data/2016-06-${logdate}.php
done

也可以折腾在一起.


折腾到hive 就i可以查询了, 比如查询6月份失败率前20




Cloudera CDP实战指南:从CDP安装、CM配置到HDFS/YARN/Hive调优 Cloudera Data Platform(CDP)是现代企业级云原生数据平台的核心代表,它已取代传统CDH,基于Kubernetes构建,融合HDFS分布式存储、YARN资源调度与Hive/Tez计算引擎。理解其架构演进(CDH→CDP)、掌握Cloudera Manager三级配置体系、规避Kubernetes环境部署陷阱(如CNI选型、etcd存储、Operator配置),是保障集群稳定与性能的关键。在真实生产中,HDFS小文件治理、YARN容量队列精细化配额、Hive on Tez会话复用与Shu 阅读详情

相关推荐

Ambari-2.7.4和HDP-3.1.4安装(附Ambari和HDP安装包)

1.、环境及软件准备Ambari-2.7.4和HDP-3.1.4下载 ,提取码:3rwq环境:CentOS7(我这里使用的是CentOS7.9版本)、三台虚拟机,单节点内存13GB、存储80GB软件:mysql5.7+、jdk8、ambari-2.7.4.0-centos7.tar.gz、HDP-3.1.4.0-centos7-rpm.tar.gz、HDP-UTILS-1.1.0.22-centos7.tar.gz1、主机名配置查看hostname2、配置服务器之间免密登录。

ycjunhua的专栏 1305

hive安装配置与hive的JDBC (hadoop-0.20.2 + hive-0.7.0)

hive安装 安装hive的时候参考了http://yp.oss.org.cn/software/show_resource.php?resource_id=270 和http://www.cnblogs.com/flying5/archive/2011/05/23/2078399.html具体步骤大概是: 1)安装hadoop 2)jdk 3)下载hive 上面这些都可以从网上找到很多

ZHB_McCoy的专栏 2106

基于Hadoop的网站流量日志分析系统设计与实现

网站流量日志分析是大数据领域最常见的应用场景之一。面对海量Nginx/Apache日志,传统工具难以高效处理,而Hadoop生态提供了完整的解决方案:HDFS负责分布式存储原始日志,MapReduce实现清洗、解析与指标统计,YARN进行资源调度,Hive则支持辅助查询校验。通过合理设计分层架构与统计口径,可有效提取PV、UV、热门页面等运营指标,并利用Combiner、自定义Partitioner等手段优化数据倾斜与Shuffle性能。该技术路线不仅适用于课程设计与毕业设计,也是理解大数据离线批处理流程的

weixin_34341117的博客 397

hive1.2 的jdbc连接

首先打开jdbc服务hive --service hiveserver2 //默认端口为10000可以查看hiveserver2使用maven建立依赖包 <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-jdbc</artifactId> <version>1.2

qq_26479655的博客 1549

大数据技术(hadoop2.7+hbase1.0+hive1.2).pdf

hadoop hbase hive 安装

搭建微信机器人的方案都在这了!

功能超级强大,虽不支持二次开发,但已有的功能足够个人使用,可惜官方作品已被腾讯告死,好在市面上还流落着不少破解版,有需要的自行搜索。可惜的是,微信官方已不准许新的微信号再使用 web 登录,这就直接从源头扼杀了 web 协议的微信机器人,虽说老的微信号还是能凑合着用,不过部分功能也受限。所以,这些都属于 PC 端的微信机器人。无论是 PC 端还是手机端,用 hook 方式实现的最大缺点就是要和某一个版本的微信客户端进行绑定,如果框架本身不对最新版本的微信适配,那使用的时候就无法升级到最新版本的微信。

weixin_47246330的博客 1万+

搭建Hadoop2.7.3+Hive2.1.1及MySQL(配置Hadoop)(一)

搭建Hadoop2.7.3+Hive2.1.1及MySQL

中国风 7262

软件测试方法——等价类划分法详解

!如果下面这些资料用得到的话可以直接拿走:1、自学开发或者测试必备的完整项目源码与环境2、测试工作中所有模板(测试计划、测试用例、测试报告等)3、软件测试经典面试题4、Python/Java自动化测试实战.pdf5、Jmeter/postman接口测试全套视频获取6、Python学习路线图。

MXB1220的博客 1万+

hive和Hadoop的版本关系

hbase和hive之间版本对应关系 在这里插入图片描述 图片来源参考官网:http://hbase.apache.org/book.html#hadoop hive和hadoop、hive和spark之间版本对应关系 版本信息来自于hive源码包的pom.xml: hive-3.1.2 <hadoop.version>3.1.0</hadoop.version> <hbase.version>2.0.0-alpha4</hbase.version> &lt

lucklydog123的博客 1万+

大疆精灵3无人机2.4GHz通信系统实测:跳频扩频技术深度解析

跳频扩频(FHSS)是一种经典的扩频通信技术,其核心原理是通过让载波频率在一个宽频带上按伪随机序列快速跳变,将窄带信号的能量扩散开来。这种技术能有效对抗固定频率干扰,提升通信的可靠性和抗截获性,在无线遥控、军事通信等领域具有重要价值。在无人机、物联网等对实时性与可靠性要求高的应用场景中,FHSS技术能显著增强复杂电磁环境下的链路鲁棒性。本文以频谱分析仪实测大疆精灵3无人机为例,深入剖析其2.4GHz频段遥控与图传系统的工作特性,揭示了其采用的成熟FHSS方案,包括约76MHz的总跳频带宽、39个信道及约2M

weixin_33935636的博客 311

别再只跑memtester了!嵌入式Linux内存压力测试,这5个参数和场景你试过吗?

本文深入探讨了嵌入式Linux内存压力测试的高级技巧,重点解析了memtester工具的5个关键参数和实战场景。通过物理地址测试、迭代控制、内存分配策略等调优方法,帮助开发者有效检测内存稳定性问题,适用于长期运行设备、特定故障重现等复杂场景,提升嵌入式系统可靠性。

weixin_30838873的博客 425

Centos6.5 64位 安装Hadoop2.7.0, MapReduce日志分析, Hive2.1.0, JDBC连接Hive查询 (1)

Hadoop 安装, 网上的例子很多, 本人也是根据网上的步骤一步一步的执行, 安装完成后, 运行WordCount.jar时发现, 从hadoop官网下的是32位已编译好的版本, 于是想自己编译下64位的, 本人费尽周折, 在公司以及在家的电脑上折腾了好久, 编译无法通过, 主要的原因是下载所需的jar包的过程中超时, 于是网上搜索了编译后的64位的hadoop.

system1024的专栏 669

2026年广东省职业院校技能大赛中职组“大数据应用与服务”样题一完整参考答案

2026年广东省职业院校技能大赛中职组“大数据应用与服务”样题一完整参考答案

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 753

Centos6.5 64位 安装Hadoop2.7.0, MapReduce日志分析, Hive2.1.0, JDBC连接Hive查询 (4)

第四篇 JDBC连接Hive查询 jdbc 连接hive 查询, 要做以下几个事情, 前面也曾提到: 1 在hadoop的core-site.xml 中增加配置 hadoop.proxyuser.root.groups * hadoop.proxyuser.root.hos

system1024的专栏 467

通信原理 | python调制识别数据及代码

数据集包含了从-20dB 到+18dB 总共 20 个信噪比(步长为 2)下的 11 种调制信号, 包括 AM-DSB、 AM-SSB 和 WBFM 三种模拟调制信号,以及 BPSK、 QPSK、 8PSK、 CPFSK、 GFSK、 PAM4、 QAM16 和 QAM64 八种数字调制信号。其中信号的中心频率为 200KHz,采样频率为 1Msamp/s,且每个信噪比下每种调制信号包含 1000 个信号。其中每个信号包含 IQ 两路数据,且每一路数据都包含有 128 个采样点。

若北辰 1758

【QGIS入门实战精品教程】1.2:QGIS与ArcGIS的区别和联系

以下是GISGeography官方给出的两者之间的27点比较(译): 官方网址:https://gisgeography.com/qgis-arcgis-differences/ 1.QGIS容纳更多的数据格式 ArcGIS没有支持所有的数据格式,毫无疑问,QGIS在处理各种类型的数据时非常顺手,QGIS在数据格式方面是个多面手,在使用数据方面是它的长处。 QGIS使用GDAL/OGR库来读取和写入地理信息数据格式,支持超过70种矢量格式。QGIS一开始就是为了与PostGIS协作而诞生的,而支持的名单.

智慧空间实验室 2043

Centos6.5 64位 安装Hadoop2.7.0, MapReduce日志分析, Hive2.1.0, JDBC连接Hive查询 (3)

第三篇 Hive2.1.0 安装 这位哥们写的挺好, 跟2.1.0 安装差不多 http://aperise.iteye.com/blog/2275507

system1024的专栏 406

CT探测器普遍采用“星形拓扑+多ADC模组”架构的TDC(时间数字转换器)设计方案

本文提出一种基于TDC反馈机制的CT探测器时钟同步方法,通过延时测量、偏差计算和动态补偿三步硬件流水线,实现高精度同步。系统采用Xilinx Kintex UltraScale FPGA内置CARRY8进位链构建3.5ps分辨率的TDC,结合多级比较器和延迟单元,形成闭环反馈控制。实验表明,在512通道、1.28m传输距离下,同步精度稳定在10ps以内,较传统方案提升两个数量级,并能动态补偿干扰抖动。该方案解决了传统方法在CT旋转腔体环境下精度不足的问题,为下一代超高清CT提供了有效的时钟同步解决方案。

whm128的博客 275

大数据Hadoop之——部署hadoop+hive+Mysql环境(Linux)

-是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -->--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认是 true -->-- 关闭yarn内存检查 flink on hadoop 配置-->-- 指定HDFS中NameNode的地址 默认 9000端口-->-- 指定Hadoop运行时产生文件的存储目录 -->-- 2nn web端访问地址 可以不配置-->-- 历史服务器web端地址 -->

qq_41946216的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

保姆级教程:在CentOS 7上为Hadoop生态安装配置Sqoop 1.4.7(含MySQL驱动配置)

本文提供了一份详细的CentOS 7环境下Sqoop 1.4.7安装与配置指南,涵盖环境预检、依赖管理、核心组件部署、生产级参数调优及全链路验证方案。特别针对MySQL驱动配置、连接池优化和安全加固等关键环节进行深度解析,助力企业实现高效稳定的数据迁移。

363

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

hive2.3.7安装部署-问题:show databases;没反应

hive2.3.7安装部署-问题:show databases;没反应

lurenyi168的专栏 1212

Hadoop快速入门(一)

Hadoop快速入门(一) 几个概念: 大数据:无法在一定时间内用常规软件工具对其内容进行撞去、管理和处理的数据集合。 大数据技术:从各种各样类型的数据中,快速获得由价值信息的能力。 配套技术:大规模并行处理数据库(MPP),数据挖掘,分布式文件系统,分布式数据库,云计算平台,互联网和可扩展的存储系统。 Hadoop:以HDFS和mapreduce为核心。 Hado...

xxx 4079

hadoop2-hive的安装和测试

在安装和测试hive之前,我们需要把Hadoop的所有服务启动 在安装Hive之前,我们需要安装mysql数据库 --mysql的安装 - (https://segmentfault.com/a/1190000003049498) --检测系统是否自带安装mysql yum list installed | grep mysql --删除系统自带的mysql及其依赖 yum -...

weixin_34323858的博客 118

Hadoop生态底层逻辑:分布式存储与计算的工程权衡

分布式文件系统与大数据计算框架是应对单机存储和算力瓶颈的基础技术方案。其核心原理在于通过数据分片、副本冗余、任务调度与容错机制,在廉价硬件上构建高可用、可扩展的数据处理基础设施。技术价值体现在吞吐优化、故障自愈与多引擎协同,广泛应用于日志分析、用户行为建模、实时报表等典型场景。本文深入剖析HDFS副本策略、YARN两级调度、Spark DAG执行等关键设计,揭示组件间‘契约式协作’的本质,帮助工程师跳出配置表象,理解大数据基建的真实约束与工程取舍。

weixin_34054931的博客 383

从零开始搭建大数据处理实战环境

通过网盘分享的文件:YU.csv链接: https://pan.baidu.com/s/1sSrx5xGe8Lq9-MuHA4I00Q 提取码: f749通过网盘分享的文件:文件链接: https://pan.baidu.com/s/1Y3ubq9LohbVEPibKHOjASQ 提取码: 7j6p(一)前置配置完成所有开发环境的安装与配置,包括:VMware虚拟机安装CentOS 7(或者ubuntu16.04)CentOS 7中安装HadoopHiveSqoopMySQL。

2301_81396079的博客 315

DSS部署

dss部署

沧海之巅的专栏 1479
上一篇: Centos6.5 64位 安装Hadoop2.7.0, MapReduce日志分析, Hive2.1.0, JDBC连接Hive查询 (1)
下一篇: Centos6.5 64位 安装Hadoop2.7.0, MapReduce日志分析, Hive2.1.0, JDBC连接Hive查询 (3)
system1024
博客等级 码龄16年 11粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值