美文网首页Cloudera
黑猴子的家:Hue 与 Spark 集成 +livy

黑猴子的家:Hue 与 Spark 集成 +livy

作者: 黑猴子的家 | 来源:发表于2018-09-14 16:12 被阅读0次

    1、先决条件

    安装hue、hadoop

    2、spark on yarn 安装

    (1)环境变量

    ##JAVA_HOME
    export JAVA_HOME=/opt/module/jdk1.8.0_144
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin
    
    ##SCALA_HOME
    export SCALA_HOME=/opt/module/scala-2.11.8
    export PATH=$PATH:$SCALA_HOME/bin
    
    ##HADOOP_HOME
    export HADOOP_HOME=/opt/module/hadoop-2.8.2
    export PATH=$PATH:$HADOOP_HOME/bin
    export PATH=$PATH:$HADOOP_HOME/sbin
    
    ##SPARK_HOME
    export SPARK_HOME=/opt/module/spark
    export PATH=$PATH:$SPARK_HOME/bin
    export PATH=$PATH:$SPARK_HOME/sbin
    

    (2) 编辑 spark-env.sh

    [victor@node1 spark]$ vim conf/spark-env.sh
    HADOOP_CONF_DIR=/opt/module/hadoop-2.8.2/etc/hadoop
    YARN_CONF_DIR=/opt/module/hadoop-2.8.2/etc/hadoop
    #服务器域名
    SPARK_LOCAL_IP=hadoop102
    #master 地址
    SPARK_MASTER_HOST=hadoop102
    #master 端口
    SPARK_MASTER_PORT=7077
    #spark ui 端口
    SPARK_MASTER_WEBUI_PORT=8080
    
    <!-- 尖叫提示:让Spark能够发现Hadoop配置文件,,不分发,
    在yarn模式中spark只是一个客户端,只需要部署一台机器,可以删除另外两个节点
    master 不用注释掉,因为不是HA高可用,有没有都行-->
    

    (3) 配置spark编辑spark-defaults.conf

    spark 依赖的jar包

    [victor@node1 spark]$ vim conf/spark-defaults.conf
    spark.yarn.jars=hdfs://hadoop102:9000/user/sparkJars/jars/*
    

    3、hdfs://node7:9010/user/sparkJars/jars/*该路径的由来

    (1) 找到spark程序目录的jars目录,如下图

    image

    (2)将该路径的jars包上传到hdfs的目录 (本例子中的hdfs路径是:/user/sparkJars/jars)

    注:如果不配置该路径,那么每次提交spark 程序时就会上传jars包,这样会影响提交程序的效率,同时会占用hdfs的磁盘空间。

    4、测试部署

    使用spark-shell打开scala客户端。

    [victor@node1 spark]$ bin/spark-shell --master yarn --deploy-mode client
    如果yarn 后台上面出现下图的记录,则表示部署成功。


    5、安装livy

    (1) 下载livy 安装包

    下载地址
    http://livy.incubator.apache.org/download/

    (2) 设置环境变量

    [root@node1 spark]# vim /etc/profile
    #spark程序目录
    export SPARK_HOME=/opt/module/spark
    #hadoop 配置目录
    export HADOOP_CONF_DIR=/opt/module/hadoop/etc/hadoop/
    
    [root@node1 spark]# source /etc/profile
    

    (3) 解压zip包

    [victor@node1 software]$ unzip livy-0.5.0-incubating-bin.zip
    [victor@node1 software]$ mv livy-0.5.0-incubating-bin.zip livy-0.5.0
    

    (4) 配置livy

    [victor@node1 livy]$ vim conf/livy.conf
    
    #livy服务端口
    livy.server.port = 8998
    
    #spark程序部署使用yarn集群
    livy.spark.master = yarn
    
    #spark 程序使用客户端模式
    livy.spark.deploy-mode =client
    

    6、配置Hue

    修改hue.ini配置
    文件位置:/opt/module/cdh/hue-3.7.0-cdh5.3.6/desktop/conf/hue.ini
    找到[[spark] ]标签,涉及修改如下

    [root@node1 conf]$ vim hue.ini
    
    [spark]
      # livy 服务器域名
      livy_server_host=hadoop102
    
      # livy 服务器端口
      ## livy_server_port=8998
    
      # Configure Livy to start in local 'process' mode, or 'yarn' workers.
      livy_server_session_kind=yarn
    

    7、验证配置是否正确

    登录hue后台,打开scala编辑页,执行以下scala代码

    var counter = 0
    val data = Array(1, 2, 3, 4, 5)
    var rdd = sc.parallelize(data)
    
    // Wrong: Don't do this!!
    rdd.map(x=>x+1).collect()
    

    出现如下结果,则证明集成成功

    8、可能出现的问题

    1. 在执行spark on yarn部署阶段,执行“spark-shell --master yarn --deploy-mode client” 命令,出现异常:spark on yarn Another instance of Derby may have already booted the database

    则执行ps -ef |grep spark-shell ,找到进程号,执行 命令:“kill -9 进程号”,杀死spark-shell进程,再次执行“spark-shell --master yarn --deploy-mode client” 就解决了。

    2.再执行spark on yarn部署阶段,执行“spark-shell --master yarn --deploy-mode client” 命令,出现:Spark on yarn Container beyond virtual memory limits

    解决方法:修改hadoop 的yarn-site.xml ,新增如下配置

    <property>
            <name>yarn.nodemanager.vmem-check-enabled</name>
            <value>false</value>
    </property>
    

    相关文章

      网友评论

        本文标题:黑猴子的家:Hue 与 Spark 集成 +livy

        本文链接:https://www.haomeiwen.com/subject/dgmogftx.html