大数据平台搭建 Hadoop-2.7.4 + Spark-2.2.0 快速搭建
Apache Spark 简介
Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。
尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。
准备工作
环境
JDK:1.8
Spark-2.2.0
Hadoop Release:2.7.4
centos:7.3
主机名 |
ip地址 |
安装服务 |
---|---|---|
spark-master |
192.168.252.121 |
jdk、hadoop、spark、scala |
spark-slave01 |
192.168.252.122 |
jdk、hadoop、spark |
spark-slave02 |
192.168.252.123 |
jdk、hadoop、spark |
依赖环境
Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。所有我们安装 Scala
Scala
Hadoop
安装
下载解压
su hadoop
cd /home/hadoop/
wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.2.0/spark-2.2.0-bin-hadoop2.7.tgz
tar -zxvf spark-2.2.0-bin-hadoop2.7.tgz
mv spark-2.2.0-bin-hadoop2.7 spark-2.2.0
环境变量
如果是对所有的用户都生效就修改vi /etc/profile
文件 如果只针对当前用户生效就修改 vi ~/.bahsrc
文件
sudo vi /etc/profile
#spark
export PATH=${SPARK_HOME}/bin:$PATH
export SPARK_HOME=/home/hadoop/spark-2.2.0/
使环境变量生效,运行 source /etc/profile
使/etc/profile
文件生效
修改配置
修改 spark-env.sh
cd /home/hadoop/spark-2.2.0/conf
mv spark-env.sh.template spark-env.sh
vi spark-env.sh
#java
export JAVA_HOME=/lib/jvm
#Spark主节点的IP
export SPARK_MASTER_IP=192.168.252.121
#Spark主节点的端口号
export SPARK_MASTER_PORT=7077
简单介绍几个变量
- JAVA_HOME:Java安装目录
- SCALA_HOME:Scala安装目录
- HADOOP_HOME:hadoop安装目录
- HADOOP_CONF_DIR:hadoop集群的配置文件的目录
- SPARK_MASTER_IP:spark集群的Master节点的ip地址
- SPARK_WORKER_MEMORY:每个worker节点能够最大分配给exectors的内存大小
- SPARK_WORKER_CORES:每个worker节点所占有的CPU核数目
- SPARK_WORKER_INSTANCES:每台机器上开启的worker节点的数目
修改 slaves
cd /home/hadoop/spark-2.2.0/conf
mv slaves.template slaves
vi slaves
node1
node2
node3
配置集群
复制节点
进去 spark 安装目录 ,打包,并发送,到其他节点
cd cd /home/hadoop/
tar zcvf spark.tar.gz spark-2.2.0
scp spark.tar.gz hadoop@node2:/home/hadoop/
scp spark.tar.gz hadoop@node3:/home/hadoop/
进去 node1
,node2
节点 解压
cd /home/hadoop/
tar -zxvf spark.tar.gz
环境变量
到这里一步 确保你的每一个节点 环境变量够数
#jdk
export JAVA_HOME=/lib/jvm
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${SPARK_HOME}/bin:${SCALA_HOME}/bin:${HADOOP_HOME}/bin:${JAVA_HOME}/bin:$PATH
#hadoop
export HADOOP_HOME=/home/hadoop/hadoop-2.7.4/
#scala
export SCALA_HOME=/lib/scala
#spark
export SPARK_HOME=/home/hadoop/spark-2.2.0/
启动集群
关闭防火墙
systemctl stop firewalld.service
启动 Hadoop
cd /home/hadoop/hadoop-2.7.4/sbin
./start-all.sh
启动 Spark
cd /home/hadoop/spark-2.2.0/sbin
./start-all.sh
启动 Spark Shell
cd /home/hadoop/spark-2.2.0/bin
./spark-shell
Contact
- 作者:鹏磊
- 出处:http://www.ymq.io
- Email:admin@souyunku.com
- 版权归作者所有,转载请注明出处
- Wechat:关注公众号,搜云库,专注于开发技术的研究与知识分享
- 宋小菜融资2.3亿元!域名保护意识强
- 世界最奇葩的7款机器人
- Mysql高效插入/更新数据
- 关于Membership/Role您可能不知道的细节
- Sqlite向MySql导入数据
- 未来3年,人工智能如何影响法律行业?5位权威专家给出趋势
- Java 常见内存溢出异常与代码实现
- nginx限制上传大小和超时时间设置说明/php限制上传大小
- Unity Application Block 1.2 学习笔记
- 苹果首个自动驾驶专利到底有什么来头?
- 围棋遇上互联网:科技打开优秀传统文化未来之门
- 神经网络开始放飞自我!都是因为架构搜索新算法
- 浏览器缓存问题的解决
- nginx下目录浏览及其验证功能、版本隐藏等配置记录
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android辅助权限的介绍和配置完整记录
- Redis基础——剖析基础数据结构及其用法
- SwipeRefreshLayout+RecyclerView实现上拉刷新和下拉刷新功能
- 二值分析 | OpenCV + skimage如何提取中心线
- 详解OpenVINO 模型库中的人脸检测模型
- Tensorflow的妙用
- 终端抓包神器 | tcpdump参数解析及使用
- GoLang 中发送 email 邮件
- 漫画算法题:两数之和与三数之和
- 推荐系统与深度学习(十七)——DIN模型原理
- 可视化教程开启BERT之旅
- pandas中apply与map的异同
- 终端下双重过滤筛选内容
- scrapy-redis分布式爬虫
- HTML5新增全局属性