欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Ubuntu14上搭建HIVE-1.1.0-CDH5.9.3

程序员文章站 2022-03-08 14:32:54
...

1 安装Hadoop

Hive是建立在Hadoop上的一个数仓工具,说简单点就是真实数据存储在HDFS上。因此需要先安装Hadoop,详见博文hadoop-2.6.0-cdh完全分布式集群的搭建

2 安装MySQL

Hive是将结构化的数据文件映射为一张表,映射关系需要存放在数据库上。博主选用MySQL数据库存储HIVE元数据信息。MySQL的按装详见在Ubuntu14中安装MySQL数据库并使用SQLyog进行连接

3 安装HIVE

HIVE的存储使用HDFS,计算引擎可以是MR或SPARK,即HIVE本身不存储数据,也不做任何计算。因此不需要像其他大数据框架一样需要集群安装,只需在装有HADOOP的机器上任意一台都可以安装HIVE就可以。

#解压

aaa@qq.com:~$ tar -zxvf hive-1.1.0-cdh5.9.3.tar.gz  -C app/
aaa@qq.com:~$mv app/ hive-1.1.0-cdh5.9.3 hive

#修改配置文件hive-env.sh

aaa@qq.com:~$ cd app/hive/conf/
aaa@qq.com:~/app/hive/conf$ mv hive-env.sh.template hive-env.sh
aaa@qq.com:~/app/hive/conf$vim hive-env.sh
修改以下两行:
HADOOP_HOME=/home/hadoop/app/Hadoop  #hadoop安装目录
export HIVE_CONF_DIR=/home/hadoop/app/hive/conf #hive配置文件的地址

#修改配置文件hive-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!-- Mysql数据库的地址-->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://192.168.0.150:3306/metastore?createDatabaseIfNotExist=true</value>
        <description>JDBC connect string for a JDBC metastore</description>
    </property>
    
    <!-- Mysql数据库的驱动-->
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
        <description>Driver class name for a JDBC metastore</description>
    </property>
    
    <!-- Mysql数据库的账号-->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
        <description>username to use against metastore database</description>
   </property>
   
    <!-- Mysql数据库的密码-->
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
        <description>password to use against metastore database</description>
   </property>
   
   <!—Hive查询结果显示列名-->
   <property>
     <name>hive.cli.print.header</name>
     <value>true</value>        
   </property>
   
   <!—Hive查询结果显示表名-->
   <property>
      <name>hive.cli.print.current.db</name>
      <value>true</value>
   </property>
</configuration>

#修改日志文件

aaa@qq.com:~/app/hive/conf$mkdir /home/hadoop/app/hive/logs
aaa@qq.com:~/app/hive/conf$mv hive-log4j.properties.template hive-log4j.properties
aaa@qq.com:~/app/hive/conf$vim hive-log4j.properties
修改日志地址:
hive.log.dir=/home/hadoop/app/hive/logs

#添加mysql的驱动包
#将mysql的jar包放到hive安装包的lib下面

aaa@qq.com:~$ tar -zxvf mysql-connector-java-5.1.27.tar.gz
aaa@qq.com:~$ mv mysql-connector-java-5.1.27/mysql-connector-java-5.1.27-bin.jar  app/hive/lib/

4 启动Hive

aaa@qq.com:~/app/hive$ ./bin/hive
hive> show databases;
OK
default
Time taken: 2.077 seconds, Fetched: 1 row(s)

走到这里说明安装成功了!

5 使用YARN进行查看

使用HIVE插入一条数据

hive> insert into student(id, name) values('2', 'father');

在浏览器访问YARN的界面http://{$hadoop-master}:8088/cluster, $hadoop-master指HADOOP集群master节点所在的地址。

Ubuntu14上搭建HIVE-1.1.0-CDH5.9.3

6 安装过程遇到的bug

SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeExcepti

原因:数据库问题
解决方法:进入HIVE的日志文件,可以查看具体是数据库哪里出了问题。

 aaa@qq.com:~/app/hive/logs$ vim hive.log

7 参考文献

[1] Tom White, Hadoop权威指南 第4版. 2017, 清华大学出版社.