Cloudera

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

2018-09-14  本文已影响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>
上一篇下一篇

猜你喜欢

热点阅读