首页
学习
活动
专区
圈层
工具
发布
50 篇文章
1
Hadoop面试复习系列——HDFS(一)
2
大数据技术之_04_Hadoop学习_01_HDFS_HDFS概述+HDFS的Shell操作(开发重点)+HDFS客户端操作(开发重点)+HDFS的数据流(面试重点)+NameNode和Seconda
3
大数据技术之_05_Hadoop学习_02_MapReduce_MapReduce框架原理+InputFormat数据输入+MapReduce工作流程(面试重点)+Shuffle机制(面试重点)
4
大数据技术之_05_Hadoop学习_01_MapReduce_MapReduce概述+Hadoop序列化
5
大数据技术之_03_Hadoop学习_01_入门_大数据概论+从Hadoop框架讨论大数据生态+Hadoop运行环境搭建(开发重点)
6
大数据技术之_05_Hadoop学习_04_MapReduce_Hadoop企业优化(重中之重)+HDFS小文件优化方法+MapReduce扩展案例+倒排索引案例(多job串联)+TopN案例+找博客
7
大数据技术之_06_Zookeeper学习_Zookeeper入门+Zookeeper安装+Zookeeper内部原理+Zookeeper实战(开发重点)+企业面试真题
8
大数据技术之_09_Hive学习_复习与总结
9
大数据技术之_07_Hadoop学习_HDFS_HA(高可用)_HA概述+HDFS-HA工作机制+HDFS-HA集群配置+YARN-HA配置+HDFS Federation(联邦) 架构设计
10
大数据技术之_08_Hive学习_01_Hive入门+Hive安装、配置和使用+Hive数据类型
11
大数据技术之_08_Hive学习_04_压缩和存储(Hive高级)+ 企业级调优(Hive优化)
12
大数据技术之_08_Hive学习_05_Hive实战之谷粒影音(ETL+TopN)+常见错误及解决方案
13
大数据技术之_08_Hive学习_02_DDL数据定义(创建/查询/修改/删除数据库+创建表+分区表+修改表+删除表)+DML数据操作(数据导入+数据导出+清除表中数据)
14
大数据技术之_08_Hive学习_03_查询+函数
15
大数据技术之_16_Scala学习_09_函数式编程-高级
16
大数据技术之_09_Flume学习_Flume概述+Flume快速入门+Flume企业开发案例+Flume监控之Ganglia+Flume高级之自定义MySQLSource+Flume企业真实面试题(
17
大数据技术之_13_Azkaban学习_Azkaban(阿兹卡班)介绍 + Azkaban 安装部署 + Azkaban 实战
18
大数据技术之_19_Spark学习_07_Spark 性能调优 + 数据倾斜调优 + 运行资源调优 + 程序开发调优 + Shuffle 调优 + GC 调优 + Spark 企业应用案例
19
大数据技术之_12_Sqoop学习_Sqoop 简介+Sqoop 原理+Sqoop 安装+Sqoop 的简单使用案例+Sqoop 一些常用命令及参数
20
大数据技术之_16_Scala学习_13_Scala语言的数据结构和算法_Scala学习之旅收官之作
21
大数据技术之_19_Spark学习_06_Spark 源码解析 + Spark 通信架构、脚本解析、standalone 模式启动、提交流程 + Spark Shuffle 过程 + Spark 内存
22
大数据技术之_16_Scala学习_04_函数式编程-基础+面向对象编程-基础
23
大数据技术之_14_Oozie学习
24
大数据技术之_26_交通状态预测项目_01
25
大数据技术之_16_Scala学习_02_变量
26
大数据技术之_16_Scala学习_07_数据结构(上)-集合
27
大数据技术之_28_电商推荐系统项目_01
28
大数据技术之_28_电商推荐系统项目_02
29
大数据技术之_18_大数据离线平台_04_数据分析 + Hive 之 hourly 分析 + 常用 Maven 仓库地址
30
大数据技术之_16_Scala学习_01_Scala 语言概述
31
大数据技术之_29_MySQL 高級面试重点串讲_02
32
大数据技术之_18_大数据离线平台_05_离线平台项目模块小结
33
大数据技术之_19_Spark学习_06_Spark 源码解析小结
34
大数据技术之_16_Scala学习_05_面向对象编程-中级
35
大数据技术之_16_Scala学习_08_数据结构(下)-集合操作+模式匹配
36
大数据技术之_24_电影推荐系统项目_05_项目系统设计
37
大数据技术之_19_Spark学习_03_Spark SQL 应用解析小结
38
大数据技术之_19_Spark学习_07_Spark 性能调优小结
39
大数据技术之_19_Spark学习_05_Spark GraphX 应用解析小结
40
大数据技术之_19_Spark学习_02_Spark Core 应用解析小结
41
大数据技术之_24_电影推荐系统项目_08_项目总结及补充
42
大数据技术之_19_Spark学习_01_Spark 基础解析小结(无图片)
43
大数据技术之_18_大数据离线平台_03_数据处理+工具代码导入+业务 ETL 实现+创建数据库表
44
大数据技术之_24_电影推荐系统项目_02_Python 基础语法复习
45
大数据技术之_24_电影推荐系统项目_06_项目体系架构设计 + 工具环境搭建 + 创建项目并初始化业务数据 + 离线推荐服务建设 + 实时推荐服务建设 + 基于内容的推荐服务建设
46
大数据技术之_27_电商平台数据分析项目_01_大数据的框架回顾 + 大数据的企业应用
47
大数据技术之_23_Python核心基础学习_03_函数 + 对象(12.5小时)
48
大数据技术之_32_大数据面试题_01_Hive 基本面试 + Hive 数据分析面试 + Flume + Kafka 面试
49
大数据技术之_23_Python核心基础学习_04_ 异常 + 文件(3.5小时)
50
大数据技术之_16_Scala学习_03_运算符+程序流程控制
清单首页hadoop文章详情

大数据技术之_19_Spark学习_01_Spark 基础解析小结(无图片)

1、准备安装包

2、Spark Standalone 即独立模式

  2.1、解压安装包到你安装的目录。

  2.2、拷贝 conf 目录下的 slaves 文件,将 slave 节点的 hostname 写在文件中,每行一个。

  2.3、拷贝 conf 目录下的 spark-env.sh 文件,将 SPARK_MASTER_HOST 和 SPARK_MASTER_PORT 指定。

  2.4、分发你的 spark 安装目录到其他节点。

  2.5、在 master 节点上执行 /opt/module/spark-2.1.1-bin-hadoop2.7/sbin/start-all.sh 来启动整个 spark 集群。

  2.6、在浏览器中访问 http://hadoop102:8080 来访问你的 spark 集群

注意:如果在启动的时候出现 JAVA_HOME not set 那么可以在 sbin 目录下的 spark-config.sh 文件中输入 export JAVA_HOME=/opt/module/jdk1.8.0_144 然后分发到其他节点,这样问题即可解决。

3、Spark Standalone 模式 Spark History Server 的配置

  3.1、拷贝 conf 目录下的 spark-defaults.conf 修改为 spark-env.sh,在该文件中添加以下内容:

spark-defaults.conf

代码语言:javascript
复制
spark.eventLog.enabled   true
spark.eventLog.dir       hdfs://hadoop102:9000/directory
spark.eventLog.compress  true

  3.2、拷贝 conf 目录下的 spark-env.sh.template 修改为 spark-env.sh,在该文件中添加以下内容:

spark-env.sh

代码语言:javascript
复制
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=4000
-Dspark.history.retainedApplications=3
-Dspark.history.fs.logDirectory=hdfs://hadoop102:9000/directory"

  3.3、将修改好的文件同步到集群的其他节点

  3.4、启动 /opt/module/spark-2.1.1-bin-hadoop2.7/sbin/start-history-server.sh 来启动 history log 的 web 服务。

  查看日志有两种方式:

   1、对于正在运行的应用,直接访问 http://hadoop102:4040 查看

   2、对于已经结束的应用,直接访问 http://hadoop102:4000 查看

4、Spark Standalone 的 HA 模式

  4.1、修改 spark-env.sh 文件

  1)、删除 SPARK_MASTER_IP(即 SPARK_MASTER_HOST)

  2)、添加如下内容:

