Hive源碼學(xué)習(xí)——本地環(huán)境搭建

由于自己想知道HiveSQL編譯成MapReduce的具體過程烦周,在面試中也有面試官問到了這個問題,所以準(zhǔn)備花一段時間看一下底層對應(yīng)的源碼。
我使用的是hive版本2.3.7搀绣,hadoop版本2.8.5

源碼編譯

首先使用git clone hive源碼

git clone https://github.com/apache/hive.git

根據(jù)自己的環(huán)境配置選擇相應(yīng)的分支

查看所有分支 :git branch -a 
查看當(dāng)前使用分支: git branch 
切換分支 :git checkout 分支名

或者下載hive的包栋艳,我下載的是hive-2.3.7的包:

https://codeload.github.com/apache/hive/tar.gz/refs/tags/rel/release-2.3.7

切換到hive源碼的根目錄恰聘,然后輸入以下命令

mvn clean package -DskipTests -Phadoop-2 -Pdist #跳過測試 
mvn clean package -Pdist -DskipTests #如果顯示Hadoop依賴問題報錯則可以去掉Hadoop項 
mvn clean package -DskipTests -Dmaven.javadoc.skip=true #跳過文檔生成

編譯成功的界面如下:


image.jpeg

可能遇到的問題:

1.pentaho-aggdesigner-algorithm:jar缺失

image.jpeg

根本原因是阿里云鏡像jar包索引不明,按照其他方法提供的更改POM文件中spring鏡像倉庫依然無法下載jar包吸占,可以手動下載安裝晴叨,也可以嘗試將還原maven默認(rèn)的倉庫地址

mvn install:install-file -DgroupId=org.pentaho -DartifactId=pentaho-aggdesigner-algorithm -Dversion=5.1.5-jhyde -Dpackaging=jar -Dfile=pentaho-aggdesigner-algorithm-5.1.5-jhyde.jar(jar絕對路徑)

2.Java環(huán)境問題

在命令行我輸入java命令是正常執(zhí)行的,輸入echo $JAVA_HOME也是可以正確輸出JAVA_HOME路徑矾屯,但是執(zhí)行編譯命令一直報錯JAVA_HOME沒有正確設(shè)置


image.jpeg

可以在命令行顯式的設(shè)置JAVA_HOME,我的是Mac,Windows填寫自己配置的路徑即可

set  JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_311.jdk/Contents/Home

打包成功以后兼蕊,在/hive-rel-release-2.3.7/packaging/target可以找到編譯好的hive包


image.jpeg

環(huán)境準(zhǔn)備

Hadoop環(huán)境以及MySQL

由于Hive運(yùn)行依賴Hdfs存儲真實數(shù)據(jù)和MySQL存儲元數(shù)據(jù)(模擬生產(chǎn)場景,不使用默認(rèn)的derby)

在這里不再復(fù)述相關(guān)環(huán)境的搭建與配置件蚕,默認(rèn)Hadoop和MySQL已經(jīng)配置好了

Hive環(huán)境配置

使用命令生成hive-site.xml文件

cp hive-default.xml.template hive-site.xml
vim hive-site.xml
<!-- 需要修改的配置如下:-->
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:MySQL://localhost1:3306/hive?useSSL=false&amp;characterEncoding=UTF-8</value>
    <description>
      JDBC connect string for a JDBC metastore.
      To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
      For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
    </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>
   <property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
    <description>
      Enforce metastore schema version consistency.
      True: Verify that version information stored in is compatible with one from Hive jars.  Also disable automatic
            schema migration attempt. Users are required to manually migrate schema after Hive upgrade which ensures
            proper metastore schema migration. (Default)
      False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.
    </description>
  </property>
   <property>
    <name>hive.cli.print.current.db</name>
    <value>true</value>
    <description>Whether to include the current database in the Hive prompt.</description>
  </property>
   <property>
    <name>hive.cli.print.header</name>
    <value>true</value>
    <description>Whether to print the names of the columns in query output.</description>
  </property>

對文件hive-env.sh進(jìn)行編輯遍略,找到HADOOP_HOME,對其更改成我們自己的Hadoop目錄骤坐。

HADOOP_HOME=/Users/yanhaowen/bigdata_tools/hadoop-2.8.5

hive-site.xml的默認(rèn)配置項有些多绪杏,如果直接找我們想要修改的配置,不是很容易纽绍,所以我們可以使用vim的快速查找功能

1.按esc退出insert 
2./+想要查找的內(nèi)容蕾久,回車 
例如:/JDBC 回車,就會定位到文件中的JDBC的地方 
如果有多個匹配成功的拌夏,可以通過n或N進(jìn)行上一個或下一個的匹配

由于使用的是MySQL數(shù)據(jù)庫存儲元數(shù)據(jù)僧著,需要添加mysql相應(yīng)jar包到lib目錄下

例如:mysql-connector-java-5.1.49-bin.jar

配置完成后,初始化hive服務(wù)

bin/schematool -dbType mysql -initSchema

如果初始化過程中遇到問題障簿,那么可以使用下面的命令來查看詳細(xì)信息:

schematool -dbType mysql -initSchema --verbose

完成后盹愚,啟動元數(shù)據(jù)服務(wù)

nohup hive --service metastore &
image.jpeg

也可以通過命令查看hive服務(wù)

ps -ef |grep hive

然后啟動hive客戶端,最簡單的啟動hive腳本

image.jpeg

然后啟動hive客戶端站故,最簡單的啟動hive腳本

image.jpeg

至此皆怕,本地環(huán)境搭建完成毅舆。

參考:

https://blog.51cto.com/u_15069475/3935761

https://blog.csdn.net/king14bhhb/article/details/111568313

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市愈腾,隨后出現(xiàn)的幾起案子憋活,更是在濱河造成了極大的恐慌,老刑警劉巖虱黄,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悦即,死亡現(xiàn)場離奇詭異,居然都是意外死亡橱乱,警方通過查閱死者的電腦和手機(jī)辜梳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來泳叠,“玉大人冗美,你說我怎么就攤上這事∥龆” “怎么了粉洼?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長叶摄。 經(jīng)常有香客問我属韧,道長,這世上最難降的妖魔是什么蛤吓? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任宵喂,我火速辦了婚禮,結(jié)果婚禮上会傲,老公的妹妹穿的比我還像新娘锅棕。我一直安慰自己,他們只是感情好淌山,可當(dāng)我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布裸燎。 她就那樣靜靜地躺著,像睡著了一般泼疑。 火紅的嫁衣襯著肌膚如雪德绿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天退渗,我揣著相機(jī)與錄音移稳,去河邊找鬼。 笑死会油,一個胖子當(dāng)著我的面吹牛个粱,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播翻翩,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼都许,長吁一口氣:“原來是場噩夢啊……” “哼稻薇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起梭稚,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎絮吵,沒想到半個月后弧烤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡蹬敲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年暇昂,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伴嗡。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡急波,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出瘪校,到底是詐尸還是另有隱情澄暮,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布阱扬,位于F島的核電站泣懊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏麻惶。R本人自食惡果不足惜馍刮,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望窃蹋。 院中可真熱鬧卡啰,春花似錦、人聲如沸警没。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽杀迹。三九已至梅誓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間佛南,已是汗流浹背梗掰。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留嗅回,地道東北人及穗。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像绵载,于是被迫代替她去往敵國和親埂陆。 傳聞我的和親對象是個殘疾皇子苛白,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容