怎么看出docker spark 集群是单机模式还是集群模式

普开数据马延辉讲述:Spark的三种集群deploy模式对比_普开数据吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:23贴子:
普开数据马延辉讲述:Spark的三种集群deploy模式对比
  Spark有三种集群部署模式,或者叫做集群管理模式。分别是standalone,YARN和Mesos。这三种模式其实都是master/slave模式。    那么在实际的项目中,我们该如何对比选择呢?下面是我的一些总结,主要参考了:  Which Apache Spark Cluster Managers Are The Right Fit? YARN, Mesos,or  Standalone?  三种集群资源管理概述    Spark Standalone  作为Spark的一部分,Standalone是一个简单的集群管理器。它具有master的HA,弹性应对WorkerFailures,对每个应用程序的管理资源的能力,并且可以在现有的Hadoop一起运行和访问HDFS的数据。该发行版包括一些脚本,可以很容易地部署在本地或在AmazonEC2云计算。它可以在Linux,Windows或Mac OSX上运行。  Apache Mesos  Apache Mesos  ,分布式系统内核,具有HA的masters和slaves,可以管理每个应用程序的资源,并对Docker容器有很好的支持。它可以运行Spark工作,Hadoop的MapReduce的,或任何其他服务的应用程序。它有Java,Python和C ++ 的API。它可以在Linux或MacOSX上运行。  Hadoop YARN  Hadoop YARN,作业调度和集群资源管理的分布式计算框架,具有HA为masters和slaves,在非安全模式下支持Docker容器,在安全模式下支持Linux和Windows container executors,和可插拔的调度器。它可以运行在Linux和Windows上运行。  集群资源调度能力的对比  模式资源调度能力比对SecurityHA  standalone只支持FIFO调度器,单用户串行,默认所有节点的所有资源对应用都可用,node节点的限制,cpu内存等限制可以通过SparkConf来控制shared secret,SSL for data encryptionStandby Masters with ZooKeeper和本地文件系统的单点恢复。  YARN支持资源调度器Scheduler,应用管理器ApplicationsManager。CapacityScheduler和FairScheduler在队列的范围内,资源共享。Kerberos。SSL for data encryption主备切换的HA方式,依赖于zookeeper,但不需要单独的zkfc进程  Mesos看下方:插件式安全模块,默认CyrusSASL,SSL for data encryption一主多备,基于zookeeper的leader选举。  Mesos的资源调度能力描述  粗粒度模式(Coarse-grained Mode):每个应用程序的运行环境由一个Dirver和若干个Executor组成,其中,每个Executor占用若干资源,内部可运行多个Task(对应多少个“slot”)。应用程序的各个任务正式运行之前,需要将运行环境中的资源全部申请好,且运行过程中要一直占用这些资源,即使不用,最后程序运行结束后,回收这些资源。举个例子,比如你提交应用程序时,指定使用5个executor运行你的应用程序,每个executor占用5GB内存和5个CPU,每个executor内部设置了5个slot,则Mesos需要先为executor分配资源并启动它们,之后开始调度任务。另外,在程序运行过程中,mesos的master和slave并不知道executor内部各个task的运行情况,executor直接将任务状态通过内部的通信机制汇报给Driver,从一定程度上可以认为,每个应用程序利用mesos搭建了一个虚拟集群自己使用。  细粒度模式(Fine-grained Mode):鉴于粗粒度模式会造成大量资源浪费,SparkOn Mesos还提供了另外一种调度模式:细粒度模式,这种模式类似于现在的云计算,思想是按需分配。与粗粒度模式一样,应用程序启动时,先会启动 executor,但每个executor占用资源仅仅是自己运行所需的资源,不需要考虑将来要运行的任务,之后,mesos会为每个executor动态分配资源,每分配一些,便可以运行一个新任务,单个Task运行完之后可以马上释放对应的资源。每个Task会汇报状态给Mesos slave和Mesos Master,便于更加细粒度管理和容错,这种调度模式类似于MapReduce调度模式,每个Task完全独立,优点是便于资源控制和隔离,但缺点也很明显,短作业运行延迟大。  总结  从对比上看,mesos似乎是Spark更好的选择,也是被官方推荐的  但如果你同时运行hadoop和Spark,从兼容性上考虑,Yarn似乎是更好的选择,毕竟是亲生的。Spark on Yarn运行的也不错。  如果你不仅运行了hadoop,spark。还在资源管理上运行了docker,Mesos似乎更加通用。  standalone小规模计算集群,似乎更适合!
