大数据(070)Spark【Spark内核_RDD&Spark安装运行】

一、RDD(Resilient Distributed Dataset)弹性分布式数据集

        Spark 中最基本的数据抽象是RDD。

二、RDD五大特点

        • A list of partitions

        RDD由很多partition构成,在spark中,计算式,有多少partition就对应有多少个task来执行。 如果从hdfs文件创建的RDD,分区数和block数一致,如果从本地文件中创建RDD,默认是机器的cpu个数。

        • A function for computing each split

        对RDD做计算,相当于对RDD的每个split或partition做计算。

        • A list of dependencies on other RDDs

        RDD之间有依赖关系,可溯源。

        • Optionally, a Partitioner for key-value RDDs

        可选项。如果RDD里面存的数据是key-value形式,则可以传递一个自定义的Partitioner进行重新分区。

        • Optionally, a list of preferred locations to compute eachsplit on

        可选项。RDD抽象出的partition数据在内存中。RDD转换过程中一直是内存到内存的过程。如果内存性能太差,可以指定将partition加载至另外性能好的机器上运行。

三、Spark运行时

四、Spark代码示例

        • lines = sc.textFile(“hdfs://...”)
        • 加载进来成为RDD
        • errors = lines.filter(_.startsWith(“ERROR”))
        • Transformation转换
        • errors.persist()
        • 缓存RDD
        • Mysql_errors = errors.filter(_.contain(“MySQL”)).count
        • Action执行
        • http_errors = errors.filter(_.contain(“Http”)).count
        • Action执行

五、安装运行Spark

5.1 Local集群模式

        将spark-1.3.1-bin-hadoop2.4.tgz上传至服务器,执行下面命令解压。

tar -zxvf spark-1.3.1-bin-hadoop2.4.tgz
cd spark-1.3.1-bin-hadoop2.4

        然后再执行下方命令使用LOCAL模式计算圆周率

./bin/spark-submit --class org.apache.spark.examples.SparkPi --master local ./lib/spark-examples-1.3.1-hadoop2.4.0.jar 100

        结果如下图:

5.2 standalone集群模式

        将spark-1.3.1-bin-hadoop2.4.tgz上传至每一台服务器,执行下面命令解压。

tar -zxvf spark-1.3.1-bin-hadoop2.4.tgz
cd spark-1.3.1-bin-hadoop2.4/conf/
cp slaves.template slaves
cp spark-env.sh.template spark-env.sh

         在每一台服务器上修改slaves和spark-env.sh

        在master节点执行下方命令启动Spark

cd /home/spark-1.3.1-bin-hadoop2.4/
./sbin/start-all.sh

        出现下图日志说明启动了一个master,两个worker

        前往http://node1:8080/ ,可以看到如下界面,说明启动成功。

5.2.1 client模式,结果在控制台可见

        执行下方命令

cd /home/spark-1.3.1-bin-hadoop2.4
./bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://node1:7077 --executor-memory 1G --total-executor-cores 1 ./lib/spark-examples-1.3.1-hadoop2.4.0.jar 100

        控制台出现下图回显说明执行成功

        同时观察界面,发现任务显示在了界面中

5.2.2 cluster模式,结果在spark管理控制界面可见

        执行下方命令

cd /home/spark-1.3.1-bin-hadoop2.4
./bin/spark-submit --class org.apache.spark.examples.SparkPi --master spark://node1:7077 --deploy-mode cluster --supervise --executor-memory 1G --total-executor-cores 1 ./lib/spark-examples-1.3.1-hadoop2.4.0.jar 10

        出现下图说明提交任务成功

        如下图所示为运行完成的任务。

        点击Completed Drivers的Worker,再点击stdout便可以看到结果。

 

5.3 Yarn模式

5.3.1 停止Spark,配置Spark Yarn模式的配置

        执行下面命令,停止Spark

cd /home/spark-1.3.1-bin-hadoop2.4/
./sbin/stop-all.sh

        对/home/spark-1.3.1-bin-hadoop2.4/conf/spark-env.sh做如下配置。

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_HOME=/home/spark-1.3.1-bin-hadoop2.4
export SPARK_JAR=/home/spark-1.3.1-bin-hadoop2.4/lib/spark-assembly-1.3.1-hadoop2.4.0.jar
export PATH=$SPARK_HOME/bin:$PATH

5.3.2 启动Hadoop

         我们之前已经大见过一个Hadoop的HA集群,现在执行下方步骤将其启动:

        1、启动Zookeeper(在每一台服务器上执行下面命令)

zkServer.sh start

        2、在nameNode上执行start-all.sh,启动Hadoop集群

        3、启动完成后我们查看http://node1:50070/http://node2:50070/,如下说明Hadoop集群启动成功。

5.3.3 启动Spark

        执行下方命令,启动Spark

cd /home/spark-1.3.1-bin-hadoop2.4/
./sbin/start-all.sh

        会出现下图日志

        前往http://node1:8080/,可以看到下图截图,说明启动成功:

 5.3.4、提交Spark程序

 1、Client模式(结果控制台可见)

        执行下面命令提交任务。

cd /home/spark-1.3.1-bin-hadoop2.4
./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn-client --executor-memory 250M --num-executors 1 ./lib/spark-examples-1.3.1-hadoop2.4.0.jar 10

        提交成功后,前往http://node1:8088/界面点击左侧Applications,可以看到如下所示任务运行在Yarn中。我不小心手抖提交了三次,所以有三个任务,其中一个是Running状态。

        继续观察控制台,可以发现运行完毕之后,结果会在控制台显示出来。

 2、cluster模式(结果在界面可见)

        执行下面命令提交任务。

cd /home/spark-1.3.1-bin-hadoop2.4
./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn-cluster --executor-memory 200M --num-executors 1 ./lib/spark-examples-1.3.1-hadoop2.4.0.jar 10

        提交成功后,控制台依次打印如下:

                                                                         yarn分配资源成功,接收任务

                                                                         任务开始运行,控制台结束打印

        我们再前往http://node1:8088/界面点击左侧Applications,可以看到如下所示任务运行在Yarn中。

        等待任务运行完成

 

        之后可以看到如下所示结果:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值