• 安装Spark集群(在CentOS上)


    环境:CentOS 6.4, Hadoop 1.1.2, JDK 1.7, Spark 0.7.2, Scala 2.9.3

    1. 安装 JDK 1.7

    yum search openjdk-devel
    sudo yum install java-1.7.0-openjdk-devel.x86_64
    /usr/sbin/alternatives --config java
    /usr/sbin/alternatives --config javac
    sudo vim /etc/profile
    # add the following lines at the end
    export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.19.x86_64
    export JRE_HOME=$JAVA_HOME/jre
    export PATH=$PATH:$JAVA_HOME/bin
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    # save and exit vim
    # make the bash profile take effect immediately
    $ source /etc/profile
    # test
    $ java -version
    

    2. 安装 Scala 2.9.3

    Spark 0.7.2 依赖 Scala 2.9.3, 我们必须要安装Scala 2.9.3.

    下载 scala-2.9.3.tgz 并 保存到home目录.

     1 $ tar -zxf scala-2.9.3.tgz
     2 $ sudo mv scala-2.9.3 /usr/lib
     3 $ sudo vim /etc/profile
     4 # add the following lines at the end
     5 export SCALA_HOME=/usr/lib/scala-2.9.3
     6 export PATH=$PATH:$SCALA_HOME/bin
     7 # save and exit vim
     8 #make the bash profile take effect immediately
     9 source /etc/profile
    10 # test
    11 $ scala -version

    3. 下载预编译好的Spark

    下载预编译好的Spark, spark-0.7.2-prebuilt-hadoop1.tgz.

    如果你想从零开始编译,则下载源码包,但是我不建议你这么做,因为有一个Maven仓库,twitter4j.org, 被墙了,导致编译时需要翻墙,非常麻烦。如果你有DIY精神,并能顺利翻墙,则可以试试这种方式。

    4.1 解压

    $ tar -zxf spark-0.7.2-prebuilt-hadoop1.tgz
    

    4.2 设置SPARK_EXAMPLES_JAR 环境变量

    $ vim ~/.bash_profile
    # add the following lines at the end
    export SPARK_EXAMPLES_JAR=$HOME/spark-0.7.2/examples/target/scala-2.9.3/spark-examples_2.9.3-0.7.2.jar
    # save and exit vim
    #make the bash profile take effect immediately
    $ source /etc/profile
    

    这一步其实最关键,很不幸的是,官方文档和网上的博客,都没有提及这一点。我是偶然看到了这两篇帖子,Running SparkPiNull pointer exception when running ./run spark.examples.SparkPi local,才补上了这一步,之前死活都无法运行SparkPi。

    4.3 (可选)设置 SPARK_HOME环境变量,并将SPARK_HOME/bin加入PATH

    $ vim ~/.bash_profile
    # add the following lines at the end
    export SPARK_HOME=$HOME/spark-0.7.2
    export PATH=$PATH:$SPARK_HOME/bin
    # save and exit vim
    #make the bash profile take effect immediately
    $ source /etc/profile
    

    4.4 现在可以运行SparkPi了

    $ cd ~/spark-0.7.2
    $ ./run spark.examples.SparkPi local 

    5.1 安装Hadoop

    用VMware Workstation 创建三台CentOS 虚拟机,hostname分别设置为 master, slave01, slave02,设置SSH无密码登陆,安装hadoop,然后启动hadoop集群。参考我的这篇博客,在CentOS上安装Hadoop.

    5.2 Scala

    在三台机器上都要安装 Scala 2.9.3 , 按照第2节的步骤。JDK在安装Hadoop时已经安装了。

    5.3 在master上安装并配置Spark

    解压

    $ tar -zxf spark-0.7.2-prebuilt-hadoop1.tgz
    

    设置SPARK_EXAMPLES_JAR 环境变量

    $ vim ~/.bash_profile
    # add the following lines at the end
    export SPARK_EXAMPLES_JAR=$HOME/spark-0.7.2/examples/target/scala-2.9.3/spark-examples_2.9.3-0.7.2.jar
    # save and exit vim
    #make the bash profile take effect immediately
    $ source /etc/profile
    

    在 in conf/spark-env.sh 中设置SCALA_HOME

    $ cd ~/spark-0.7.2/conf
    $ mv spark-env.sh.template spark-env.sh
    $ vim spark-env.sh
    # add the following line
    export SCALA_HOME=/usr/lib/scala-2.9.3
    # save and exit
    

    conf/slaves, 添加Spark worker的hostname, 一行一个。

    $ vim slaves
    slave01
    slave02
    # save and exit
    

    (可选)设置 SPARK_HOME环境变量,并将SPARK_HOME/bin加入PATH

    $ vim ~/.bash_profile
    # add the following lines at the end
    export SPARK_HOME=$HOME/spark-0.7.2
    export PATH=$PATH:$SPARK_HOME/bin
    # save and exit vim
    #make the bash profile take effect immediately
    $ source /etc/profile
    

    5.4 在所有worker上安装并配置Spark

    既然master上的这个文件件已经配置好了,把它拷贝到所有的worker。注意,三台机器spark所在目录必须一致,因为master会登陆到worker上执行命令,master认为worker的spark路径与自己一样。

    $ cd
    $ scp -r spark-0.7.2 dev@slave01:~
    $ scp -r spark-0.7.2 dev@slave02:~
    

    按照第5.3节设置SPARK_EXAMPLES_JAR环境变量,配置文件不用配置了,因为是直接从master复制过来的,已经配置好了。

    5.5 启动 Spark 集群

    在master上执行

    $ cd ~/spark-0.7.2
    $ bin/start-all.sh
    

    检测进程是否启动

    $ jps
    11055 Jps
    2313 SecondaryNameNode
    2409 JobTracker
    2152 NameNode
    4822 Master
    

    浏览master的web UI(默认http://localhost:8080). 这是你应该可以看到所有的word节点,以及他们的CPU个数和内存等信息。 ##5.6 运行SparkPi例子

    $ cd ~/spark-0.7.2
    $ ./run spark.examples.SparkPi spark://master:7077
    

    (可选)运行自带的例子,SparkLR 和 SparkKMeans.

    #Logistic Regression
    #./run spark.examples.SparkLR spark://master:7077
    #kmeans
    $ ./run spark.examples.SparkKMeans spark://master:7077 ./kmeans_data.txt 2 1
    

    5.7 从HDFS读取文件并运行WordCount

    $ cd ~/spark-0.7.2
    $ hadoop fs -put README.md .
    $ MASTER=spark://master:7077 ./spark-shell
    scala> val file = sc.textFile("hdfs://master:9000/user/dev/README.md")
    scala> val count = file.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_+_)
    scala> count.collect()
    

    5.8 停止 Spark 集群

    $ cd ~/spark-0.7.2
    $ bin/stop-all.sh
  • 相关阅读:
    备战考研算法笔记(四)快速排序
    VMware安装
    使用 Vagrant 打造跨平台开发环境
    类加载器,注解,动态代理
    IE兼容forEach/map/every/some等新方法
    不得不看的Java代码性能优化总结
    关于Oracle误操作--数据被Commit后的数据回退(闪回)
    JPA与Hibernate的关系
    Jenkins-GitHub-Gradle自动构建项目
    过滤器Filter
  • 原文地址:https://www.cnblogs.com/vincent-hv/p/3263867.html
Copyright © 2020-2023  润新知