首页 > 其他分享 >Hive大数据测试

Hive大数据测试

时间:2022-10-18 22:48:35浏览次数:49  
标签:10 数据测试 java String ip Hive traffic new

Result文件数据说明:

Ip:106.39.41.166,(城市)

Date:10/Nov/2016:00:01:02 +0800,(日期)

Day:10,(天数)

Traffic: 54 ,(流量)

Type: video,(类型:视频video或文章article)

Id: 8701(视频或者文章的id)

测试要求:

1、 数据清洗:按照进行数据清洗,并将清洗后的数据导入hive数据库中。

两阶段数据清洗:

(1)第一阶段:把需要的信息从原始日志中提取出来

ip:    199.30.25.88

time:  10/Nov/2016:00:01:03 +0800

traffic:  62

文章: article/11325

视频: video/3235

(2)第二阶段:根据提取出来的信息做精细化操作

ip--->城市 city(IP)

date--> time:2016-11-10 00:01:03

day: 10

traffic:62

type:article/video

id:11325

(3)hive数据库表结构:

create table data(  ip string,  time string , day string, traffic bigint,

type string, id   string )

2、数据分析:在HIVE统计下列数据。

(1)统计最受欢迎的视频/文章的Top10访问次数 (video/article)

(2)按照地市统计最受欢迎的Top10课程 (ip)

(3)按照流量统计最受欢迎的Top10课程 (traffic)

3、数据可视化:

将统计结果倒入MySql数据库中,通过图形化展示的方式展现出来。

1、使用java代码将result.txt文件中的时间格式化,再将其导入mysql

日期格式化代码

import java.io.*;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.Locale;

import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;


public class test {

    public static ArrayList<String> getfile(String filepath){
        try{
            String temp = null;
            File f = new File(filepath);
            //指定读取编码用于读取中文
            InputStreamReader read = new InputStreamReader(new FileInputStream(f),"utf-8");
            ArrayList<String> readList = new ArrayList<String>();
            BufferedReader reader=new BufferedReader(read);
            //bufReader = new BufferedReader(new FileReader(filepath));
            while((temp=reader.readLine())!=null &&!"".equals(temp)){
                readList.add(temp);
            }
            read.close();
            return readList;

        }catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    //改变时间的格式
    public static String parseDate(String dateStr) throws java.text.ParseException{

        SimpleDateFormat input_date = new SimpleDateFormat("dd/MMM/yyyy:HH:mm:ss Z", Locale.ENGLISH);
        SimpleDateFormat output_date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String finalDate = "";
        try {
            Date parse_date = input_date.parse(dateStr);
            finalDate = output_date.format(parse_date);
        } catch (ParseException e) {
            e.printStackTrace();
        }

        return  finalDate;
    }

    public static void main(String[] args) throws java.text.ParseException, IOException {
        //txt文件读取
        ArrayList<String> list=getfile("D:\\result.txt");
        Writer writer = new FileWriter("D:\\result1.txt");
        int num=list.size();
        for (int i = 0; i < num; i++) {

            if (list.get(i)!=null) {
                String[] s=list.get(i).split(",");

                String data=parseDate(s[1]);
                //txt每行可以分割成6个字符串存到是s[],
                writer.append(s[0]+","+data+","+s[2]+","+s[3]+","+s[4]+","+s[5]+"\n");
            }

        }

        System.out.println("添加成功");
    }
}

后面是查询数据并进行格式化,可以在hive操作,或者直接在mysql中进行操作(最后的可视化需要连接mysql)

这里最重要的是sql语句,将后两问的sql语句贴上,第一问很简单

select id,traffic as traffic from result ORDER BY traffic desc limit 10;

select id,ip,SUM(traffic) as traffic from result GROUP BY id,ip ORDER BY traffic desc,ip desc limit 10;

 

标签:10,数据测试,java,String,ip,Hive,traffic,new
From: https://www.cnblogs.com/jzz-111jy/p/16804454.html

相关文章

  • sqlyog连接hive解决方案
    解决步骤:(代码无需修改直接按顺序复制粘贴到Linux命令即可)1.需要在cent7中开放端口,开放端口需要开启防火墙。systemctlstopfirewalld.service关闭防火墙systemctlstar......
  • Hadoop生态系统—数据仓库Hive的安装
    一、数据仓库数据仓库是一个面向主题的、集成的、随时间变化,但信息本身相对稳定的数据集合,相比于传统型数据库,它主要用于支持企业或组织的决策分析处理。主要有以下3个特......
  • hive解析多层json嵌套
    原有的json数据如下:   现在如何取到两层嵌套里面的json? 思路分析:1、重点是取到内层的json并解析,但是内层是一个json数组。怎么解析json数组?2、将内层json数组......
  • PHPExcel PHP Class 'ZipArchive' not found
    PhpSpreadsheet是PHPExcel的下一个版本。它打破了兼容性,极大地提高了代码库的质量(命名空间,PSR合规性,使用最新的PHP语言功能等)。由于所有努力都转移到了PhpSpreadsheet,PHP......
  • springboot配置多数据源mysql,presto,hive等
    下面案例是配置多数据源,两个及以上,但是主数据源只能是一个,默认mybatis使用的是主数据源下面配置mysql为主数据源,通过注解@Primary标注yaml文件配置:spring:datasource......
  • sqoop将hive数据导出到mysql
    sqoop的安装和使用教程参考博客:https://blog.csdn.net/qq_42502354/article/details/106727502,sqoop连接mysql:bin/sqooplist-databases--connectjdbc:mysql://linux-c......
  • hive数据分析——03
    完成第五阶段,这个阶段相对来说是最简单的,项目的架构和javaweb相同,使用echarts和sql语句完成,sql语句是关键,下面是echarts的网址https://echarts.apache.org/zh/index.html......
  • 关于mysql archive存储引擎
    政府还有一个让数据库专家摊上更多事情的职能,就是安全控制和数据审计。那些管理着海量数据仓库的企业官员常常得回答诸如“何人何时修改了什么”或者“何人何时查看了什么”......
  • hive-1.1.0-cdh5.9.0安装
    hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可......
  • hive常用命令
    1.创建数据(文本以tab分隔)vimtest1_hive2.创建新表CREATETABLEt_hive(aint,bint,cint)ROWFORMATDELIMITEDFIELDSTERMINATEDBY'|';3.导入数据test1_hive到......