代码语言:javascript
复制
export SPARK_DAEMON_JAVA_OPTS="
-Dspark.deploy.recoveryMode=ZOOKEEPER
-Dspark.deploy.zookeeper.url=hadoop102:2181,hadoop103:2181,hadoop104:2181
-Dspark.deploy.zookeeper.dir=/spark"

  3)、将配置好的文件分发到其他机器节点

  4.2、在 master 节点通过 sbin/start-all.sh 进行集群的启动,在某个其他 slave 节点上手动执行 sbin/start-master.sh 来启动第二个 master 进程

  4.3、如果是 HA 模式,那么访问的服务地址变为:--master spark://hadoop102:7077,hadoop103:7077

5、Spark Yarn 模式集群的配置

  5.1、不需要 spark standalone 集群

  5.2、需要配置你提交应用的 client 端

修改 spark-env.sh

代码语言:javascript
复制
# 让 spark 能够发现 hadoop 的配置文件
HADOOP_CONF_DIR=/opt/module/hadoop-2.7.2/etc/hadoop
YARN_CONF_DIR=/opt/module/hadoop-2.7.2/etc/hadoop

  5.3、提交应用

代码语言:javascript
复制
$ /opt/module/spark-2.1.1-bin-hadoop2.7/bin/spark-submit \
--class com.atguigu.sparkdemo.WordCountDemo \
--master yarn \
--deploy-mode client \
--executor-memory 1G \
--total-executor-cores 2 \
/opt/software/sparkdemo-1.0-SNAPSHOT-jar-with-dependencies.jar \
hdfs://hadoop102:9000/RELEASE \
hdfs://hadoop102:9000/out

