<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      附錄C 編譯安裝Hive

      如果需要直接安裝Hive,可以跳過編譯步驟,從Hive的官網(wǎng)下載編譯好的安裝包,下載地址為http://hive.apache.org/downloads.html 。

      C.1  編譯Hive

      C.1.1   下載Hive源代碼包

      Hive的官網(wǎng)下載頁面上下載,為加快下載速度選擇中國境內(nèi)的鏡像,并下載apache-hive-1.2.1-src.tar.gz源代碼包。下載后把安裝包方放在目錄/home/spark/work目錄下,用如下命令解壓縮hive安裝文件:

      $cd /home/spark/work/

      $tar -zxf apache-hive-1.2.1-src.tar.gz

      改名并移動(dòng)到/app/compile目錄下:

      $mv apache-hive-1.2.1-src /app/compile/hive-1.2.1-src

      $ll /app/compile/

      C.1.2   編譯Hive

      編譯Hive源代碼的時(shí)候,需要從網(wǎng)上下載依賴包,所以整個(gè)編譯過程機(jī)器必須保證在聯(lián)網(wǎng)狀態(tài)。編譯執(zhí)行如下腳本:

      $cd /app/compile/hive-1.2.1-src

      $export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"

      $mvn -Phadoop-2 -Pdist -DskipTests -Dmaven.javadoc.skip=true clean package

      在編譯過程中可能出現(xiàn)速度慢或者中斷,可以再次啟動(dòng)編譯,編譯程序會(huì)在上次的編譯中斷處繼續(xù)進(jìn)行編譯,整個(gè)編譯過程耗時(shí)與網(wǎng)速緊密相關(guān),網(wǎng)速較快的情況需要1個(gè)小時(shí)左右(下圖的時(shí)間是重復(fù)多次下載依賴包,然后編譯成功的界面),最終編譯打包的文件為$HIVE_HOME/packaging /target/apache-hive-1.2.1-bin.tar.gz

      clip_image002

      圖 附錄C?1 編譯Hive成功界面

      通過如下命令查看最終編譯完成整個(gè)目錄大小,可以看到大小為350M左右:

      $du -s /app/compile/hive-1.2.1-src

      clip_image004

      C.2  安裝Hive

      C.2.1   解壓縮并遷移

      使用上一步驟編譯好的Hive編譯包移動(dòng)到安裝目錄上,用如下命令解壓縮hive安裝文件:

      $cd /app/compile/hive-1.2.1-src/packaging/target/

      $mv apache-hive-1.2.1-bin.tar.gz /home/spark/work/

      $cd /home/spark/work/

      $tar -zxf hive-1.2.1-bin.tar.gz

      改名并遷移到/app/soft目錄下:

      $cd /app/spark

      $mv apache-hive-1.2.1-bin /app/spark/hive-1.2.1

      $ll /app/soft

      clip_image006

      圖 附錄C?2 Hive移動(dòng)到/app/soft目錄下

      C.2.2   下載MySql驅(qū)動(dòng)并放到Hivelib目錄下

      mysql官網(wǎng)進(jìn)入下載頁面http://dev.mysql.com/downloads/connector/j/,默認(rèn)情況下是Windows安裝包,這里需要選擇Platform Independent版本下載zip格式的文件

      clip_image008

      圖 附錄C?3 MySql驅(qū)動(dòng)下載界面

      把下載的hive安裝包和mysql驅(qū)動(dòng)包,使用如下命令放到Hivelib目錄下:

      $cd /home/spark/work

      $mv mysql-connector-java-5.1.34-bin.jar /app/soft/hive-1.2.1/lib

      C.2.3   配置/etc/profile環(huán)境變量

      使用如下命令打開/etc/profile文件,設(shè)置如下參數(shù):

      export HIVE_HOME=/app/soft/hive-1.2.1

      export PATH=$PATH:$HIVE_HOME/bin

      export CLASSPATH=$CLASSPATH:$HIVE_HOME/bin

      配置完畢后,需要編譯該配置文件或重新登錄以生效該配置:

      $source /etc/profile

      C.2.4   設(shè)置hive-env.sh配置文件

      進(jìn)入hive-1.2.1/conf目錄,復(fù)制hive-env.sh.templaetehive-env.sh并進(jìn)行配置:

      $cd /app/soft/hive-1.2.1/conf

      $cp hive-env.sh.template hive-env.sh

      $sudo vi hive-env.sh

      分別設(shè)置HADOOP_HOMEHIVE_CONF_DIR兩個(gè)值:

      # Set HADOOP_HOME to point to a specific hadoop install directory

      export HADOOP_HOME=/app/spark/hadoop-2.7.2

      # Hive Configuration Directory can be controlled by:

      export HIVE_CONF_DIR=/app/soft/hive-1.2.1/conf

      C.2.5   設(shè)置hive-site.xml配置文件

      創(chuàng)建hive-site.xml配置文件,在該配置文件中加入配置內(nèi)容

      $touch hive-site.xml

      $sudo vi hive-site.xml

      hive默認(rèn)為derby數(shù)據(jù)庫,derby數(shù)據(jù)只運(yùn)行單個(gè)用戶進(jìn)行連接,這里需要調(diào)整為mysql數(shù)據(jù)庫,以下為修改配置內(nèi)容:

      <?xml version="1.0" encoding="UTF-8" standalone="no"?>

      <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

      <configuration>

          <property>

              <name>javax.jdo.option.ConnectionURL</name>

              <value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExsit=true; characterEncoding=UTF-8</value>

          </property>

          <property>

              <name>javax.jdo.option.ConnectionDriverName</name>

              <value>com.mysql.jdbc.Driver</value>

          </property>

          <property>

              <name>javax.jdo.option.ConnectionUserName</name>

              <value>hive</value>

          </property>

          <property>

              <name>javax.jdo.option.ConnectionPassword</name>

              <value>hive</value>

          </property>

          <property>

              <name>datanucleus.readOnlyDatastore</name>

              <value>false</value>

          </property>

          <property>

              <name>datanucleus.fixedDatastore</name>

              <value>false</value>

          </property>

          <property>

              <name>datanucleus.autoCreateSchema</name>

              <value>true</value>

          </property>

          <property>

              <name>datanucleus.autoCreateTables</name>

              <value>true</value>

          </property>

          <property>

              <name>datanucleus.autoCreateColumns</name>

              <value>true</value>

          </property>

      </configuration>

      C.3  啟動(dòng)Hive并驗(yàn)證

      C.3.1   啟動(dòng)Hive

      實(shí)際使用時(shí),一般通過后臺(tái)啟動(dòng)metastorehiveserver實(shí)現(xiàn)服務(wù),命令如下:

      $hive --service metastore &

      $hive --service hiveserver2 &

      clip_image010

      圖 附錄C?4 Hive啟動(dòng)后臺(tái)服務(wù)

      啟動(dòng)用通過jps命令可以看到兩個(gè)進(jìn)行運(yùn)行在后臺(tái)

      C.3.2   驗(yàn)證安裝

      登錄hive,在hive創(chuàng)建表并查看該表,命令如下:

      $hive

      hive> create table test(a string, b int);

      hive> show tables;

      hive> desc test;

      clip_image012

      圖 附錄C?5 Hive中創(chuàng)建測(cè)試表

      登錄mysql,在TBLS表中查看新增test表:

      $mysql -uhive -phive

      mysql> use hive;

      mysql> select TBL_ID, CREATE_TIME, DB_ID, OWNER, TBL_NAME,TBL_TYPE from TBLS;

      clip_image014

      圖 附錄C?6 Hive元數(shù)據(jù)表查詢到創(chuàng)建表

      C.4  Hive實(shí)例演示

      C.4.1   準(zhǔn)備數(shù)據(jù)

      第一步   上傳數(shù)據(jù)

      交易數(shù)據(jù)存放在該系列配套資源的/saledata目錄下,把這些數(shù)據(jù)文件上傳到master節(jié)點(diǎn)的/home/spark/word目錄下。

      第二步   啟動(dòng)Hive并胡藏劍數(shù)據(jù)庫

      啟動(dòng)HDFS、YARNHive,啟動(dòng)完畢后創(chuàng)建Hive數(shù)據(jù)庫

      $hive --service metastore &

      $hive

      hive> create database hive;

      hive> show databases;

      hive> use hive;

      第一步   Hive創(chuàng)建和表

      啟動(dòng)Hadoop集群,進(jìn)入Hive命令行操作界面,使用如下命令創(chuàng)建三張數(shù)據(jù)表:

      l  tbDate定義了日期的分類,將每天分別賦予所屬的月份、星期、季度等屬性,字段分別為日期、年月、年、月、日、周幾、第幾周、季度、旬、半月;

      l  tbStock定義了訂單表頭,字段分別為訂單號(hào)、交易位置、交易日期;

      l  tbStockDetail文件定義了訂單明細(xì),該表和tbStock以交易號(hào)進(jìn)行關(guān)聯(lián),字段分別為訂單號(hào)、行號(hào)、貨品、數(shù)量、金額

      hive> CREATE TABLE tbDate(dateID string,theyearmonth string,theyear string,themonth string,thedate string,theweek string,theweeks string,thequot string,thetenday string,thehalfmonth string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' ;

      Time taken: 1.121 seconds

       

      hive> CREATE TABLE tbStock(ordernumber STRING,locationid string,dateID string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' ;

      Time taken: 0.166 seconds

       

      hive> CREATE TABLE tbStockDetail(ordernumber STRING,rownum int,itemid string,qty int,price int ,amount int) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' ;

      Time taken: 0.267 seconds

       

      hive> show tables;

      OK

      tbdate

      tbstock

      tbstockdetail

      Time taken: 0.089 seconds, Fetched: 3 row(s)

      第二步   導(dǎo)入數(shù)據(jù)

      從本地操作系統(tǒng)分別加載日期、交易信息和交易詳細(xì)信息表數(shù)據(jù)

      hive> LOAD DATA LOCAL INPATH '/home/spark/work/saledata/tbDate.txt' INTO TABLE tbDate;

      Loading data to table hive.tbdate

      OK

      Time taken: 2.784 seconds

       

      hive> LOAD DATA LOCAL INPATH '/home/spark/work/saledata/tbStock.txt' INTO TABLE tbStock;

      Loading data to table hive.tbstock

      OK

      Time taken: 0.648 seconds

       

      hive> LOAD DATA LOCAL INPATH '/home/spark/work/saledata/tbStockDetail.txt' INTO TABLE tbStockDetail;

      Loading data to table hive.tbstockdetail

      OK

      Time taken: 1.44 seconds

      查看HDFS中相關(guān)SALEDATA數(shù)據(jù)庫中增加了三個(gè)文件夾,分別對(duì)應(yīng)三個(gè)表:

      [spark@master ~]$ hadoop fs -ls /user/hive/warehouse/hive.db

      Found 3 items

      drwxr-xr-x - spark supergroup 0 2016-04-14 15:18 /user/hive/warehouse/hive.db/tbdate

      drwxr-xr-x - spark supergroup 0 2016-04-14 15:18 /user/hive/warehouse/hive.db/tbstock

      drwxr-xr-x - spark supergroup 0 2016-04-14 15:18 /user/hive/warehouse/hive.db/tbstockdetail

      C.4.2   計(jì)算所有訂單每年的總金額

      第一步   算法分析

      要計(jì)算所有訂單每年的總金額,首先需要獲取所有訂單的訂單號(hào)、訂單日期和訂單金信息,然后把這些信息和日期表進(jìn)行關(guān)聯(lián),獲取年份信息,最后根據(jù)這四個(gè)列按年份歸組統(tǒng)計(jì)獲取所有訂單每年的總金額。

      第二步   執(zhí)行HSQL語句

      hive> use hive;

      hive> select c.theyear, sum(b.amount) from tbStock a,tbStockDetail b,tbDate c where a.ordernumber=b.ordernumber and a.dateid=c.dateid group by c.theyear order by c.theyear;

      運(yùn)行過程中創(chuàng)建兩個(gè)Job,分別為application_1460617800545_0001application_1460617800545_000,在YARN的資源管理器界面中(默認(rèn)http://master:8088/),可以看到如下界面:

      clip_image016

      圖 附錄C?7 YARN監(jiān)控界面作業(yè)運(yùn)行狀態(tài)

      第三步   查看結(jié)果

      整個(gè)計(jì)算過程使用了175.25秒,結(jié)果如下:

      clip_image018

      圖 附錄C?8 計(jì)算所有訂單每年的總金額結(jié)果

      C.4.3   計(jì)算所有訂單每年最大金額訂單的銷售額

      第一步   算法分析

      該算法分為兩步:

      1.     按照日期和訂單號(hào)進(jìn)行歸組計(jì)算,獲取所有訂單每天的銷售數(shù)據(jù);

      2.      把第一步獲取的數(shù)據(jù)和日期表進(jìn)行關(guān)聯(lián)獲取的年份信息,然后按照年份進(jìn)行歸組,使用Max函數(shù),獲取所有訂單每年最大金額訂單的銷售額。

      第二步   執(zhí)行HSQL語句

      //第一步:按照日期和訂單號(hào)進(jìn)行歸組計(jì)算,獲取所有訂單每天的銷售數(shù)據(jù)

      hive> select a.dateid,a.ordernumber,sum(b.amount) as sumofamount from tbStock a,tbStockDetail b where a.ordernumber=b.ordernumber group by a.dateid,a.ordernumber;

       

      //第二步: 按照年份進(jìn)行歸組,使用Max函數(shù),獲取所有訂單每年最大金額訂單的銷售額

      hive> select c.theyear,max(d.sumofamount) from tbDate c,(select a.dateid,a.ordernumber,sum(b.amount) as sumofamount from tbStock a,tbStockDetail b where a.ordernumber=b.ordernumber group by a.dateid,a.ordernumber) d  where c.dateid=d.dateid group by c.theyear sort by c.theyear;

      運(yùn)行過程中創(chuàng)建兩個(gè)Job,分別為job_1437659442092_0004job_1437659442092_0005,在YARN的監(jiān)控界面中可以看到如下界面:

      clip_image020

      圖 附錄C?9YARN監(jiān)控界面作業(yè)運(yùn)行狀態(tài)

      第三步   查看結(jié)果

      整個(gè)計(jì)算過程使用了171.41秒,結(jié)果如下:

      clip_image022

      圖 附錄C?10 查看所有訂單每年最大金額訂單的銷售額結(jié)果

      C.4.4   計(jì)算其他金額

      1.     所有訂單中季度銷售額前10

      //所有訂單中季度銷售額前10

      hive> select c.theyear,c.thequot,sum(b.amount) as sumofamount from tbStock a,tbStockDetail b,tbDate c where a.ordernumber=b.ordernumber and a.dateid=c.dateid group by c.theyear,c.thequot order by sumofamount desc limit 10;

      2008      1     5252819

      2007      4     4613093

      2007      1     4446088

      2006      1     3916638

      2008      2     3886470

      2007      3     3870558

      2007      2     3782235

      2006      4     3691314

      2005      1     3592007

      2005      3     3304243

      clip_image024

      圖 附錄C?11所有訂單中季度銷售額前10位結(jié)果

      2.     列出銷售金額在100000以上的單據(jù)

      //列出銷售金額在100000以上的單據(jù)

      hive> select a.ordernumber,sum(b.amount) as sumofamount from tbStock a,tbStockDetail b where a.ordernumber=b.ordernumber group by a.ordernumber having sumofamount>100000;

      HMJSL00009024   119058

      HMJSL00009958   159126

      clip_image026

      圖 附錄C?12 列出銷售金額在100000以上的單據(jù)

      posted @ 2016-12-19 08:56  shishanyuan  閱讀(1522)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 好紧好爽好湿别拔出来视频男男| 国产无套精品一区二区| 亚洲一区二区精品另类| 巨熟乳波霸若妻在线播放| 日本一道一区二区视频| 老熟妇高潮一区二区三区| 日本不卡码一区二区三区| 国产综合色在线精品| 草草浮力影院| 免费国产拍久久受拍久久| 国产成人高清精品亚洲一区| 又大又粗又硬又爽黄毛少妇| 亚洲人成网站77777在线观看| 97久久精品人人澡人人爽| 日韩在线观看中文字幕| 亚洲日韩精品无码一区二区三区| 国产精品护士| 免费国产va在线观看| 国产精品亚洲二区在线看| 久9re热视频这里只有精品免费| 18岁日韩内射颜射午夜久久成人| 精品国产一区二区三区香| 日本免费人成视频在线观看| 成人免费A级毛片无码片2022| 亚洲女同性同志熟女| 精品无码成人片一区二区| 丰满大爆乳波霸奶| 无人区码一码二码三码区| 久久久久免费看成人影片| 免费看成人欧美片爱潮app| 亚洲av成人一区二区| 人人人澡人人肉久久精品| 晋城| 不卡无码人妻一区三区音频| 92精品国产自产在线观看481页 | 国语精品自产拍在线观看网站| 芷江| 久久久久久久久久久免费精品| 成人又黄又爽又色的视频 | 亚洲熟妇无码av另类vr影视| 亚洲精品男男一区二区|