2021.9.21 Hive元数据

一、今日学习内容

    1.

一、什么是元数据

  又称中介数据、中继数据,为描述数据的数据,主要是描述数据属性的信息,用来自持如只是存储位置、历史数据、资源查找、文件记录等功能。

二、Hive Metadata

  • Hive Metadata即Hive的元数据。
  • 包含用Hive创建的database、table、表的位置、类型、属性,字段顺序类型等元信息。
  • 元数据存储在关系型数据库中。如hive内置的Derby、或者第三方如MySQL等。
  • Metastore即元数据服务。Metastore服务的作用是管理metadata元数据,对外暴露服务地址,让各种客户端通过连接metastore服务,由metastore再去连接连接MySQL数据库来存取元数据。
  • 有了metastore服务, 就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只
    需要连接metastore服务即可。某种程度上也保证了hive元数据的安全。

import javax.swing.*;
 
public class AboutException {
   public static void main(String[] a)
   {
      int i=1, j=0, k;
      k=i/j;
 
 
    try
    {
         
        k = i/j;    // Causes division-by-zero exception
        //throw new Exception("Hello.Exception!");
    }
     
    catch ( ArithmeticException e)
    {
        System.out.println("被0除.  "+ e.getMessage());
    }
     
    catch (Exception e)
    {
        if (e instanceof ArithmeticException)
            System.out.println("被0除");
        else
        { 
            System.out.println(e.getMessage());
             
        }
    }
 
     
    finally
        {
            JOptionPane.showConfirmDialog(null,"OK");
        }
         
  }
}

   

   

被零除  输出by zero

谁先出异常,就先去catch捕捉那个异常,try。。catch注释后,发现finally都会执行。

       1.把可能会发生错误的代码放进try语句块中。
       2.当程序检测到出现了一个错误时会抛出一个异常对象。异常处理代码会捕获并处理这个错误。
        catch语句块中的代码用于处理错误。
       3.当异常发生时,程序控制流程由try语句块跳转到catch语句块。
       4.不管是否有异常发生,finally语句块中的语句始终保证被执行。
       5.如果没有提供合适的异常处理代码,JVM将会结束掉整个应用程序。

2.

public class ThrowDemo {
    public static void main(String[] args) {
        try {
            double data = 100 / 0.0;
            System.out.println("浮点数除以零:" + data);
            if(String.valueOf(data).equals("Infinity"))
            {
                System.out.println("In Here" );
                throw new ArithmeticException("除零异常");
            }
        }
        catch(ArithmeticException e) {
            System.out.println(e);
        }
    }
}

  

 因为浮点数在除0时,他不是把他当做0而是看做是最小值,因此得出的结果为极大值。

   多态可以有多个catch语句块,每个代码块捕获一种异常。在某个try块后有两个不同的catch 块捕获两个相同类型的异常是语法错误。

使用catch语句,只能捕获Exception类及其子类的对象。因此,一个捕获Exception对象的catch语句块可以捕获所有“可捕获”的异常。
将catch(Exception e)放在别的catch块前面会使这些catch块都不执行,因此Java不会编译这个程序。

  资源泄露:当一个资源不再被某应用程序使用,但此程序并未向系统声明不再使用此资源时发生这种情况

finally语句块主要用于解决资源泄露问题,它位于catch语句块之后,JVM保证它们一定执行。
注意:finally语句块中也可能发生异常,如果这种情况发生,先前的异常被放弃。

二、遇到的问题

   没有遇到什么问题

三、明日计划

  明天继续学习

原文地址:https://www.cnblogs.com/wmdww/p/14150045.html