hadoop组件之hive环境搭建

一.什么是Hive?

  • Hive是建立在Hadoop上的工具.能够帮助用户屏蔽掉复杂的MapReduce逻辑,只需要用户使用简单的SQL语句即可完成一定的查询功能
  • Hive利用HDFS存储数据,利用MapReduce查询数据

二.Hive与传统数据库比对

Hive RDMS
查询语言 HQL SQL
数据存储 HDFS Raw Device or Local FS
执行 MapReduce Executor
执行延迟
处理数据规模
索引 0.8版本后加入 复杂索引机制
  • 注:Hive具有SQL数据库的很多类似功能,但应用场景不同,只适合做批量数据统计分析

三.Hive部署

1.下载与安装

  • 1)下载链接: https://pan.baidu.com/s/1ktOAPcRuctId60m_38tcQg 提取码: mk39
  • 2)将hive安装包拖入opt目录下解压安装: tar -zxvf hive-1.1.0-cdh5.14.2.tar.gz
  • 3)改名: mv hive-1.1.0-cdh5.14.2/ hive
  • 4)删除安装包: rm -rf hive-1.1.0-cdh5.14.2.tar.gz
  • 5)配置环境变量: vi /etc/profile ,添加以下内容:
export HIVE_PATH=/opt/hive
export PATH=$PATH:$HIVE_PATH/bin
  • 6)输入: source /etc/profile ,使其生效

2.Hive需要提前装好MySQL

安装MySQL

  • 安装完成后需要给root用户赋权;
grant all on *.* to root@'hadoop110';
flush privileges;

3.Hive配置文件修改

  • 1.进入配置文件目录: cd /opt/hive/conf/
  • 2)新建hive-site.xml文件: vi hive-site.xml,添加如下内容:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
        <property>
                <name>hive.metastore.warehouse.dir</name>
                <value>hdfs://hadoop110:9000/hive/warehouse</value>
               <description>管理表存储的位置,可以是linux中的目录,也可以是相对于fs.default.name有关的目录</description>
        </property>
        <property>
                <name>hive.metastore.local</name>
                <value>true</value>
        </property>
        <!-- 指定hive元数据存储的MySQL地址 -->
        <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true</value>
        </property>
        <!-- 元数据存储数据库的驱动 -->
        <property>
                <name>javax.jdo.option.ConnectionDriverName</name>
                <value>com.mysql.jdbc.Driver</value>
        </property>
        <!-- 元数据存储数据库的用户名 -->
        <property>
                <name>javax.jdo.option.ConnectionUserName</name>
                <value>root</value>
        </property>
        <!-- 元数据存储数据库的密码,(注:这里是mysql自己root用户的密码) -->
        <property>
                <name>javax.jdo.option.ConnectionPassword</name>
                <value>ok</value>
        </property>
        <property>
                <name>hive.server2.authentication</name>
                <value>NONE</value>
        </property>
        <property>
                <name>hive.server2.thrift.client.user</name>
                <value>root</value>
         </property>
         <property>
                <name>hive.server2.thrift.client.password</name>
                <value>ok</value>
         </property>
</configuration>
  • 3)新建hive-env.sh文件: vi hive-env.sh,添加如下内容:
export HADOOP_HOME=/opt/hadoop-2.6.0-cdh5.14.2
export HIVE_HOME=/opt/hive
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HIVE_AUX_JARS_PATH=/opt/hive/lib
export JAVA_HOME=/opt/jdk1.8.0_221
export HIVE_CONF_DIR=/opt/hive/conf
  • 4)修改hive-log4j.properties,配置hive的log,先改名, mv hive-log4j.properties.template hive-log4j.properties
  • 进入文件: vi hive-log4j.properties,之后按20gg快速定位,修改为如下内容:
hive.log.dir=/opt/hive/logs
  • 5)新建配置文件需要的目录:mkdir /opt/hive/warehouse ,mkdir /opt/hive/logs
  • 6)将mysql-connector-java-5.1.0-bin.jar包拖到$HIVE_HOME/lib目录下
  • 7)给hive文件赋权:chmod -R 777 /opt/hive

4.启动(需要先启动hdfs)

  • 1)初始化mysql数据库: schematool -initSchema -dbType mysql,效果如下:
    在这里插入图片描述
  • 2)输入: hive,进入hive命令行模式,效果如下:
    在这里插入图片描述
  • 3)使用SQLyog可发现已建立hive数据库,如下:
    在这里插入图片描述
  • 4)输入: show tables; 效果如下(刚开始没有表):
    在这里插入图片描述
  • 5)创建一个再查看,效果如下:
    在这里插入图片描述
  • 6)输入:exit;退出hive命令行
  • 7)如果warehouse目录存储在hdfs上可以去50070端口查看创建的表,如下:
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/sun_0128/article/details/106984530