1. 程式人生 > >hive-3.0.0 安裝配置

hive-3.0.0 安裝配置

hive是啥?

就是一個數據倉庫,提供了一套類SQL查詢的方法,讓開發人員來組織資料。

它把SQL轉換成了MapReduce,還對其進行了優化。果然是Hadoop中資料組織的利器。

下載地址:http://mirror.bit.edu.cn/apache/hive/

我的Hadoop是3.0.X。所以下載了個hive-3.0.0的。

解壓到一個目錄下。

配置環境變數 vi ~/.bash_profile

export HIVE_HOME=你的hive目錄
export PATH=$PATH:$HIVE_HOME/bin

儲存退出 :wq

匯入生效 source ~/.bash_profile

檢視版本 hive --version

看看能不能出來版本號?

 

進入到hive的conf目錄下。看有沒有hive-site.xml檔案,沒有的話拿default複製一份。

cp hive-default.xml.template hive-site.xml

修改hive配置檔案,關聯mysql。為啥?metastore_db,說是需要儲存這個資訊。

vi hive-site.xml

      <!-- 插入連線MYSQL資訊 -->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
    </property>
   <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://192.168.1.68:3306/hive</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <!-- 到此結束 -->


  <property>
    <name>hive.exec.script.wrapper</name>
    <value/>
    <description/>
  </property>

 

複製mysql的驅動程式到hive/lib下面

mysql-connector-java-5.1.39.jar

就是這個jar包。

開始測試執行是不是能連線正確。 

>hive

>>報錯.3234行,96非法字元

Caused by: com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character (code 0x8

 at [row,col,system-id]: [3234,96,"file:/Users/xx/hive-3.0.0/conf/hive-site.xml"]

at com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:621)

at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:491)

at com.ctc.wstx.sr.StreamScanner.reportIllegalChar(StreamScanner.java:2456)

at com.ctc.wstx.sr.StreamScanner.validateChar(StreamScanner.java:2403)

at com.ctc.wstx.sr.StreamScanner.resolveCharEnt(StreamScanner.java:2369)

at com.ctc.wstx.sr.StreamScanner.fullyResolveEntity(StreamScanner.java:1515)

at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2828)

at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1123)

at org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:2960)

... 17 more

 

>hive 啟動,再報錯

Exception in thread "main" java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D

at org.apache.hadoop.fs.Path.initialize(Path.java:259)

at org.apache.hadoop.fs.Path.<init>(Path.java:217)

at org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:703)

at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:620)

at org.apache.hadoop.hive.ql.session.SessionState.beginStart(SessionState.java:585)

at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:747)

at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:683)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.hadoop.util.RunJar.run(RunJar.java:244)

at org.apache.hadoop.util.RunJar.main(RunJar.java:158)

Caused by: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D

at java.net.URI.checkPath(URI.java:1823)

at java.net.URI.<init>(URI.java:745)

at org.apache.hadoop.fs.Path.initialize(Path.java:256)

... 12 more

開啟配置檔案,

  <property>
    <name>hive.server2.logging.operation.log.location</name>
    <value>${system:java.io.tmpdir}/${system:user.name}/operation_logs</value>
    <description>Top level directory where operation logs are stored if logging functionality is enabled</description>
  </property>

路徑似乎是有問題。應該是說儲存一個日誌的路徑。

將配置中所有的${system:java.io.tmpdir}替換為 {hive目錄}/tmp下

將配置中所有的${system:user.name}替換為 root(自己系統的使用者名稱)

再啟動

完成了。初始化一下schematool -dbType mysql -initSchema

Underlying cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException : Unknown database 'hive'

沒有資料庫hive,建個數據庫hive

出現下面這個。說明初始化指令碼完成。

Initialization script completed

schemaTool completed

到此安裝完成