【大数据学习篇5】 Spark安装实验

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 【大数据学习篇5】 Spark安装实验

1. Spark安装与测试

1.1 安装Scala语言

#上传安装scala安装包 /home/hd/apps
[hd@master apps]# pwd
/home/hd/apps
#解压
[hd@master apps]$ tar -zxvf scala-2.11.0.tgz 
#改名
[hd@master apps]$ mv scala-2.11.0 scala
#切换root用户
[hd@master apps]$ su root
Password: 
#增加环境变量
[root@master apps]# vi /etc/profile
export SCALA_HOME=/home/hd/apps/scala
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SCALA_HOME/bin
[root@master apps]# source /etc/profile
#第一台机器测试
[root@master apps]$ su hd
[hd@master ~]$ source /etc/profile
[hd@master ~]$ 
[hd@master ~]$ scala
#把新的环境发送到其它机器
[root@master apps]# scp /etc/profile root@slave01:/etc/
[root@master apps]# scp /etc/profile root@slave02:/etc/
#切换用户把scala程序名,发送到其它的机器
[root@master apps]$ su hd
[hd@master apps]$  scp -r scala hd@slave01:/home/hd/apps/
[hd@master apps]$  scp -r scala hd@slave02:/home/hd/apps/
#第二台机器测试
[hd@slave01 ~]$ source /etc/profile
[hd@slave01 ~]$ 
[hd@slave01 ~]$ scala
#第三台机器测试
[hd@slave02 ~]$ source /etc/profile
[hd@slave02 ~]$ 
[hd@slave02 ~]$ scala

1.2 安装Spark组件

#上传安装文件
[hd@master apps]# tar -zxvf spark-2.4.5-bin-hadoop2.7.tgz 
[hd@master apps]$ mv spark-2.4.5-bin-hadoop2.7 spark
[hd@master apps]$ cd spark/conf/
#修改spark配置文件spark-env.sh
[hd@master conf]$ vi spark-env.sh
export JAVA_HOME=/home/hd/apps/java
export SCALA_HOME=/home/hd/apps/scala
export HADOOP_HOME=/home/hd/apps/hadoop
export HADOOP_CONF_DIR=/home/hd/apps/hadoop/etc/hadoop
export SPARK_MASTER_IP=master
export SPARK_WORKER_MEMORY=1g
export SPARK_WORKER_CORES=1
export SPARK_WORKER_INSTANCES=1
#修改spark配置文件slaves
[hd@master conf]$ cp slaves.template  slaves
[hd@master conf]$ vi slaves
slave01
slave02
#同步到其它机器
[hd@master conf]$ scp -r /home/hd/apps/spark  hd@slave01:/home/hd/apps/
[hd@master conf]$ scp -r /home/hd/apps/spark  hd@slave02:/home/hd/apps/
#修改系统的环境变量
[hd@master conf]$ su root
Password: 
[root@master conf]# vi /etc/profile
export SPARK_HOME=/home/hd/apps/spark
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SCALA_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin
[root@master spark]# scp /etc/profile root@slave01:/etc/
#第二台机器测试
[hd@slave01 ~]$ source /etc/profile
[root@master spark]# scp /etc/profile root@slave02:/etc/
#第三台机器测试
[hd@slave02 ~]$ source /etc/profile
#启动spark
[root@master spark]# su hd
[hd@master spark]$ 
[hd@master spark]$ /home/hd/apps/spark/sbin/start-all.sh 
#查看spark 进程
[hd@master spark]$ jps
5632 SecondaryNameNode
10528 Master
5409 NameNode
10593 Jps
5853 ResourceManager

1.3 启动后的界面

查看Spark控制台

http://192.168.126.128:8080/

1.4 spark-shell控制台单词统计

[hd@master spark]$ /home/hd/apps/spark/bin/spark-shell 
Spark context Web UI available at http://master:4040
Spark context available as 'sc' (master = local[*], app id = local-1582875665794).
Spark session available as 'spark'.
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 2.4.5
      /_/ 
Using Scala version 2.11.12 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_121)
Type in expressions to have them evaluated.
Type :help for more information.
scala> val rdd1  = sc.textFile("hdfs://master:9000/word/words.txt")
rdd1: org.apache.spark.rdd.RDD[String] = hdfs://master:9000/word/words.txt MapPartitionsRDD[1] at textFile at <console>:24
scala> rdd1.collect
res3: Array[String] = Array(Hello World Bye World, Hello Hadoop Bye Hadoop, Bye Hadoop Hello Hadoop)
scala> val rdd2 = rdd1.flatMap(_.split(" "))
rdd2: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[2] at flatMap at <console>:25
scala> rdd2.collect
res4: Array[String] = Array(Hello, World, Bye, World, Hello, Hadoop, Bye, Hadoop, Bye, Hadoop, Hello, Hadoop)
scala> val rdd3 = rdd2.map((_,1))
rdd3: org.apache.spark.rdd.RDD[(String, Int)] = MapPartitionsRDD[3] at map at <console>:25
scala> rdd3.collect
res5: Array[(String, Int)] = Array((Hello,1), (World,1), (Bye,1), (World,1), (Hello,1), (Hadoop,1), (Bye,1), (Hadoop,1), (Bye,1), (Hadoop,1), (Hello,1), (Hadoop,1))
scala> val rdd4 = rdd3.reduceByKey(_+_)
rdd4: org.apache.spark.rdd.RDD[(String, Int)] = ShuffledRDD[4] at reduceByKey at <console>:25
scala> rdd4.collect
res6: Array[(String, Int)] = Array((Bye,3), (Hello,3), (World,2), (Hadoop,4))
scala> rdd4.saveAsTextFile("hdfs://master:9000/sparkout")

