hive2.3-spark2.0-yarn 安装

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

hive on spark 安装

  • jar包选用
  hadoop - 2.7.3
  hive - 2.3.0
  spark - 2.0.0
  scala - 2.11.8
  • spark安装
   引用官网
   https://cwiki.apache.org//confluence/display/Hive/Hive+on+Spark:+Getting+Started
   请注意,您必须具有不包括Hive jar 的Spark版本  。意思是一个没有用Hive配置文件构建的。
   我选用spark2.0 因为hive现在最新版本支持spark2.0版本 下载hive源码pom.xml中支持spark
   2.0版本
    下载sprk-2.0版本解压 用maven编译 
    编译前必须先安装scala maven
     ./dev/make-distribution.sh --name "hadoop2-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.7,parquet-provided"
    编译时间长 耐心等待
    编译完成后在当前文件下 生成 spark-2.2.0-bin-hadoop2-without-hive.tgz
  • 配置 spark-env.sh
    解压 后配置 spark-env.sh
    export SCALA_HOME=/usr/local/scala
    export JAVA_HOME=/usr/java/default
    export HADOOP_HOME=/usr/local/hadoop
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
    export SPARK_MASTER_IP=192.168.137.100
    export SPARK_LOCAL_DIRS=/usr/local/spark
    export SPARK_WORKER_MEMORY=1g
    export SPARK_DRIVER_MEMORY=1g
    # spark master端口 默认7077 下面是可选的
    export SPARK_MASTER_PORT=7077
    export SPARK_WORKER_PORT=7078

    配置有很多 这是基础得
    export SPARK_DIST_CLASSPATH 必须配置 不配置会报
    Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
  • 配置spark-defaultt.conf
   spark.master                     yarn-cluster
   spark.home                       /usr/local/spark
   spark.eventLog.enabled           true
   spark.eventLog.dir               hdfs://master:9000/spark-log
   spark.serializer                 org.apache.spark.serializer.KryoSerializer
   spark.driver.memory              1g
   spark.executor.memory            1g
   spark.executor.extraJavaOptions  -XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"

– 配置hive

   将 spark/jars 文件下得scala-library  spark-core spark-network-common包复制到hive/lib下     
   hive-site.xml添加
   <property>
       <name>hive.enable.spark.execution.engine</name>
       <value>true</value>
    </property>
    <property>
        <name>spark.home</name>
        <value>/usr/local/spark</value>
    </property>
    <property>
        <name>spark.master</name>
        <value>yarn-client</value>
    </property>
    <property>
        <name>spark.enentLog.enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>spark.enentLog.dir</name>
        <value>hdfs://master:9000/spark-log</value>
    </property>
    <property>
        <name>spark.serializer</name>
        <value>org.apache.spark.serializer.KryoSerializer</value>
    </property>
    <property>
        <name>spark.executor.memeory</name>
        <value>1g</value>
    </property>
    <property>
        <name>spark.driver.memeory</name>
        <value>1g</value>
    </property>
    <property>
        <name>spark.executor.extraJavaOptions</name>
        <value>-XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"</value>
    </property> 

– 注意 hive与spark版本要对应

 不匹配启动spark集群 会报
 Failed to execute spark task, with exception 'org.apache.hadoop.hive.ql.metadata.HiveException(Failed to create spark client.)' FAILED: Execution Error, 
 return code 1 from org.apache.hadoop.hive.ql.exec.spark.SparkTask

– 启动spark 启动hive 验证Hive on Spark是否可用

   命令行输入 hive,进入hive CLI
   set hive.execution.engine=spark; (将执行引擎设为Spark,默认是mr,退出hive CLI后,回到默认设置。若想让引擎默认为Spark,需要在hive-site.xml里设置)
   create table test(ts BIGINT,line STRING); (创建表)
   select count(*) from test;
   若整个过程没有报错,并出现正确结果,则Hive on Spark配置成功。

猜你喜欢

转载自blog.csdn.net/qq_33127597/article/details/77017171