当我们在spark-shell用scala写程序的时候,如何不嵌入sql来查询Hive呢?
[root@node1 ~]# spark-shell --master yarn-client Warning: Master yarn-client is deprecated since 2.0. org.apache.hadoop.yarn.server.resourcemanager.scheduler.AbstractYarnScheduler: Release request cache is cleaned up [root@node1 ~]# 可能是spark-shell --master yarn-client过时了,但是换成spark-shell --master yarn --deploy-mode client,依然报错。 [root@node1 ~]# spark-shell --master yarn --deploy-mode client Using Spark's default log4j profile: org 重新修改一下: export HADOOP_CONF_DIR=/opt/hadoop-2.7.3/etc/hadoop [root@node1 conf]# spark-shell --master
查看spark-env.sh 和spark-default.conf中的配置发现两边都写的有classpath
前言 接上一篇文章,上篇文章说到hudi适配hbase 2.2.6,这篇文章在spark-shell中操作hudi,并使用hbase作为索引。 拷贝hudi-spark3-bundle_2.12-0.9.0.jar到spark的jars目录下 cp hudi-spark3-bundle_2.12-0.9.0.jar spark/jars 启动spark-shell 执行hudi相关操作 启动spark-shell . /bin/spark-shell --conf 'spark.serializer=org.apache.spark.serializer.KryoSerializer'Copy 使用DataGenerator
2.3 进入spark-shell操作kudu 作为 CML 中现有引擎的替代品,ML Runtimes 比当前的单体引 spark-shell --packages org.apache.kudu:kudu-spark2 可见插入单条数据插入成功 2.3.2 单行读 在spark-shell中执行如下代码 import org.apache.hadoop.security.UserGroupInformation import 2.3.3.1 批量读 在spark-shell下执行下面代码 import org.apache.kudu.spark.kudu._ val df = spark.read.format("kudu" 也可以看到新增的一条数据插入成功 3.在spark-shell中执行下面代码 kuduContext.upsertRows(df, "like_test002") ? 2.在spark-shell中执行下面代码 df.write.options(Map("kudu.master"-> "cdp03:7051", "kudu.table"-> "like_test002
1、执行Spark运行在yarn上的命令报错 spark-shell --master yarn-client,错误如下所示: 18/04/22 09:28:22 ERROR SparkContext: 命令运行如下所示: [hadoop@slaver1 spark-1.5.1-bin-hadoop2.4]$ spark-shell --master yarn-client 18/04/22 09:37
开箱即用 直接启动bin目录下的spark-shell: 进入Spark安装目录 cd /export/server/spark ##直接使用spark-shell,默认使用local[*] bin /spark-shell ## 或 bin/spark-shell --master local[2] spark-shell说明 1.直接使用. /spark-shell 表示使用local 模式启动,在本机启动一个SparkSubmit进程 2.还可指定参数 --master,如: spark-shell --master local[N] 表示在本地模拟 N个线程来运行当前任务 spark-shell --master local[*] 表示使用当前机器上所有可用的资源 3.不携带参数默认就是 spark-shell --master local[*] /spark-shell --master spark://node01:7077,node02:7077 5.退出spark-shell 使用 :quit 本地模式启动spark-shell: 运行成功以后
直接启动bin目录下的spark-shell: . /spark-shell ? spark-shell说明<后续仍会提到> <1>直接使用. /spark-shell 表示使用local 模式启动,在本机启动一个SparkSubmit进程 <2>还可指定参数 --master,如: spark-shell --master local[N] 表示在本地模拟N个线程来运行当前任务 spark-shell --master local[*] 表示使用当前机器上所有可用的资源 <3>不携带参数默认就是 spark-shell /spark-shell --master spark://node01:7077,node02:7077 <5>退出spark-shell 使用 :quit ok,说了那么多概念,接下来让我们来感受一下
●开箱即用 直接启动bin目录下的spark-shell: . /spark-shell ●spark-shell说明 1.直接使用. /spark-shell 表示使用local 模式启动,在本机启动一个SparkSubmit进程 2.还可指定参数 --master,如: spark-shell --master local[N] 表示在本地模拟N个线程来运行当前任务 spark-shell --master local[*] 表示使用当前机器上所有可用的资源 3.不携带参数默认就是 spark-shell --master /spark-shell --master spark://node01:7077 5.退出spark-shell 使用 :quit 3、初体验-读取本地文件 ●准备数据 vim /opt/words.txt
例如:在一个拥有 4 核的环境上运行 bin/spark-shell,使用: . /bin/spark-shell --master local[4] 或者,还可以将 code.jar 添加到其 classpath 中,请使用: . /bin/spark-shell --master local[4] --jars code.jar 使用maven坐标来包含依赖项: . /bin/spark-shell --master local[4] --packages "org.example:example:0.1" 可以执行 spark-shell --help 获取完整的选项列表 spark-shell 调用的是更常用的spark-submit脚本。 Spark 版本: 2.3.0
spark-shell 引入 之前我们使用提交任务都是使用spark-shell提交,spark-shell是Spark自带的交互式Shell程序,方便用户进行交互式编程,用户可以在该命令行下可以用 示例 spark-shell 可以携带参数 spark-shell --master local[N] 数字N表示在本地模拟N个线程来运行当前任务 spark-shell --master local[*] 表示使用当前机器上所有可用的资源 默认不携带参数就是–master local[*] spark-shell --master spark ://node01:7077,node02:7077 表示运行在集群上 spark-submit 引入 spark-shell交互式编程确实很方便我们进行学习测试,但是在实际中我们一般是使用 executor 可用的核数 -- total-executor-cores 2 指定运行任务使用的 cup 核数为 2 个 注意: 如果 worker 节点的内存不足,那么在启动 spark-shell
sbin/start-slave.sh 例如:start-slave.sh spark://Ice:7077 参数:表示master节点的访问地址(注意host-ip映射) 6、连接单机Spark集群 spark-shell 可用内存为1G –total-executor-cores 6 指定所有executor使用的cpu核数为6个 –executor-cores 表示每个executor使用的 cpu 的核数 三、使用 Spark-shell Spark-shell 是 Spark 给我们提供的交互式命令窗口(类似于 Scala 的 REPL) 3.1、打开 Spark-shell $ bin/spark-shell Spark context scala> 四、wordcount案例 4.1、 创建 2 个文本文件 mkdir input cd input touch 1.txt touch 2.txt 写入内容 4.2、打开 Spark-shell bin/spark-shell 查看进程和通过 web 查看应用程序运行情况 可以看到一句Spark context Web UI available at http://Ice:4040 4.3、
1,通过spark-shell进入Spark交互式环境,使用Scala语言。 2,通过spark-submit提交Spark应用程序进行批处理。 可以在jupyter 中运行spark-shell。 使用spark-shell运行时,还可以添加两个常用的两个参数。 一个是master指定使用何种分布类型。 第二个是jars指定依赖的jar包。 #local本地模式运行,默认使用4个逻辑CPU内核 spark-shell #local本地模式运行,使用全部内核,添加 code.jar到classpath spark-shell --master spark-shell --master yarn-client #集群模式连接YARN集群,Driver运行在集群,本地机器计算和通信压力小,批量任务时推荐使用。 spark-shell --master yarn-cluster #提交scala写的任务 .
集群 2.5 测试HA 3、 on yarn集群模式 3.1 准备工作 3.2 cluster模式 3.3 client模式[了解] 3.4 两种模式的区别 4、 Spark参数详解 4.1 spark-shell /spark-2.2.0-bin-2.6.0-cdh5.14.0/bin/spark-shell --master spark://node01:7077 ●运行程序 sc.textFile("hdfs ●测试集群模式提交任务 1.集群模式启动spark-shell /export/servers/spark/bin/spark-shell --master spark://node01:7077, spark-shell是Spark自带的交互式Shell程序,方便用户进行交互式编程,用户可以在该命令行下可以用scala编写spark程序,适合学习测试时使用! ●示例 spark-shell可以携带参数 spark-shell --master local[N] 数字N表示在本地模拟N个线程来运行当前任务 spark-shell --master local[
4 启动spark集群 sbin/start-all.sh Copy 启动spark-shell并attach本地spark集群 执行以下命令启动(需要指定spark.serializer): . save(basePath) Copy 其中生成数据如下所示: 查看hdfs相关路径 3 查询数据 // spark-shell val tripsSnapshotDF = spark. _hoodie_partition_path, rider, driver, fare from hudi_trips_snapshot").show()Copy 相关结果 4 更新数据 // spark-shell save(basePath)Copy 其中第一行为生成更新数据,详细操作如下: 5 增量查询 // spark-shell // reload data spark. read. // spark-shell spark. read.format("hudi"). load(basePath + "/*/*/*/*").
/bin/spark-shell --jars lib/ScalaApacheAccessLogParser-master.jar 接着我们执行导入jar包 [Bash shell] 纯文本查看 复制代码 /bin/spark-shell –master spark://master:7077 –jars ScalaApacheAccessLogParser-master.jar [Bash shell] /bin/spark-shell 导入的时候,并不会报错,但是import的时候,报错。
随后启动spark-shell 执行如下测试代码: import org.apache.spark. 最终只能在启动spark-shell的时候同时引入jar包了= = . /spark-shell --jars /usr/local/spark-1.4.0-bin-2.5.0-cdh5.2.1/lib/mysql-connector-java-5.1.30-bin.jar
启动spark-shell 配置环境变量后,可以在任意路径下启动 spark-shell 不配置环境变量,直接启动spark-shell: cd ~/hadoop/spark bin/spark-shell
使用 Spark-shell Spark-shell 是 Spark 给我们提供的交互式命令窗口(类似于 Scala 的 REPL) 本案例在 Spark-shell 中使用 Spark 来统计文件中各个单词的数量 3.2 打开 Spark-shell [bigdata@hadoop002 spark-local]$ bin/spark-shell ? 3.3 查看进程和通过 web 查看应用程序运行情况 ?
二, Spark local模式的使用 这种模式,既可以使用Spark-shell进行测试,也可以采用idea进行本地测试。 2, Spark-shell本地测试 输入spark-shell --master local[4] 2.1并行化数据集 val data = Array(1, 2, 3, 4, 5) val distData 3, 读取本地文件 还是那spark-shell(启动的时候可以指定master不指定的话会读取spark-defaults.conf)使用为例,读取本地文件,启动后在浏览器上查看 http: 再次以spark-shell的使用为例,我们让其以yarn-client的模式(其实,也只能运行于该模式) Spark-shell on yarn读取hdfs上文件 ? Spark-shell local模式读取本地文件 ?