贴吧热议榜
使用签名档&&
保存至快速回贴流式计算(9)
spark 2.0.0
下载最新版本
解压后进入目录
standalone模式为Master-Worker模式,在本地模拟集群模式
启动Master
& sbin/start-master.sh
打开http://localhost:8080/,界面如下:
根据图中红框标注的URL,开启我们的slave
& sbin/start-slave.sh spark://doctorqdeMacBook-Pro.local:7077
这个时候我们再刷新上面的页面
可以看出多了一个Workers信息.
&./bin/run-example SparkPi 10
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
16/09/01 22:54:29 INFO SparkContext: Running Spark version 2.0.0
16/09/01 22:54:29 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
16/09/01 22:54:29 INFO SecurityManager: Changing view acls to: doctorq
16/09/01 22:54:29 INFO SecurityManager: Changing modify acls to: doctorq
16/09/01 22:54:29 INFO SecurityManager: Changing view acls groups to:
16/09/01 22:54:29 INFO SecurityManager: Changing modify acls groups to:
16/09/01 22:54:29 INFO SecurityManager: SecurityManager: aut users
with view permissions: Set(doctorq); groups with view permissions: Set(); users
with modify permissions: Set(doctorq); groups with modify permissions: Set()
16/09/01 22:54:30 INFO Utils: Successfully started service 'sparkDriver' on port 62953.
16/09/01 22:54:30 INFO SparkEnv: Registering MapOutputTracker
16/09/01 22:54:30 INFO SparkEnv: Registering BlockManagerMaster
16/09/01 22:54:30 INFO DiskBlockManager: Created local directory at /private/var/folders/n9/cdmr_pnj5txgd82gvplmtbh00000gn/T/blockmgr-d431b694-9fb8-42bf-b04a-286369d41ea2
16/09/01 22:54:30 INFO MemoryStore: MemoryStore started with capacity 366.3 MB
16/09/01 22:54:30 INFO SparkEnv: Registering OutputCommitCoordinator
16/09/01 22:54:30 INFO Utils: Successfully started service 'SparkUI' on port 4040.
16/09/01 22:54:30 INFO SparkUI: Bound SparkUI to 0.0.0.0, and started at http://192.168.0.101:4040
16/09/01 22:54:30 INFO SparkContext: Added JAR file:/Users/doctorq/Documents/Developer/spark-2.0.0-bin-hadoop2.7/examples/jars/scopt_2.11-3.3.0.jar at spark://192.168.0.101:62953/jars/scopt_2.11-3.3.0.jar with timestamp 7
16/09/01 22:54:30 INFO SparkContext: Added JAR file:/Users/doctorq/Documents/Developer/spark-2.0.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.0.0.jar at spark://192.168.0.101:62953/jars/spark-examples_2.11-2.0.0.jar with timestamp 9
16/09/01 22:54:30 INFO Executor: Starting executor ID driver on host localhost
16/09/01 22:54:30 INFO Utils: Successfully started service 'org.apache.spark.network.netty.NettyBlockTransferService' on port 62954.
16/09/01 22:54:30 INFO NettyBlockTransferService: Server created on 192.168.0.101:62954
16/09/01 22:54:30 INFO BlockManagerMaster: Registering BlockManager BlockManagerId(driver, 192.168.0.101, 62954)
16/09/01 22:54:30 INFO BlockManagerMasterEndpoint: Registering block manager 192.168.0.101:62954 with 366.3 MB RAM, BlockManagerId(driver, 192.168.0.101, 62954)
16/09/01 22:54:30 INFO BlockManagerMaster: Registered BlockManager BlockManagerId(driver, 192.168.0.101, 62954)
16/09/01 22:54:30 WARN SparkContext: Use an existing SparkContext, some configuration may not take effect.
16/09/01 22:54:31 INFO SharedState: Warehouse path is 'file:/Users/doctorq/Documents/Developer/spark-2.0.0-bin-hadoop2.7/spark-warehouse'.
16/09/01 22:54:31 INFO SparkContext: Starting job: reduce at SparkPi.scala:38
16/09/01 22:54:31 INFO DAGScheduler: Got job 0 (reduce at SparkPi.scala:38) with 10 output partitions
16/09/01 22:54:31 INFO DAGScheduler: Final stage: ResultStage 0 (reduce at SparkPi.scala:38)
16/09/01 22:54:31 INFO DAGScheduler: Parents of final stage: List()
16/09/01 22:54:31 INFO DAGScheduler: Missing parents: List()
16/09/01 22:54:31 INFO DAGScheduler: Submitting ResultStage 0 (MapPartitionsRDD[1] at map at SparkPi.scala:34), which has no missing parents
16/09/01 22:54:31 INFO MemoryStore: Block broadcast_0 stored as values in memory (estimated size 1832.0 B, free 366.3 MB)
16/09/01 22:54:31 INFO MemoryStore: Block broadcast_0_piece0 stored as bytes in memory (estimated size 1169.0 B, free 366.3 MB)
16/09/01 22:54:31 INFO BlockManagerInfo: Added broadcast_0_piece0 in memory on 192.168.0.101:62954 (size: 1169.0 B, free: 366.3 MB)
16/09/01 22:54:31 INFO SparkContext: Created broadcast 0 from broadcast at DAGScheduler.scala:1012
16/09/01 22:54:31 INFO DAGScheduler: Submitting 10 missing tasks from ResultStage 0 (MapPartitionsRDD[1] at map at SparkPi.scala:34)
16/09/01 22:54:31 INFO TaskSchedulerImpl: Adding task set 0.0 with 10 tasks
16/09/01 22:54:31 INFO TaskSetManager: Starting task 0.0 in stage 0.0 (TID 0, localhost, partition 0, PROCESS_LOCAL, 5478 bytes)
16/09/01 22:54:31 INFO TaskSetManager: Starting task 1.0 in stage 0.0 (TID 1, localhost, partition 1, PROCESS_LOCAL, 5478 bytes)
16/09/01 22:54:31 INFO TaskSetManager: Starting task 2.0 in stage 0.0 (TID 2, localhost, partition 2, PROCESS_LOCAL, 5478 bytes)
16/09/01 22:54:31 INFO TaskSetManager: Starting task 3.0 in stage 0.0 (TID 3, localhost, partition 3, PROCESS_LOCAL, 5478 bytes)
16/09/01 22:54:31 INFO Executor: Running task 1.0 in stage 0.0 (TID 1)
16/09/01 22:54:31 INFO Executor: Running task 0.0 in stage 0.0 (TID 0)
16/09/01 22:54:31 INFO Executor: Running task 2.0 in stage 0.0 (TID 2)
16/09/01 22:54:31 INFO Executor: Running task 3.0 in stage 0.0 (TID 3)
16/09/01 22:54:31 INFO Executor: Fetching spark://192.168.0.101:62953/jars/scopt_2.11-3.3.0.jar with timestamp 7
16/09/01 22:54:31 INFO TransportClientFactory: Successfully created connection to /192.168.0.101:62953 after 45 ms (0 ms spent in bootstraps)
16/09/01 22:54:31 INFO Utils: Fetching spark://192.168.0.101:62953/jars/scopt_2.11-3.3.0.jar to /private/var/folders/n9/cdmr_pnj5txgd82gvplmtbh00000gn/T/spark-ca630415-5293-4442-950c-0dd300afce94/userFiles-ece307aa-39b1-4125-bb8f-c3/fetchFileTemp6899262.tmp
16/09/01 22:54:32 INFO Executor: Adding file:/private/var/folders/n9/cdmr_pnj5txgd82gvplmtbh00000gn/T/spark-ca630415-5293-4442-950c-0dd300afce94/userFiles-ece307aa-39b1-4125-bb8f-c3/scopt_2.11-3.3.0.jar to class loader
16/09/01 22:54:32 INFO Executor: Fetching spark://192.168.0.101:62953/jars/spark-examples_2.11-2.0.0.jar with timestamp 9
16/09/01 22:54:32 INFO Utils: Fetching spark://192.168.0.101:62953/jars/spark-examples_2.11-2.0.0.jar to /private/var/folders/n9/cdmr_pnj5txgd82gvplmtbh00000gn/T/spark-ca630415-5293-4442-950c-0dd300afce94/userFiles-ece307aa-39b1-4125-bb8f-c3/fetchFileTemp4169017.tmp
16/09/01 22:54:32 INFO Executor: Adding file:/private/var/folders/n9/cdmr_pnj5txgd82gvplmtbh00000gn/T/spark-ca630415-5293-4442-950c-0dd300afce94/userFiles-ece307aa-39b1-4125-bb8f-c3/spark-examples_2.11-2.0.0.jar to class loader
16/09/01 22:54:32 INFO Executor: Finished task 1.0 in stage 0.0 (TID 1). 1032 bytes result sent to driver
16/09/01 22:54:32 INFO Executor: Finished task 3.0 in stage 0.0 (TID 3). 1032 bytes result sent to driver
16/09/01 22:54:32 INFO Executor: Finished task 0.0 in stage 0.0 (TID 0). 1032 bytes result sent to driver
16/09/01 22:54:32 INFO Executor: Finished task 2.0 in stage 0.0 (TID 2). 945 bytes result sent to driver
16/09/01 22:54:32 INFO TaskSetManager: Starting task 4.0 in stage 0.0 (TID 4, localhost, partition 4, PROCESS_LOCAL, 5478 bytes)
16/09/01 22:54:32 INFO Executor: Running task 4.0 in stage 0.0 (TID 4)
16/09/01 22:54:32 INFO TaskSetManager: Starting task 5.0 in stage 0.0 (TID 5, localhost, partition 5, PROCESS_LOCAL, 5478 bytes)
16/09/01 22:54:32 INFO TaskSetManager: Starting task 6.0 in stage 0.0 (TID 6, localhost, partition 6, PROCESS_LOCAL, 5478 bytes)
16/09/01 22:54:32 INFO Executor: Running task 6.0 in stage 0.0 (TID 6)
16/09/01 22:54:32 INFO TaskSetManager: Finished task 3.0 in stage 0.0 (TID 3) in 515 ms on localhost (1/10)
16/09/01 22:54:32 INFO TaskSetManager: Finished task 1.0 in stage 0.0 (TID 1) in 522 ms on localhost (2/10)
16/09/01 22:54:32 INFO TaskSetManager: Starting task 7.0 in stage 0.0 (TID 7, localhost, partition 7, PROCESS_LOCAL, 5478 bytes)
16/09/01 22:54:32 INFO Executor: Running task 7.0 in stage 0.0 (TID 7)
16/09/01 22:54:32 INFO TaskSetManager: Finished task 2.0 in stage 0.0 (TID 2) in 523 ms on localhost (3/10)
16/09/01 22:54:32 INFO Executor: Running task 5.0 in stage 0.0 (TID 5)
16/09/01 22:54:32 INFO TaskSetManager: Finished task 0.0 in stage 0.0 (TID 0) in 592 ms on localhost (4/10)
16/09/01 22:54:32 INFO Executor: Finished task 6.0 in stage 0.0 (TID 6). 872 bytes result sent to driver
16/09/01 22:54:32 INFO TaskSetManager: Starting task 8.0 in stage 0.0 (TID 8, localhost, partition 8, PROCESS_LOCAL, 5478 bytes)
16/09/01 22:54:32 INFO TaskSetManager: Finished task 6.0 in stage 0.0 (TID 6) in 48 ms on localhost (5/10)
16/09/01 22:54:32 INFO Executor: Finished task 7.0 in stage 0.0 (TID 7). 872 bytes result sent to driver
16/09/01 22:54:32 INFO Executor: Running task 8.0 in stage 0.0 (TID 8)
16/09/01 22:54:32 INFO TaskSetManager: Starting task 9.0 in stage 0.0 (TID 9, localhost, partition 9, PROCESS_LOCAL, 5478 bytes)
16/09/01 22:54:32 INFO TaskSetManager: Finished task 7.0 in stage 0.0 (TID 7) in 47 ms on localhost (6/10)
16/09/01 22:54:32 INFO Executor: Running task 9.0 in stage 0.0 (TID 9)
16/09/01 22:54:32 INFO Executor: Finished task 5.0 in stage 0.0 (TID 5). 872 bytes result sent to driver
16/09/01 22:54:32 INFO TaskSetManager: Finished task 5.0 in stage 0.0 (TID 5) in 93 ms on localhost (7/10)
16/09/01 22:54:32 INFO Executor: Finished task 4.0 in stage 0.0 (TID 4). 872 bytes result sent to driver
16/09/01 22:54:32 INFO TaskSetManager: Finished task 4.0 in stage 0.0 (TID 4) in 106 ms on localhost (8/10)
16/09/01 22:54:32 INFO Executor: Finished task 8.0 in stage 0.0 (TID 8). 959 bytes result sent to driver
16/09/01 22:54:32 INFO TaskSetManager: Finished task 8.0 in stage 0.0 (TID 8) in 71 ms on localhost (9/10)
16/09/01 22:54:32 INFO Executor: Finished task 9.0 in stage 0.0 (TID 9). 872 bytes result sent to driver
16/09/01 22:54:32 INFO TaskSetManager: Finished task 9.0 in stage 0.0 (TID 9) in 71 ms on localhost (10/10)
16/09/01 22:54:32 INFO TaskSchedulerImpl: Removed TaskSet 0.0, whose tasks have all completed, from pool
16/09/01 22:54:32 INFO DAGScheduler: ResultStage 0 (reduce at SparkPi.scala:38) finished in 0.722 s
16/09/01 22:54:32 INFO DAGScheduler: Job 0 finished: reduce at SparkPi.scala:38, took 1.061299 s
Pi is roughly 3.1394
16/09/01 22:54:32 INFO SparkUI: Stopped Spark web UI at http://192.168.0.101:4040
16/09/01 22:54:32 INFO MapOutputTrackerMasterEndpoint: MapOutputTrackerMasterEndpoint stopped!
16/09/01 22:54:32 INFO MemoryStore: MemoryStore cleared
16/09/01 22:54:32 INFO BlockManager: BlockManager stopped
16/09/01 22:54:32 INFO BlockManagerMaster: BlockManagerMaster stopped
16/09/01 22:54:32 INFO OutputCommitCoordinator$OutputCommitCoordinatorEndpoint: OutputCommitCoordinator stopped!
16/09/01 22:54:32 INFO SparkContext: Successfully stopped SparkContext
16/09/01 22:54:32 INFO ShutdownHookManager: Shutdown hook called
16/09/01 22:54:32 INFO ShutdownHookManager: Deleting directory /private/var/folders/n9/cdmr_pnj5txgd82gvplmtbh00000gn/T/spark-ca630415-5293-4442-950c-0dd300afce94
进入scala console
& ./bin/spark-shell
进入python console
python api
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:782115次
积分:12916
积分:12916
排名:第727名
原创:468篇
评论:465条
阅读:16841
阅读:18518
文章:11篇
阅读:36181
文章:36篇
阅读:53009
阅读:10260
文章:31篇
阅读:51471
文章:17篇
阅读:28969
文章:24篇
阅读:41106
(4)(6)(3)(4)(2)(1)(1)(7)(1)(12)(1)(5)(10)(39)(5)(10)(35)(12)(12)(17)(15)(52)(43)(18)(15)(12)(35)(34)(12)(25)(21)(12)Spark官方文档——独立集群模式(Standalone Mode)
一、手动开启集群1、执行以下命令开启一个单机模式的master server:./run spark.deploy.master.Master第一次启动时master会打印自己的URL信息(spark://IP:PORT),你可以通过这个URL与workers建立链接;默认的master web UI地址是http://localhost:8080&2、同样,你可以开启一个或多个workers并将它们与master建立链接.run spark.deploy.worker.Worker spark://IP:PORT成功运行后,可以通过master web UI查看workers的相关信息&3、master和worker的配置信息选择:ArgumentMeaning-i IP,&--ip IPIP address or DNS name to listen on-p PORT,&--port PORTIP address or DNS name to listen on (default: 7077 for master, random for worker)--webui-port PORTPort for web UI (default: 8080 for master, 8081 for worker)-c CORES,&--cores CORESTotal CPU cores to allow Spark jobs to use on the machine (default: all available); only on worker-m MEM,&--memory MEMTotal amount of memory to allow Spark jobs to use on the machine, in a format like 1000M or 2G (default: your machine's total RAM minus 1 GB); only on worker-d DIR,&--work-dir DIRDirectory to use for scratch space and job output logs (default: SPARK_HOME/work); only on worker&二、集群启动脚本1、你需要在Spark目录下的conf里创建并配置slaves,配置文件里要包含你想启动worker机器的hostsname,一个hosrname占据一行。启动集群前,要保证master机可以通过ssh无密码链接到每个workers机器上。&2、在搭建好Hadoop的前提下,你可一通过以下脚本开启或停止Spark的相关进程(这些脚本只能通过集群的master机执行)SPARK_HOME/bin:bin/start-master.sh&- Starts a master instance on the machine the script is executed on.bin/start-slaves.sh&- Starts a slave instance on each machine specified in the&conf/slaves&file.bin/start-all.sh&- Starts both a master and a number of slaves as described above.bin/stop-master.sh&- Stops the master that was started via the&bin/start-master.sh&script.bin/stop-slaves.sh&- Stops the slave instances that were started via&bin/start-slaves.sh.bin/stop-all.sh&- Stops both the master and the slaves as described above.3、你可以选择性的更进一步配置集群的环境变量,通过配置conf/spark-env.sh文件,你可以更好的控制集群。一下是可供选择的配置信息,也可以根据conf/spark-env.sh.template模板进行配置:Environment VariableMeaningSPARK_MASTER_IPBind the master to a specific IP address, for example a public oneSPARK_MASTER_PORTStart the master on a different port (default: 7077)SPARK_MASTER_WEBUI_PORTPort for the master web UI (default: 8080)SPARK_WORKER_PORTStart the Spark worker on a specific port (default: random)SPARK_WORKER_DIRDirectory to run jobs in, which will include both logs and scratch space (default: SPARK_HOME/work)SPARK_WORKER_CORESTotal number of cores to allow Spark jobs to use on the machine (default: all available cores)SPARK_WORKER_MEMORYTotal amount of memory to allow Spark jobs to use on the machine, e.g. 1000M, 2G (default: total memory minus 1 GB); note that each job's&inpidual&memory is configured using&SPARK_MEMSPARK_WORKER_WEBUI_PORTPort for the worker web UI (default: 8081)SPARK_DAEMON_MEMORYMemory to allocate to the Spark master and worker daemons themselves (default: 512m)SPARK_DAEMON_JAVA_OPTSJVM options for the Spark master and worker daemons themselves (default: none)&4、配置好集群后通过这个命令挂载集群:MASTER=spark://IP:PORT ./spark-shell&5、作业调度单机的集群模式目前只支持简单的FIFO调度。但是,你可以通过控制Spark作业能够获取的最大资源数来实现大量的并发作业;默认配置,一个作业会占用集群中的全部资源。在初始化SparkContext之前,你可以覆盖系统设置的使用核心数属性(例如,"spark.cores.max", "10")&6、和Hadoop一起运行以下命令运行Hadoop:hdfs://&namenode&:9000/path
最新教程周点击榜
微信扫一扫在学习Spark的时候,当然可以搞一个单机的Spark集群。 在写代码的时候,自然没有什么太大的问题了。但是是不是总有一种意犹未尽、隔靴骚扰的感觉?如果你的答案是否,好吧,你可以关闭此页了。首先,有一个新人经常遇到的问题:Spark集群是否一定需要Hadoop集群呢?答案是否。 Spark的集群一共分3种:StandaloneHadoop-YarnMesos今天我们主要涉及的就是Standalone这种模式。在这种模式之下,我们完全可以使用NFS来代替Hadoop / HDFS. 并且在很多场景之下,Standalone 完全可以满足我们的需求。那么,问题来了:如何搭建一个Standalone集群?首先需要你下载相应的版本。 当前最新的版本是2.0. 但是笔者的经验还主要集中在1.6 之上。 &因此本篇文章涉及的Spark版本是1.6.1. 下载地址:这里有一个需要注意的地方: 虽然我们不需要搭建HDFS,但是我们下载的Spark版本query不能不带Hadoop。 如下截图:Spark 集群区分Master与Slave / Worker / Executor 的概念。 并且每一个节点,无论是master还是worker 都需要有一份完整的spark binary。 而且有一个非常推荐的做法:在所有(master + all workers)的节点,spark放置的路径都要完全的一致。貌似官方并没有这样要求,但是这样做的好处就是避免了各种奇奇怪怪的问题,并且也非常方便后期的维护与管理。 详情请看文末附带的下载代码。如果不是统一的安装路径,这个代码就悲惨了。。。比如笔者喜欢将Spark / Cassandra / Zeppline 等都放在/Project 目录之下。当我们的Spark放置好的时候,我们就可以开始启动我们的集群啦!这时候有两种选择:(两种名字都是我自己瞎编的,意思意思 ^_^)(1) Master to Slaves步骤如下:配置从Master到各个Slave的无密码登录 (具体步骤可以百度、google)在conf目录之中,从spark-env.sh.template 之中复制一个spark-env.sh 并填入如下内容:12345export SPARK_MASTER_IP=10.206.131.48&&# bind the master to a different IP address or hostnameexport SPARK_MASTER_PORT=7077 # SPARK_MASTER_WEBUI_PORT, to use non-default ports for the masterexport SPARK_MASTER_WEBUI_PORT=8080 #export SPARK_EXECUTOR_MEMORY=2500Mexport SPARK_DRIVER_MEMORY=2500M&在conf目录之中,从slaves.template 复制一份slaves 文件,并在其中写入slave的IP,每行一个。当上面的步骤都配置好之后,执行./sbin/start-all.sh&即可(2) Slaves to Master这种方式,是笔者自己各种摸索出来的使用方式,在网上少有记载!与(1)的第二步类似, 修改master的conf/spark-env.sh 文件master 执行 sbin/start-master.sh到各个slave机器 执行 &sbin/start-slave.sh&spark://{MASTER_IP}:7077比较上面两种方式的优缺点,(1) 的配置比较多,但是之后的操作比较方便。只需要一条执行命令即可(2) 的配置比较少,需要执行的命令比较多。最终,笔者选择的是方式(2),因为笔者当时在配置各个机器的无密码登录的时候,并不稳定并且找不到根本的解决办法。 表现就是: 机器重启之后可能无密码登录就是失效了,有的时候直接无法无密码登录。。。所以选择(2)也是很无奈。不管怎么说,使用(2) 也能达到目标,而且Spark 集群工作得还是挺好的&上文提到,我们使用NFS来替代HDFS做文件系统。安装NFS也比较容易:(1) 首先Master NFS Server安装nfs-server&sudo apt-get install nfs-kernel-server貌似会自动安装好客户端nfs-common安装完成之后,需要进行一些配置的修改:sudo vim& /etc/exports添加一句:/data/nfsshare &*(rw,sync,no_subtree_check)/data/nfsshare 表示共享目录放在那里~* :表示可以访问的机器的ip, 可以以IP + 子网掩码的形式来写,比如10.206.1.1/16rw:客户端拥有读写权限(ro:代码只有读权限)sync:同步写入资料到内存和硬盘中no_subtree_check:不检测子目录权限root_squash:如果客户端使用root权限访问共享目录,则会被认为是匿名用户(权限缩小)no_root_squash:如果客户端使用root权限访问共享目录,权限依旧为root配置完成之后重启服务:sudo &service nfs-kernel-server& restart(2) 在其他机器安装NFS Clientsudo apt-get install nfs-common -y安装完成之后直接mount server即可:sudo mkdir -p /data/hadoopDatasudo mount 10.206.132.1:/data/hadoopData /data/hadoopData注意:为了后面路径统计,本地的共享目录(/mnt)一定要一致如果不再挂载就用sudo umount /mnt 即可到目前为止,所有的基础工作都已经完成。 美中不足就是手动的操作太多了。一种解决方案,就是使用cloudera 之类的集成套件,通过UI界面鼠标点击自动安装好。 另外一种,就是像我们这个小团队一样,因为任务比较简单,只需要编写一些简单的远程操作代码即可。使用的语言是python, 依赖Paramiko这个库。源码可以从我的百度盘下载:链接:&&密码: t8kd来源:FlyML原文链接:http://www.flyml.net//spark-build-a-simplest-cluster-of-your-own/数据分析精选(sjfxjx) 
 文章为作者独立观点,不代表大不六文章网立场
的最新文章
点击阅读原文下载《数据科学家》月刊点击阅读原文下载《数据科学家》月刊点击阅读原文下载《数据科学家》月刊最近,频繁遇到各类公司找我交流“用户画像该怎么做”这个问题。俗话说,画龙画虎难画骨,知人知面不知心。为什么知人心这么难呢,道理很简单:猜对了也好,猜错了也罢,都是一头雾水,没有可靠的正确答案。用户画像,跟这个也有点类似。数据科学进阶之路~~~python数据分析网()-大数据资讯、观点、技术研究中心数据分析网()-大数据资讯、观点、技术研究中心数据分析网()-大数据资讯、观点、技术研究中心如果你有一个多年的邻居老王,虽然你们可能只是在小区见面打个招呼,但是你们的关系真的仅限于此吗?数据分析网()-大数据资讯、观点、技术研究中心教你如何在电影院避开烂片!数据分析网()-大数据资讯、观点、技术研究中心数据分析网()-大数据资讯、观点、技术研究中心问答系统的前世今生常见的机器学习算法数据分析网()-大数据资讯、观点、技术研究中心距离您的礼物到期还有x天!!本文详细介绍了字符编码相关的知识进而介绍了python中的编码以及编码问题发生的原因和解决方法。数据分析网()-大数据资讯、观点、技术研究中心数据分析网()-大数据资讯、观点、技术研究中心给力的书单!!数据分析网()-大数据资讯、观点、技术研究中心数据分析网()-大数据资讯、观点、技术研究中心数据分析网()-大数据资讯、观点、技术研究中心年薪50万!他是怎么做到的?数据分析网()-大数据资讯、观点、技术研究中心数据分析网()-大数据资讯、观点、技术研究中心最近几年一直参与大数据产品的研发,同时大数据产品在海量数据场景下其处理性能又是其主要的卖点,所以个人在这几年经常忙于如何对大数据产品进行性能上面的优化,并且想通过本文和大家聊聊具体的几种比较常见大数据性能优化技术。数据分析网()-大数据资讯、观点、技术研究中心数据分析网()-大数据资讯、观点、技术研究中心数据分析网()-大数据资讯、观点、技术研究中心数据分析网()-大数据资讯、观点、技术研究中心数据分析网()-大数据资讯、观点、技术研究中心///数据分析网()-大数据资讯、观点、技术研究中心你的Excel水平,在哪个层次呢?数据分析网()-大数据资讯、观点、技术研究中心数据分析网()-大数据资讯、观点、技术研究中心数据分析网()-大数据资讯、观点、技术研究中心数据分析网()-大数据资讯、观点、技术研究中心数据分析网()-大数据资讯、观点、技术研究中心数据分析网()-大数据资讯、观点、技术研究中心数据分析网()-大数据资讯、观点、技术研究中心数据分析网()-大数据资讯、观点、技术研究中心数据分析网()-大数据资讯、观点、技术研究中心数据分析网()-大数据资讯、观点、技术研究中心数据分析网()-大数据资讯、观点、技术研究中心sjfxjx数据分析精选【人称“数据哥”】:分享大数据分析、电子商务、互联网、移动互联网行业的新闻、观点、八卦、文章和干货。商务合作QQ:热门文章最新文章sjfxjx数据分析精选【人称“数据哥”】:分享大数据分析、电子商务、互联网、移动互联网行业的新闻、观点、八卦、文章和干货。商务合作QQ:

我要回帖

更多关于 spark单机模式 的文章

 

随机推荐