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

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

    • 分享

      Hive數(shù)據(jù)倉庫工具

       夜貓速讀 2022-06-17 發(fā)布于湖北

      一、Hive的概述;

      二、Hive的體系架構(gòu);

      三、探討Hadoop全家(生態(tài)圈);

      四、Hive與傳統(tǒng)數(shù)據(jù)庫相比;

      五、Hive的數(shù)據(jù)模型(自主學(xué)習(xí));

      六、搭建Haoop 2.7.6結(jié)合hive2.3.3實(shí)現(xiàn)數(shù)據(jù)倉庫管理;

      一、Hive的概述;

      背景:Hive起源于Facebook(一個(gè)美國(guó)的社交服務(wù)網(wǎng)絡(luò))。Facebook有著大量的數(shù)據(jù),而Hadoop是一個(gè)開源的MapReduce實(shí)現(xiàn),可以輕松處理大量的數(shù)據(jù)。但是MapReduce程序?qū)τ贘ava程序員來說比較容易寫,但是對(duì)于其他語言使用者來說不太方便。此時(shí)Facebook最早地開始研發(fā)Hive,它讓對(duì)Hadoop使用SQL查詢(實(shí)際上SQL后臺(tái)轉(zhuǎn)化為了MapReduce)成為可能,那些非Java程序員也可以更方便地使用。hive最早的目的也就是為了分析處理海量的日志;

      概述:hive是基于Hadoop的一個(gè)數(shù)據(jù)倉庫工具,可以將結(jié)構(gòu)化的數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,并提供簡(jiǎn)單的sql查詢功能, Hadoop 通常都有較高的延遲并且在作業(yè)提交和調(diào)度的時(shí)候需要大量的開銷。因此Hive并不能夠在大規(guī)模數(shù)據(jù)集上實(shí)現(xiàn)低延遲快速的查詢,例如,Hive 在幾百M(fèi)B 的數(shù)據(jù)集上執(zhí)行查詢一般有分鐘級(jí)的時(shí)間延遲;

        Hive可以將sql語句轉(zhuǎn)換為MapReduce任務(wù)進(jìn)行運(yùn)行。其優(yōu)點(diǎn)是學(xué)習(xí)成本低,可以通過類SQL語句快速實(shí)現(xiàn)簡(jiǎn)單的MapReduce統(tǒng)計(jì),不必開發(fā)專門的MapReduce應(yīng)用,十分適合數(shù)據(jù)倉庫的統(tǒng)計(jì)分析;

      二、Hive的體系架構(gòu);

      體系架構(gòu):

      1.用戶接口主要有三個(gè):CLI,Client 和 WUI。其中最常用的是CLI,Cli啟動(dòng)的時(shí)候,會(huì)同時(shí)啟動(dòng)一個(gè)Hive副本。Client是Hive的客戶端,用戶連接至Hive Server。在啟動(dòng) Client模式的時(shí)候,需要指出Hive Server所在節(jié)點(diǎn),并且在該節(jié)點(diǎn)啟動(dòng)Hive Server。WUI是通過瀏覽器訪問Hive;
      2.Hive將元數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫中,如mysql、derby。Hive中的元數(shù)據(jù)包括表的名字,表的列和分區(qū)及其屬性,表的屬性(是否為外部表等),表的數(shù)據(jù)所在目錄等;
      3.解釋器、編譯器、優(yōu)化器完成HQL查詢語句從詞法分析、語法分析、編譯、優(yōu)化以及查詢計(jì)劃的生成。生成的查詢計(jì)劃存儲(chǔ)在HDFS中,并在隨后有MapReduce調(diào)用執(zhí)行;
      4.Hive的數(shù)據(jù)存儲(chǔ)在HDFS中,大部分的查詢、計(jì)算由MapReduce完成;

      Hive執(zhí)行請(qǐng)求的流程:

      三、探討Hadoop全家(生態(tài)圈);

      https://www.sohu.com/a/218420440_505794                            ##Hadoop全家

      https://www.cnblogs.com/zhangwuji/p/7594725.html              ##Hadoop發(fā)展史

      四、Hive與傳統(tǒng)數(shù)據(jù)庫相比;

       由于Hive采用了SQL的查詢語言HQL,因此很容易將Hive理解為數(shù)據(jù)庫。其實(shí)從結(jié)構(gòu)上來看,Hive和數(shù)據(jù)庫除了擁有類似的查詢語言,再無類似之處。數(shù)據(jù)庫可以用在Online的應(yīng)用中,但是Hive是為數(shù)據(jù)倉庫而設(shè)計(jì)的,清楚這一點(diǎn),有助于從應(yīng)用角度理解Hive的特性;

      五、Hive的數(shù)據(jù)模型(自主學(xué)習(xí));

      概述:對(duì)于數(shù)據(jù)存儲(chǔ),Hive沒有專門的數(shù)據(jù)存儲(chǔ)格式,也沒有為數(shù)據(jù)建立索引,用戶可以非常自由的組織Hive中的表,只需要在創(chuàng)建表的時(shí)候告訴Hive數(shù)據(jù)中的列分隔符和行分隔符,Hive就可以解析數(shù)據(jù)。Hive中所有的數(shù)據(jù)都存儲(chǔ)在HDFS中,存儲(chǔ)結(jié)構(gòu)主要包括數(shù)據(jù)庫、文件、表和視圖。Hive中包含以下數(shù)據(jù)模型:Table內(nèi)部表、External Table外部表、Partition分區(qū)、Bucket桶。自行百度Hive的數(shù)據(jù)模型;

      六、搭建Haoop 2.7.6結(jié)合hive2.3.3實(shí)現(xiàn)數(shù)據(jù)倉庫管理;

      案例環(huán)境:

      系統(tǒng)類型

      IP地址

      主機(jī)名、角色

      所需軟件

      Centos 7.4 1708 64bit

      192.168.100.101

      master

      hadoop:namenode

      hive

      hadoop-2.7.6.tar.gz 

      jdk-8u171-linux-x64.tar.gz

      apache-hive-2.3.3-bin.tar.gz

      Centos 7.4 1708 64bit

      192.168.100.102

      slave1

      hadoop:datanode

      hadoop-2.7.6.tar.gz 

      jdk-8u171-linux-x64.tar.gz

      Centos 7.4 1708 64bit

      192.168.100.103

      slave2

      hadoop:datanode

      hadoop-2.7.6.tar.gz 

      jdk-8u171-linux-x64.tar.gz

      案例步驟:

      ?安裝hive軟件程序;

      ?準(zhǔn)備hive的元數(shù)據(jù)存儲(chǔ)位置Mysql數(shù)據(jù)庫;

      ?準(zhǔn)備hive服務(wù)需要存儲(chǔ)文件的目錄;

      ?配置hive的配置文件;

      ?配置hive服務(wù)連接mysql數(shù)據(jù)庫的驅(qū)動(dòng);

      ?初始化hive連接mysql數(shù)據(jù)庫;

      ?啟動(dòng)并連接hive服務(wù);

      ?學(xué)習(xí)hive中的管理操作;

      ?將文件內(nèi)容導(dǎo)入到hive的表中;

      ?通過web頁面查看HDFS文件系統(tǒng)中的數(shù)據(jù);

      ?通過mysql管理控制臺(tái)驗(yàn)證mysql中存儲(chǔ)的hive的元數(shù)據(jù);

      ?安裝hive軟件程序;

      [root@master ~]# ls /root/apache-hive-2.3.3-bin.tar.gz

      /root/apache-hive-2.3.3-bin.tar.gz

      [root@master ~]# tar zxvf /root/apache-hive-2.3.3-bin.tar.gz

      [root@master ~]# mv apache-hive-2.3.3-bin/ /usr/local/hive

      [root@master ~]# chown hadoop:hadoop /usr/local/hive/ -R

      [root@master ~]# vi /etc/profile

      export HIVE_HOME=/usr/local/hive

      export PATH=$PATH:$HIVE_HOME/bin

      export CLASSPATH=$CLASSPATH:/usr/local/hive/lib/*:.

      [root@master ~]# source /etc/profile

      ?準(zhǔn)備hive的元數(shù)據(jù)存儲(chǔ)位置Mysql數(shù)據(jù)庫;

      [root@master ~]# yum -y install mariadb-server mariadb

      [root@master ~]# sed -i 's/\[mysqld\]/\[mysqld\]\nskip_name_resolve/g' /etc/my.cnf

      ##注:需要關(guān)閉mysql服務(wù)器的反向解析,不然會(huì)在初始化myssql數(shù)據(jù)庫時(shí)出現(xiàn)反向解析情況,無法初始化

      [root@master ~]# systemctl start mariadb

      [root@master ~]# systemctl enable mariadb

      Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

      [root@master ~]# mysqladmin -uroot password

      [root@master ~]# mysql -uroot -p123123

      MariaDB [(none)]> grant all on *.* to root@'192.168.100.101' identified by '123123';

      MariaDB [(none)]> flush privileges;

      MariaDB [(none)]> exit

      ?準(zhǔn)備hive服務(wù)需要存儲(chǔ)文件的目錄;

      [root@master ~]# su - hadoop

      [hadoop@master ~]$ hadoop   fs   -mkdir   -p   /user/hive/warehouse

      [hadoop@master ~]$ hadoop   fs   -chmod   777   /user/hive/warehouse

      [hadoop@master ~]$ hadoop   fs   -mkdir  -p   /tmp/hive/

      [hadoop@master ~]$ hadoop   fs   -chmod  777   /tmp/hive

      [hadoop@master ~]$ hadoop   fs   -ls /

      Found 2 items

      drwxr-xr-x   - hadoop supergroup          0 2018-08-27 20:51 /tmp

      drwxr-xr-x   - hadoop supergroup          0 2018-08-27 20:51 /user

      [hadoop@master ~]$ mkdir /usr/local/hive/tmp

      [hadoop@master ~]$ mkdir /usr/local/hive/tmp/root

      ?配置hive的配置文件;

      [hadoop@master ~]$ cp /usr/local/hive/conf/hive-default.xml.template /usr/local/hive/conf/hive-site.xml

      [hadoop@master ~]$ mv /usr/local/hive/conf/hive-env.sh.template /usr/local/hive/conf/hive-env.sh

      [hadoop@master ~]$ vi /usr/local/hive/conf/hive-site.xml

       364  

       365     hive.metastore.warehouse.dir

       366     /user/hive/warehouse

       367     指定hdfs上存放hive的實(shí)體數(shù)據(jù)位置

       368  

        37  

        38     hive.exec.scratchdir

        39     /tmp/hive

        40     指定hdfs上存儲(chǔ)hive的臨時(shí)文件的位置

        41  

        73  

        74     hive.exec.local.scratchdir

        75     /usr/local/hive/tmp/root/

        76     指定hive本地服務(wù)器的本地目錄

        77  

        78  

        79     hive.downloaded.resources.dir

        80     /usr/local/hive/tmp/${hive.session.id}_resources

        81     指定hive本地服務(wù)器的session會(huì)話文件的存儲(chǔ)位置

        82  

      1683  

      1684     hive.querylog.location

      1685     /usr/local/hive/tmp/root/

      1686     指定hive本地服務(wù)器的日志文件存放位置

      1687  

      3974  

      3975     hive.server2.logging.operation.log.location

      3976     /usr/local/hive/tmp/root/operation_logs

      3977     指定hive本地服務(wù)器的日志文件存放位置

      3978  

       543  

       544     javax.jdo.option.ConnectionURL

       545     jdbc:mysql://192.168.100.101:3306/hive?createDatabaseIfNotExist=true

       546     指定hive的元數(shù)據(jù)所存儲(chǔ)的mysql的ip、端口、數(shù)據(jù)庫名

       550    

       551  

      1018  

      1019     javax.jdo.option.ConnectionDriverName

      1020     com.mysql.jdbc.Driver

      1021     指定連接mysql數(shù)據(jù)庫的驅(qū)動(dòng)類型

      1022  

      1043  

      1044     javax.jdo.option.ConnectionUserName

      1045     root

      1046     指定連接mysql數(shù)據(jù)庫的用戶名

      1047  

       528  

       529     javax.jdo.option.ConnectionPassword

       530     123123

       531     指定連接mysql數(shù)據(jù)庫的密碼

       532  

      744  

       745     hive.metastore.schema.verification

       746     false

       747     關(guān)閉元數(shù)據(jù)的文件檢查

       753    

       754  

      :wq

      [hadoop@master ~]$ vi /usr/local/hive/conf/hive-env.sh                     ##設(shè)置hive的環(huán)境變量

      export  HADOOP_HOME=/usr/local/hadoop

      export  HIVE_CONF_DIR=/usr/local/hive/conf

      export  HIVE_AUX_JARS_PATH=/usr/local/hive/lib

      :wq

      ?配置hive服務(wù)連接mysql數(shù)據(jù)庫的驅(qū)動(dòng);

      [hadoop@master ~]$ wget https://cdn.//Downloads/Connector-J/mysql-connector-java-5.1.46.tar.gz

      [hadoop@master ~]$ ls mysql-connector-java-5.1.46.tar.gz

      mysql-connector-java-5.1.46.tar.gz

      [hadoop@master ~]$ tar zxvf  mysql-connector-java-5.1.46.tar.gz

      [hadoop@master ~]$ cp /home/hadoop/mysql-connector-java-5.1.46/mysql-connector-java-5.1.46.jar /usr/local/hive/lib/

      [hadoop@master ~]$ ls /usr/local/hive/lib/mysql-connector-java-5.1.46.jar

      /usr/local/hive/lib/mysql-connector-java-5.1.46.jar

      ?初始化hive連接mysql數(shù)據(jù)庫;

      [hadoop@master ~]$ /usr/local/hive/bin/schematool -dbType mysql -initSchema

      ?啟動(dòng)并連接hive服務(wù);

      [hadoop@master ~]$ hive

      hive> show databases;

      OK

      default

      Time taken: 4.695 seconds, Fetched: 1 row(s)

      ?學(xué)習(xí)hive中的管理操作;

      hive> show functions;                                                        ##查看可用函數(shù)

      OK

      !

      !=

      $sum0

      %

      &

      *

      +

      -

      /

      <

      <=

      ...

      hive> desc function sum;                                                 ##查看函數(shù)詳細(xì)信息

      OK

      sum(x) - Returns the sum of a set of numbers

      Time taken: 0.006 seconds, Fetched: 1 row(s)

      hive> create database linuxfan;                                          ##創(chuàng)建數(shù)據(jù)庫linuxfan

      OK

      Time taken: 0.282 seconds

      hive> show databases;                                         

      OK

      default

      linuxfan

      Time taken: 0.023 seconds, Fetched: 2 row(s)

      hive> use linuxfan;

      OK

      Time taken: 0.025 seconds

      hive> create table t1(id int,name string) row format delimited fields terminated by '\t';

      ##創(chuàng)建表并且指定字段id和字段name之間的分隔使用\t制表符;

      OK

      Time taken: 0.581 seconds

      hive> show tables;

      OK

      t1

      Time taken: 0.042 seconds, Fetched: 1 row(s)

      hive> exit;

      ?將文件內(nèi)容導(dǎo)入到hive的表中;

      [hadoop@master ~]$vi ./1.txt                                          ##001和zs之間必須手動(dòng)敲tab鍵,不得復(fù)制粘貼

      001       zs

      002       ls

      003       ww

      004       xm

      [hadoop@master ~]$ hive

      hive> load   data  local   inpath   '/home/hadoop/1.txt'   into   table  linuxfan.t1;

      Loading data to table linuxfan.t1;

      OK

      Time taken: 6.277 seconds

      hive> select * from linuxfan.t1;

      OK

      1       zs

      2       ls

      3       ww

      4       xm

      Time taken: 1.861 seconds, Fetched: 4 row(s)

      hive> exit;

      ?通過web頁面查看HDFS文件系統(tǒng)中的數(shù)據(jù);

      ?通過mysql管理控制臺(tái)驗(yàn)證mysql中存儲(chǔ)的hive的元數(shù)據(jù);

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

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

        類似文章 更多