1.5 Spark操作json对象

[hd@slave02 ~]$ vi person.json
[{"id":1,"name":"stone","age":30},{"id":2,"name":"james","age":30},{"id":3,"name":"jacky","age":28},{"id":4,"name":"Tom","age":27}]
[hd@slave02 ~]$ hdfs dfs -put person.json /
scala> val person = spark.read.json("hdfs://master:9000/person.json")
scala> person.collect
res9: Array[org.apache.spark.sql.Row] = Array([30,1,stone], [30,2,james], [28,3,jacky], [27,4,Tom])
scala> person.show
+---+---+-----+
|age| id| name|
+---+---+-----+
| 30|  1|stone|
| 30|  2|james|
| 28|  3|jacky|
| 27|  4|  Tom|
+---+---+-----+
scala> person.filter($"age">28).show
+---+---+-----+
|age| id| name|
+---+---+-----+
| 30|  1|stone|
| 30|  2|james|
+---+---+-----+
相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
5天前
|
分布式计算 Shell Scala
学习使用Spark
学习使用Spark
23 3
|
7天前
|
机器学习/深度学习 分布式计算 大数据
Spark 适合解决多种类型的大数据处理问题
【9月更文挑战第1天】Spark 适合解决多种类型的大数据处理问题
19 3
|
8天前
|
分布式计算 Shell Scala
如何开始学习使用Spark?
【8月更文挑战第31天】如何开始学习使用Spark?
21 2
|
10天前
|
分布式计算 大数据 Apache
跨越界限:当.NET遇上Apache Spark,大数据世界的新篇章如何谱写?
【8月更文挑战第28天】随着信息时代的发展,大数据已成为推动企业决策、科研与技术创新的关键力量。Apache Spark凭借其卓越的分布式计算能力和多功能数据处理特性,在大数据领域占据重要地位。然而,对于.NET开发者而言,如何在Spark生态中发挥自身优势成为一个新课题。为此,微软与Apache Spark社区共同推出了.NET for Apache Spark,使开发者能用C#、F#等语言编写Spark应用,不仅保留了Spark的强大功能,还融合了.NET的强类型系统、丰富库支持及良好跨平台能力,极大地降低了学习门槛并拓展了.NET的应用范围。
26 3
|
16天前
|
分布式计算 大数据 数据处理
Apache Spark的应用与优势:解锁大数据处理的无限潜能
【8月更文挑战第23天】Apache Spark以其卓越的性能、易用性、通用性、弹性与可扩展性以及丰富的生态系统,在大数据处理领域展现出了强大的竞争力和广泛的应用前景。随着大数据技术的不断发展和普及,Spark必将成为企业实现数字化转型和业务创新的重要工具。未来,我们有理由相信,Spark将继续引领大数据处理技术的发展潮流,为企业创造更大的价值。
|
14天前
|
存储 分布式计算 供应链
Spark在供应链核算中应用问题之调整Spark读取ODPS离线表分区大小如何解决
Spark在供应链核算中应用问题之调整Spark读取ODPS离线表分区大小如何解决
|
7天前
|
Java Spring API
Spring框架与GraphQL的史诗级碰撞:颠覆传统,重塑API开发的未来传奇!
【8月更文挑战第31天】《Spring框架与GraphQL:构建现代API》介绍了如何结合Spring框架与GraphQL构建高效、灵活的API。首先通过引入`spring-boot-starter-data-graphql`等依赖支持GraphQL,然后定义查询和类型,利用`@GraphQLQuery`等注解实现具体功能。Spring的依赖注入和事务管理进一步增强了GraphQL服务的能力。示例展示了从查询到突变的具体实现,证明了Spring与GraphQL结合的强大潜力,适合现代API设计与开发。
19 0
|
2月前
|
机器学习/深度学习 分布式计算 算法
Spark快速大数据分析PDF下载读书分享推荐
《Spark快速大数据分析》适合初学者,聚焦Spark实用技巧,同时深入核心概念。作者团队来自Databricks,书中详述Spark 3.0新特性,结合机器学习展示大数据分析。Spark是大数据分析的首选工具,本书助你驾驭这一利器。[PDF下载链接][1]。 ![Spark Book Cover][2] [1]: https://zhangfeidezhu.com/?p=345 [2]: https://i-blog.csdnimg.cn/direct/6b851489ad1944548602766ea9d62136.png#pic_center
104 1
Spark快速大数据分析PDF下载读书分享推荐
下一篇
DDNS