Hive on Spark安装与配置(无数坑)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hive on Spark安装与配置(无数坑)相关的知识,希望对你有一定的参考价值。

一、版本如下
    注意:Hive on Spark对版本有着严格的要求,下面的版本是经过验证的版本

  • apache-hive-2.3.2-bin.tar.gz

  • hadoop-2.7.2.tar.gz

  • jdk-8u144-linux-x64.tar.gz

  • mysql-5.7.19-1.el7.x86_64.rpm-bundle.tar

  • mysql-connector-java-5.1.43-bin.jar

  • spark-2.0.0.tgz(spark源码包,需要从源码编译)

  • Redhat Linux 7.4 64位


二、安装Linux和JDK、关闭防火墙


技术分享图片

技术分享图片


三、安装和配置MySQL数据库

          1、解压MySQL安装包

                   技术分享图片


         2、安装MySQL

                  yum remove mysql-libs
                 rpm -ivh mysql-community-common-5.7.19-1.el7.x86_64.rpm
                 rpm -ivh mysql-community-libs-5.7.19-1.el7.x86_64.rpm
                 rpm -ivh mysql-community-client-5.7.19-1.el7.x86_64.rpm
                 rpm -ivh mysql-community-server-5.7.19-1.el7.x86_64.rpm
                 rpm -ivh mysql-community-devel-5.7.19-1.el7.x86_64.rpm  (可选)


         3、启动MySQL

                 systemctl start mysqld.service


           4、查看并修改root用户的密码  

                   查看root用户的密码:cat /var/log/mysqld.log | grep password
                   登录后修改密码:alter user 'root'@'localhost' identified by 'Welcome_1';

                  技术分享图片


         5、创建hive的数据库和hiveowner用户   


                  (*)创建一个新的数据库:create database hive;
                  (*)创建一个新的用户:
                           create user 'hiveowner'@'%' identified by ‘Welcome_1’;
                  (*)给该用户授权
                           grant all on hive.* TO 'hiveowner'@'%';
                           grant all on hive.* TO 'hiveowner'@'localhost' identified by 'Welcome_1';


四、安装Hadoop(以伪分布式为例)

       由于Hive on Spark默认支持Spark on Yarn的方式,所以需要配置Hadoop。

       1、准备工作:

             (*)配置主机名(编辑/etc/hosts文件)

             (*)配置免密码登录


         2、Hadoop的配置文件如下:

              技术分享图片

       

           3、启动Hadoop:

                     start-all.sh


           4、通过Yarn Web Console检查是否为公平调度原则

                    技术分享图片


五、编译Spark源码、并配置Spark

        (需要使用Maven,Spark源码包中自带Maven)


         1、执行下面的语句进行编译

             (执行时间很长,耐心等待)

              ./dev/make-distribution.sh --name "hadoop2-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.7,parquet-provided"


        2、编译成功后

             会生成:spark-2.0.0-bin-hadoop2-without-hive.tgz


          3、安装和配置Spark

                   (*)目录结构如下:

                             技术分享图片


                  (*)将下面的配置加入spark-env.sh

                      (*)export JAVA_HOME=/root/training/jdk1.8.0_144

                      (*)export HADOOP_CONF_DIR=/root/training/hadoop-2.7.2/etc/hadoop

                      (*)export YARN_CONF_DIR=/root/training/hadoop-2.7.2/etc/hadoop

                      (*)export SPARK_MASTER_HOST=hive77

                      (*)export SPARK_MASTER_PORT=7077

                      (*)export SPARK_EXECUTOR_MEMORY=512m

                      (*)export SPARK_DRIVER_MEMORY=512m

                     (*)export SPARK_WORKER_MEMORY=512m


                  (*)将hadoop的相关jar包放入spark的lib目录下,如下:

                          技术分享图片


                  (*)在HDFS上创建目录:spark-jars,并将spark的jars上传至该目录。

                          这样在运行Application的时候,就无需每次都分发这些jar包。

                         hdfs dfs -mkdir /spark-jars
                         hdfs dfs -put jars/*.jar /spark-jars


                 (*) 启动Spark:sbin/start-all.sh,验证Spark是否配置成功

                            技术分享图片



六、安装配置Hive


        (*)解压Hive安装包,并把mysql的JDBC驱动放到HIve的lib目录下,如下图:

               技术分享图片


       (*)设置Hive的环境变量

                 HIVE_HOME=/root/training/apache-hive-2.3.2-bin
                 export HIVE_HOME
                 PATH=$HIVE_HOME/bin:$PATH
                 export PATH


       (*)拷贝下面spark的jar包到Hive的lib目录

               技术分享图片


       (*)在HDFS上创建目录:/sparkeventlog用于保存log信息

                  hdfs dfs -mkdir /sparkeventlog


       (*)配置hive-site.xml,如下:

                 技术分享图片


       (*)初始化MySQL数据库:schematool -dbType mysql -initSchema


       (*)启动hive shell,并创建员工表,用于保存员工数据

                  技术分享图片


       (*)导入emp.csv文件:

                   load data local inpath '/root/temp/emp.csv' into table emp1;


       (*)执行查询,按照员工薪水排序:(执行失败

                 技术分享图片


       (*)检查Yarn Web Console

                   技术分享图片

                  技术分享图片

                          技术分享图片


       (*)重启:Hadoop、Spark、Hive,并执行查询

               技术分享图片

              技术分享图片

                最后说明一下:由于配置好了Spark on Yarn,我们在执行Hive的时候,可以不用启动Spark集群,因为此时都有Yarn进行管理。

 


以上是关于Hive on Spark安装与配置(无数坑)的主要内容,如果未能解决你的问题,请参考以下文章

hive on spark 安装配置

Hive_on_Spark安装配置详解

hive安装以及hive on spark

hive on spark配置

Spark on hive编译以及简单使用

第57课:Spark SQL on Hive配置及实战