spark_0108

Spark单节点部署

1. 找到安装文件

1 find / -name spark*.tgz

2. 解压文件到指定目录

1 tar -zxvf  ~/experiment/file/spark-2.2.0-bin-hadoop2.7.tgz  -C  /opt

3. 重命名

1 mv /opt/spark-2.2.0-bin-hadoop2.7 /opt/spark

4. 配置环境变量

1 vim /etc/profile
2 
3 #spark install
4 export SPARK_HOME=/opt/spark
5 export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

5. 刷新环境变量

1 source /etc/profile

6. 测试

1 spark-shell

 

Spark交互式Shell

1. 启动

1 spark-shell

2.行数统计案例(Scala版本 ):读取Spark安装目录下的README.md文件,并统计个文件有多少行记录,同时并打印出文档的第一行记录

val lines = sc.textFile("/opt/spark/README.md")
lines.count()
lines.first()

3.统计README.md文件中spark出现的次数(不区分大小写),将含有spark的行写入到一个独立的文件,保存至/root/out目录中

1 val lines = sc.textFile("/opt/spark/README.md")
2 val res=lines.flatMap(_.split(" ")).map(_.toLowerCase).filter(_.contains("spark"))
3 res.count()
4 res.coalesce(1).saveAsTextFile("/root/out")

4.查看WebUI界面网址master:4040

 1 lines.flatMap(.split(" ")).map(.toLowerCase).filter(.contains(“spark”)).count()
 2 lines.map(.toLowerCase).filter(_.contains(“spark”)).saveAsTextFile("/root/out")
 3 lines.map(.toLowerCase).filter(_.contains(“spark”)).coalesce(1).saveAsTextFile("/root/out")
 4 
 5 #集群
 6 #上传文件到集群
7 hdfs dfs -put /opt/XXX  /sjw
8 val lines = sc.textFile("hdfs://master:8020/sjw/XXX")
9 lines.coalesce(1).saveAsTextFile("hdfs://master:8020/out")

 

 

 

-----------------------------------------------------------------------------------------------

    • 创建RDD(P179)
      通过外部数据创建:sc.textFile(data path)

    • RDD转换(P180)
      对数据集中的每个元素进行转换,一转多:flatMap
      过滤:filter
      对数据集中的每个元素进行转换:map
      全部小写
      组装成键值对(word,1)
      聚合:reduceByKey
      排序:sortBy
      返回前n个元素:take(n)

    • 保存结果(P177)
      通过集合Array创建RDD:sc.parallelize(P179)
      合并为一个分区:coalesce(1)
      把RDD保存为文本文件:saveAsTextFile(out path)

find / -name spark*.tgz
tar -zxvf  ~/experiment/file/spark-2.2.0-bin-hadoop2.7.tgz  -C  /opt
mv /opt/spark-2.2.0-bin-hadoop2.7 /opt/spark

vim /etc/profile
#spark install
export SPARK_HOME=/opt/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

source /etc/profile
spark-shell

val lines = sc.textFile("/opt/spark/README.md")
lines.count()
lines.first()

val lines = sc.textFile("/opt/spark/README.md")
val res=lines.flatMap(_.split(" ")).map(_.toLowerCase).filter(_.contains("spark"))
res.count()
res.coalesce(1).saveAsTextFile("/root/out")

lines.flatMap(.split(" ")).map(.toLowerCase).filter(.contains(“spark”)).count()
lines.map(.toLowerCase).filter(_.contains(“spark”)).saveAsTextFile("/root/out")
lines.map(.toLowerCase).filter(_.contains(“spark”)).coalesce(1).saveAsTextFile("/root/out")

#上传文件到集群
start-dfs.sh
hdfs dfs -put /opt/XXX  /sjw
val lines = sc.textFile("hdfs://master:8020/sjw/XXX")
lines.coalesce(1).saveAsTextFile("hdfs://master:8020/out")

  val res=lines.flatMap(_.split(" ")).filter(_.length>=3).filter(_.length<=10).map(_.toLowerCase).map((_,1)).reduceByKey(_+_).sortBy(_._2,false).take(3)

  sc.parallelize(res).coalesce(1).saveAsTextFile("/root/sjw")

 

posted @ 2021-01-08 13:05  小石小石摩西摩西  阅读(132)  评论(1编辑  收藏  举报