hive-3.0.0 安装配置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hebsun/article/details/83063371

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

到此安装完成

猜你喜欢

转载自blog.csdn.net/hebsun/article/details/83063371