或者

$ /opt/module/spark-2.1.1-bin-hadoop2.7/bin/spark-submit \
--class com.atguigu.sparkdemo.WordCountDemo \
--master yarn-client \
--executor-memory 1G \
--total-executor-cores 2 \
/opt/software/sparkdemo-1.0-SNAPSHOT-jar-with-dependencies.jar \
hdfs://hadoop102:9000/RELEASE \
hdfs://hadoop102:9000/out

注意:如果使用 yarn 集群,不需要配置 master、slave 结构,只需要配置 jar 包的 client 提交端,让提交端能够发现 hadoop 的一些配置即可。

6、Spark 集群的访问

  6.1、通过 IDEA 来编写程序打成 jar 包,来提交运行。

   1)、需要创建 SparkConf 对象来设置应用

   2)、需要根据 SparkConf 对象来创建 SparkContext(SparkConext 是你的程序和 spark 集群进行连接的桥梁)。

   3)、通过 sc,从外部加载数据

   4)、对数据进行处理

   5)、将结果数据写出到外部

   6)、通过 sc.stop() 关闭 SparkContext

  6.2、调试应用是通过 local* 模式来进行的。

  6.3、应用的提交:

代码语言:javascript
复制
$ /opt/module/spark-2.1.1-bin-hadoop2.7/bin/spark-submit \
--class com.atguigu.sparkdemo.WordCountDemo \
--master spark://hadoop102:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
/opt/software/sparkdemo-1.0-SNAPSHOT-jar-with-dependencies.jar \
hdfs://hadoop102:9000/RELEASE \
hdfs://hadoop102:9000/out

--class         指定 jar 包的主类
--master        指定 jar 包提交的模式,详解如下:
    local           本地模式,本地运行,可以调试(local 1个线程、local[*] 不限线程、local[N] N个线程,理想情况下,N 设置为你机器的 CPU 核数)
    spark           提交到 spark stanalone 集群,有 Master 和 Worker 进程,会在 container 中 jar 包运行的时候自动生成
    mesos           将 jar 包提交到 mesos 集群,运行在 mesos 资源管理器框架之上,由 mesos 负责资源管理,Spark 负责任务调度和计算
    yarn            将 jar 包提交到 yarn 集群,运行在 yarn 资源管理器框架之上,由 yarn 负责资源管理,Spark 负责任务调度和计算
    cloud           比如 AWS 的 EC2,使用这个模式能很方便的访问 Amazon 的 S3,Spark 支持多种分布式存储系统,比如 HDFS 和 S3
--deploy-mode   指定 jar 的运行方式(默认是 client 模式),详解如下:
    client 模式      在提交端生成的 JVM 会一直等待所有计算过程全部完成才退出,它有两个功能,一个是提交,一个是监控 jar 包运行(测试环境下使用)
    cluster 模式     在提交端生成的 JVM 在提交 jar 包后会退出,它只有一个提交功能,然后在某一个 worker 上会生成一个 Driver 的 JVM,该 JVM 执行监控 jar 包运行的功能,等待所有代码运行完毕退出(生产环境下使用 )
application.jar 指定你的 jar 包的地址
arguments       传给 main() 方法的参数

执行通过 $ /opt/module/spark-2.1.1-bin-hadoop2.7/bin/spark-shell 来运行。
如果不设置 master 那么默认运行在本机节点;如果设置 --master spark://hadoop102:7077  那么运行在 Spark Standalone 模式集群。

7、问题

  1、看文档的时候,需要将某些配置改成自己的。

  2、IDEA 运行程序的时候,winuntil.exe 需要添加 HADOOP_HOME 环境变量(IDEA 需要重启)。

  3、访问 HDFS 的时候权限问题,比如:HADOOP_USER_NAME=hadoop,运行程序的时候就会以 hadoop 用户来运行。参考链接:https://cloud.tencent.com/developer/article/1424036

下一篇
举报
领券