This shows the execution order given JavaScript's Call Stack, Event Loop, and any asynchronous APIs provided in the JS execution environment (in this example; Web APIs in a Browser environment)
Given the code
# --------------------------------------------------------------------------- | |
# | |
# Description: This file holds all my BASH configurations and aliases. | |
# Much of this was originally copied from: | |
# http://natelandau.com/my-mac-osx-bash_profile/ | |
# | |
# Sections: | |
# 1. Environment Configuration | |
# 2. Make Terminal Better (remapping defaults and adding functionality) | |
# 3. File and Folder Management |
Nothing gives you more detail about spark internals than actually reading it source code. In addition, you get to learn many design techniques and improve your scala coding skills. These are the random notes I make while reading the spark code. The best way to comprehend the notes is to load spark code into an IDE, e.g. IntelliJ, and navigate the code on the side.
The scripts for creating a spark cluster are: start-master.sh and start-slave.sh. Read them carefully, and you can see that both scripts are very similar except the values for $CLASS variable. For start-master.sh, the value is CLASS="org.apache.spark.deploy.master.Master", while the value for start-slave.sh is shown below with more context.
# NOTE: This exact class name is matched downstream by SparkSubmit.
// https://twitter.github.io/scala_school/type-basics.html | |
// νΈμν° μ€μΉΌλΌ μ€μΏ¨μ λμ€λ μλ£κ΅¬μ‘°λ₯Ό νμ©ν΄λ³΄κ² λ€. | |
class Animal { val sound = "rustle" } | |
class Bird extends Animal { override val sound = "call" } | |
class Chicken extends Bird { override val sound = "cluck" } | |
class Duck extends Bird { override val sound = "duck" } | |
def foo(tweet: Bird => String) = { | |
tweet(new Bird) |
μ½νλ¦°μ μ΄μ©ν΄λ μ€νλ§ νλ μμν¬λ μ λμνλ€λ κ²
μ½λλ κ°κ²°νκ³
λ§₯λΆμ μμ΄λ‘λ§ μ½λ©νλ©΄ λΉ λ₯΄κ΅°. νμ λ³ν λΉμ©μ κ½€ λΉμΈλ€.
νΌλ³΄νμμ 'ν΄λΌμ°λ λ€μ΄ν°λΈ(Cloud Native)' μλ€κ° '리μ‘ν°λΈ(Reactive)' λ₯Ό μΉμκ³