运维做了8年,带了好几年团队,但是逐渐发现自己技术上飘飘然,前几年还写写代码,做做运维,现在只能探探规划,看看方向。什么spark、docker、k8s、hadoop、open-falcon、devops、aiops都带团队做过,但自己真没具体做过。今天开始在运维、开发领域做个新手,重新从0开始学习,看看自己是不是既能上天又能入地
Spark介绍:
Spark程序在集群中独立运行,通过SparkContext在主程序统一管理
SparkContext能够连接多种集群(spark单机、mesos、yarn)管理和分配资源。连接后,SparkContext在集群节点上获得执行器来执行应用程序的计算、存储工作。然后SparkContext发送应用程序代码(JAR、Python)给执行器。最后SparkContext发送任务给执行器运行
环境:
阿里云ECS
CPU:2 * Intel(R) Xeon(R) Platinum 8163 CPU @ 2.50GHz
内存:4G
磁盘:42.9GB
操作系统:CentOS Linux release 7.2.1511 (Core)
内核:3.10.0-693.21.1.el7.x86_64
软件环境:java1.8
yum -y install java-1.8.0-openjdk.x86_64
安装spark:
下载spark代码:
#wget "http://mirrors.hust.edu.cn/apache/spark/spark-2.4.0/spark-2.4.0-bin-hadoop2.7.tgz"
#tar xzvf spark-2.4.0-bin-hadoop2.7.tgz
启动单机版spark:
#cd spark-2.4.0-bin-hadoop2.7/sbin
启动master
#sh ./start-master.sh
启动后你可以浏览器访问 ip:8080查看master状态页面
启动slave
#sh start-slave.sh spark://masterip:7077
(这里注意masterip为master上netstat -antp|grep 7077看到的侦听ip)
测试:
连接spark服务:
#./spark-shell –master spark://masterip:7077
从文件中创造一个数据集(Dataset)
>val textFile = spark.read.textFile("../README.md")
>textFile.count()
>textFile.first()
创造一个新的数据集
>val linesWithSpark = textFile.filter(line => line.contains("Spark"))
>linesWithSpark.first()
参考文章:
http://spark.apache.org/docs/latest/quick-start.html
http://spark.apache.org/docs/latest/cluster-overview.html
下一次用python写一个程序连接spark