美文网首页Spark学习笔记
1.Spark学习(Python版本):Spark安装

1.Spark学习(Python版本):Spark安装

作者: 马淑 | 来源:发表于2018-07-24 17:10 被阅读628次

    Step1: 更新apt

    sudo apt-get update

    Step2: 安装SSH、配置SSH无密码登陆

    sudo apt-get install openssh-server
    ssh localhost

    这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。
    exit # 退出刚才的 ssh localhost
    cd ~/.ssh/ # 若没有该目录
    ssh-keygen -t rsa # 会有提示,都按回车就可以
    cat ./id_rsa.pub >> ./authorized_keys # 加入授权
    此时再用 ssh localhost 命令,无需输入密码就可以直接登陆了

    Step3: 安装Java环境

    sudo apt-get install default-jre default-jdk
    安装结束以后,需要配置JAVA_HOME环境变量:
    vim ~/.bashrc
    在文件最前面添加如下单独一行(注意,等号“=”前后不能有空格),然后保存退出(Esc退出编辑模式, i进入编辑模式):
    export JAVA_HOME=/usr/lib/jvm/default-java
    source ~/.bashrc # 使变量设置生效

    执行上述命令后,可以检验一下是否设置正确:
    echo $JAVA_HOME # 检验变量值
    java -version
    $JAVA_HOME/bin/java -version # 与直接执行java -version一样

    Step4:下载hadoop安装包到主文件夹

    http://mirror.bit.edu.cn/apache/hadoop/common/下载比较快

    Step5.1:安装hadoop(单机模式)

    将 Hadoop 安装至 /usr/local/ 中:
    sudo tar -zxf ~/hadoop-2.7.6.tar.gz -C /usr/local # 解压到/usr/local中
    cd /usr/local/
    sudo mv ./hadoop-2.6.0/ ./hadoop # 将文件夹名改为hadoop
    sudo chown -R mashu ./hadoop # 修改文件权限
    Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:
    cd /usr/local/hadoop
    ./bin/hadoop version

    Hadoop 默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。

    Step5.2:安装hadoop(伪分布式)

    Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。


    修改配置文件 core-site.xml ,将:

    <configuration>
    </configuration>
    

    修改为:

    <configuration>
        <property>
            <name>hadoop.tmp.dir</name>
            <value>file:/usr/local/hadoop/tmp</value>
            <description>Abase for other temporary directories.</description>
        </property>
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:9000</value>
        </property>
    </configuration>
    

    同样的,修改配置文件 hdfs-site.xml:

    <configuration>
        <property>
            <name>dfs.replication</name>
            <value>1</value>
        </property>
        <property>
            <name>dfs.namenode.name.dir</name>
            <value>file:/usr/local/hadoop/tmp/dfs/name</value>
        </property>
        <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/usr/local/hadoop/tmp/dfs/data</value>
        </property>
    </configuration>
    

    配置完成后,执行 NameNode 的格式化:
    ./bin/hdfs namenode -format
    成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错。

    接着开启 NameNode 和 DataNode 守护进程。
    ./sbin/start-dfs.sh
    启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程: “NameNode”、”DataNode” 和 “SecondaryNameNode”

    若要关闭 Hadoop,则运行
    ./sbin/stop-dfs.sh

    下次启动 hadoop 时,无需进行 NameNode 的初始化,只需要运行 ./sbin/start-dfs.sh 就可以!

    Step6:下载Spark安装包

    http://spark.apache.org/downloads.html下载安装包。
    由于我们已经自己安装了Hadoop,所以在“Choose a package type”后面需要选择“Pre-build with user-provided Hadoop [can use with most Hadoop distributions]”,然后,点击“Download Spark”后面的“spark-2.1.0-bin-without-hadoop.tgz”下载,这样,下载到的Spark,可应用到任意Hadoop 版本。

    Step7:安装Spark(单机模式)

    Spark部署模式主要有四种,这里介绍Local模式(单机模式)的 Spark安装。
    sudo tar -zxf ~/spark-2.1.0-bin-without-hadoop.tgz -C /usr/local/
    cd /usr/local
    sudo mv ./spark-2.3.0-bin-without-hadoop/ ./spark
    sudo chown -R mashu:mashu./spark #mashu是我的用户名
    安装后,还需要修改Spark的配置文件spark-env.sh:
    cd /usr/local/spark
    cp ./conf/spark-env.sh.template ./conf/spark-env.sh
    编辑spark-env.sh文件,在第一行添加配置信息:
    vim ./conf/spark-env.sh
    export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
    有了上面的配置信息以后,Spark就可以把数据存储到Hadoop分布式文件系统HDFS中,也可以从HDFS中读取数据。如果没有配置上面信息,Spark就只能读写本地数据,无法读写HDFS数据。

    通过运行Spark自带的示例,验证Spark是否安装成功。
    cd /usr/local/spark
    bin/run-example SparkPi
    bin/run-example SparkPi 2>&1 | grep "Pi is" #通过 grep 命令进行过滤掉运行信息

    Step8:修改环境变量

    vim ~/.bashrc
    在.bashrc文件中添加如下内容:
    export JAVA_HOME=/usr/lib/jvm/default-java
    export HADOOP_HOME=/usr/local/hadoop
    export SPARK_HOME=/usr/local/spark
    export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.6-src.zip:$PYTHONPATH
    export PYSPARK_PYTHON=python3
    export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PATH

    PYTHONPATH环境变量主要是为了在Python3中引入pyspark库。
    PYSPARK_PYTHON变量主要是设置pyspark运行的python版本。
    .bashrc中必须包含JAVA_HOME,HADOOP_HOME,SPARK_HOME,PYTHONPATH,PYSPARK_PYTHON,PATH这些环境变量。如果已经设置了这些变量则不需要重新添加设置。

    接着还需要让该环境变量生效,执行如下代码:
    source ~/.bashrc

    前面已经安装了Hadoop和Spark,如果Spark不使用HDFS和YARN,那么就不用启动Hadoop也可以正常使用Spark。

    如果按照上面的安装步骤,已经设置了PYSPARK_PYTHON环境变量,那么你直接使用如下命令启动pyspark即可。


    Step9:退出pyspark

    exit()或者ctrl+D

    Step10:Spark独立应用程序编程

    新建一个test.py文件,并在test.py添加代码:
    cd ~
    vim test.py
    在test.py中输入以下代码:

    from pyspark import SparkContext
    sc = SparkContext( 'local', 'test')
    logFile = "file:///usr/local/spark/README.md"
    logData = sc.textFile(logFile, 2).cache()
    numAs = logData.filter(lambda line: 'a' in line).count()
    numBs = logData.filter(lambda line: 'b' in line).count()
    print('Lines with a: %s, Lines with b: %s' % (numAs, numBs))
    

    保存代码后,通过如下命令执行(我自己的电脑已经删除了python2, 只留下python 3.5.2):
    python ~/test.py


    自此,就完成了第一个 Spark 应用程序。

    相关文章

      网友评论

        本文标题:1.Spark学习(Python版本):Spark安装

        本文链接:https://www.haomeiwen.com/subject/vzdymftx.html