乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      數(shù)據(jù)倉(cāng)庫(kù)組件:Hive環(huán)境搭建和基礎(chǔ)用法

       Coder編程 2022-02-16

      本文源碼:GitHub || GitEE

      一、Hive基礎(chǔ)簡(jiǎn)介

      1、基礎(chǔ)描述

      Hive是基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,用來(lái)進(jìn)行數(shù)據(jù)提取、轉(zhuǎn)化、加載,是一個(gè)可以對(duì)Hadoop中的大規(guī)模存儲(chǔ)的數(shù)據(jù)進(jìn)行查詢和分析存儲(chǔ)的組件,Hive數(shù)據(jù)倉(cāng)庫(kù)工具能將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫(kù)表,并提供SQL查詢功能,能將SQL語(yǔ)句轉(zhuǎn)變成MapReduce任務(wù)來(lái)執(zhí)行,使用成本低,可以通過(guò)類似SQL語(yǔ)句實(shí)現(xiàn)快速M(fèi)apReduce統(tǒng)計(jì),使MapReduce變得更加簡(jiǎn)單,而不必開發(fā)專門的MapReduce應(yīng)用程序。hive十分適合對(duì)數(shù)據(jù)倉(cāng)庫(kù)進(jìn)行統(tǒng)計(jì)分析。

      2、組成與架構(gòu)

      用戶接口:ClientCLI、JDBC訪問Hive、WEBUI瀏覽器訪問Hive。

      元數(shù)據(jù):Hive將元數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中,如mysql、derby。Hive中的元數(shù)據(jù)包括表的名字,表的列和分區(qū)以及屬性,表的屬性(是否為外部表等),表的數(shù)據(jù)所在目錄等。

      驅(qū)動(dòng)器:基于解釋器、編輯器、優(yōu)化器完成HQL查詢語(yǔ)句從詞法分析、語(yǔ)法分析、編譯、優(yōu)化以及查詢計(jì)劃的生成。

      執(zhí)行器引擎:ExecutionEngine把邏輯執(zhí)行計(jì)劃轉(zhuǎn)換成可以運(yùn)行的物理計(jì)劃。

      Hadoop底層:基于HDFS進(jìn)行存儲(chǔ),使用MapReduce進(jìn)行計(jì)算,基于Yarn的調(diào)度機(jī)制。

      Hive收到給客戶端發(fā)送的交互請(qǐng)求,接收到操作指令(SQL),并將指令翻譯成MapReduce,提交到Hadoop中執(zhí)行,最后將執(zhí)行結(jié)果輸出到客戶端。

      二、Hive環(huán)境安裝

      1、準(zhǔn)備安裝包

      hive-1.2,依賴Hadoop集群環(huán)境,位置放在hop01服務(wù)上。

      2、解壓重命名

      tar -zxvf apache-hive-1.2.1-bin.tar.gz
      mv apache-hive-1.2.1-bin/ hive1.2
      

      3、修改配置文件

      創(chuàng)建配置文件

      [root@hop01 conf]# pwd
      /opt/hive1.2/conf
      [root@hop01 conf]# mv hive-env.sh.template hive-env.sh
      

      添加內(nèi)容

      [root@hop01 conf]# vim hive-env.sh
      export HADOOP_HOME=/opt/hadoop2.7
      export HIVE_CONF_DIR=/opt/hive1.2/conf
      

      配置內(nèi)容一個(gè)是Hadoop路徑,和hive配置文件路徑。

      4、Hadoop配置

      首先啟動(dòng)hdfs和yarn;然后在HDFS上創(chuàng)建/tmp和/user/hive/warehouse兩個(gè)目錄并修改賦予權(quán)限。

      bin/hadoop fs -mkdir /tmp
      bin/hadoop fs -mkdir -p /user/hive/warehouse
      bin/hadoop fs -chmod g+w /tmp
      bin/hadoop fs -chmod g+w /user/hive/warehouse
      

      5、啟動(dòng)Hive

      [root@hop01 hive1.2]# bin/hive
      

      6、基礎(chǔ)操作

      查看數(shù)據(jù)庫(kù)

      hive> show databases ;
      

      選擇數(shù)據(jù)庫(kù)

      hive> use default;
      

      查看數(shù)據(jù)表

      hive> show tables;
      

      創(chuàng)建數(shù)據(jù)庫(kù)使用

      hive> create database mytestdb;
      hive> show databases ;
      default
      mytestdb
      hive> use mytestdb;
      

      創(chuàng)建表

      create table hv_user (id int, name string, age int);
      

      查看表結(jié)構(gòu)

      hive> desc hv_user;
      id                  	int                 	                    
      name                	string              	                    
      age                 	int 
      

      添加表數(shù)據(jù)

      insert into hv_user values (1, "test-user", 23);
      

      查詢表數(shù)據(jù)

      hive> select * from hv_user ;
      

      注意:這里通過(guò)對(duì)查詢?nèi)罩镜挠^察,明顯看出Hive執(zhí)行的流程。

      刪除表

      hive> drop table hv_user ;
      

      退出Hive

      hive> quit;
      

      查看Hadoop目錄

      # hadoop fs -ls /user/hive/warehouse       
      /user/hive/warehouse/mytestdb.db
      

      通過(guò)Hive創(chuàng)建的數(shù)據(jù)庫(kù)和數(shù)據(jù)存儲(chǔ)在HDFS上。

      三、整合MySQL5.7環(huán)境

      這里默認(rèn)安裝好MySQL5.7的版本,并配置好相關(guān)登錄賬號(hào),配置root用戶的Host為%模式。

      1、上傳MySQL驅(qū)動(dòng)包

      將MySQL驅(qū)動(dòng)依賴包上傳到hive安裝目錄的lib目錄下。

      [root@hop01 lib]# pwd
      /opt/hive1.2/lib
      [root@hop01 lib]# ll
      mysql-connector-java-5.1.27-bin.jar
      

      2、創(chuàng)建hive-site配置

      [root@hop01 conf]# pwd
      /opt/hive1.2/conf
      [root@hop01 conf]# touch hive-site.xml
      [root@hop01 conf]# vim hive-site.xml
      

      3、配置MySQL存儲(chǔ)

      <?xml version="1.0"?>
      <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
      <configuration>
              <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://hop01:3306/metastore?createDatabaseIfNotExist=true</value>
                <description>JDBC connect string for a JDBC metastore</description>
              </property>
      
              <property>
                <name>javax.jdo.option.ConnectionDriverName</name>
                <value>com.mysql.jdbc.Driver</value>
                <description>Driver class name for a JDBC metastore</description>
              </property>
      
              <property>
                <name>javax.jdo.option.ConnectionUserName</name>
                <value>root</value>
                <description>username to use against metastore database</description>
              </property>
      
              <property>
                <name>javax.jdo.option.ConnectionPassword</name>
                <value>123456</value>
                <description>password to use against metastore database</description>
              </property>
      </configuration>
      

      配置完成后,依次重啟MySQL、hadoop、hive環(huán)境,查看MySQL數(shù)據(jù)庫(kù)信息,多了metastore數(shù)據(jù)庫(kù)和相關(guān)表。

      4、后臺(tái)啟動(dòng)hiveserver2

      [root@hop01 hive1.2]# bin/hiveserver2 &
      

      5、Jdbc連接測(cè)試

      [root@hop01 hive1.2]# bin/beeline
      Beeline version 1.2.1 by Apache Hive
      beeline> !connect jdbc:hive2://hop01:10000
      Connecting to jdbc:hive2://hop01:10000
      Enter username for jdbc:hive2://hop01:10000: hiveroot (賬戶回車)
      Enter password for jdbc:hive2://hop01:10000: ******   (密碼123456回車)
      Connected to: Apache Hive (version 1.2.1)
      Driver: Hive JDBC (version 1.2.1)
      0: jdbc:hive2://hop01:10000> show databases;
      +----------------+--+
      | database_name  |
      +----------------+--+
      | default        |
      +----------------+--+
      

      四、高級(jí)查詢語(yǔ)法

      1、基礎(chǔ)函數(shù)

      select count(*) count_user from hv_user;
      select sum(age) sum_age from hv_user;
      select min(age) min_age,max(age) max_age from hv_user;
      +----------+----------+--+
      | min_age  | max_age  |
      +----------+----------+--+
      | 23       | 25       |
      +----------+----------+--+
      

      2、條件查詢語(yǔ)句

      select * from hv_user where name='test-user' limit 1;
      +-------------+---------------+--------------+--+
      | hv_user.id  | hv_user.name  | hv_user.age  |
      +-------------+---------------+--------------+--+
      | 1           | test-user     | 23           |
      +-------------+---------------+--------------+--+
      
      select * from hv_user where id>1 AND name like 'dev%';
      +-------------+---------------+--------------+--+
      | hv_user.id  | hv_user.name  | hv_user.age  |
      +-------------+---------------+--------------+--+
      | 2           | dev-user      | 25           |
      +-------------+---------------+--------------+--+
      
      select count(*) count_name,name from hv_user group by name;
      +-------------+------------+--+
      | count_name  |    name    |
      +-------------+------------+--+
      | 1           | dev-user   |
      | 1           | test-user  |
      +-------------+------------+--+
      

      3、連接查詢

      select t1.*,t2.* from hv_user t1 join hv_dept t2 on t1.id=t2.dp_id;
      +--------+------------+---------+-----------+-------------+--+
      | t1.id  |  t1.name   | t1.age  | t2.dp_id  | t2.dp_name  |
      +--------+------------+---------+-----------+-------------+--+
      | 1      | test-user  | 23      | 1         | 技術(shù)部      |
      +--------+------------+---------+-----------+-------------+--+
      

      五、源代碼地址

      GitHub·地址
      https://github.com/cicadasmile/big-data-parent
      GitEE·地址
      https:///cicadasmile/big-data-parent
      

      推薦閱讀:編程體系整理

      序號(hào) 項(xiàng)目名稱 GitHub地址 GitEE地址 推薦指數(shù)
      01 Java描述設(shè)計(jì)模式,算法,數(shù)據(jù)結(jié)構(gòu) GitHub·點(diǎn)這里 GitEE·點(diǎn)這里 ☆☆☆☆☆
      02 Java基礎(chǔ)、并發(fā)、面向?qū)ο?、Web開發(fā) GitHub·點(diǎn)這里 GitEE·點(diǎn)這里 ☆☆☆☆
      03 SpringCloud微服務(wù)基礎(chǔ)組件案例詳解 GitHub·點(diǎn)這里 GitEE·點(diǎn)這里 ☆☆☆
      04 SpringCloud微服務(wù)架構(gòu)實(shí)戰(zhàn)綜合案例 GitHub·點(diǎn)這里 GitEE·點(diǎn)這里 ☆☆☆☆☆
      05 SpringBoot框架基礎(chǔ)應(yīng)用入門到進(jìn)階 GitHub·點(diǎn)這里 GitEE·點(diǎn)這里 ☆☆☆☆
      06 SpringBoot框架整合開發(fā)常用中間件 GitHub·點(diǎn)這里 GitEE·點(diǎn)這里 ☆☆☆☆☆
      07 數(shù)據(jù)管理、分布式、架構(gòu)設(shè)計(jì)基礎(chǔ)案例 GitHub·點(diǎn)這里 GitEE·點(diǎn)這里 ☆☆☆☆☆
      08 大數(shù)據(jù)系列、存儲(chǔ)、組件、計(jì)算等框架 GitHub·點(diǎn)這里 GitEE·點(diǎn)這里 ☆☆☆☆☆

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多