zoukankan      html  css  js  c++  java
  • 基于Hadoop伪分布式模式集群搭建Spark环境

    一、前置安装

    1)JDK

    2)Hadoop伪分布式集群

    二、Scala安装

    1)解压Scala安装包

    2)环境变量

    SCALA_HOME = C:ProgramDatascala-2.10.6
    Path = %SCALA_HOME%in

    3)测试

    三、Spark安装

    1)解压Spark安装包

    2)环境变量

    SPARK_HOME = C:ProgramDataspark-1.6.1-bin-hadoop2.6
    Path = %SPARK_HOME%in

    3)测试

    http://localhost:4040/jobs/

    四、运行wordcounut程序

    1)启动Hadoop集群

    cd C:ProgramDatahadoop-2.7.2sbin
    C:ProgramDatahadoop-2.7.2sbin>start-all.cmd
    C:ProgramDatahadoop-2.7.2sbin>jps

    2)创建word.txt

    3.1)读取Hadoop的HDFS文件运行WordCount

    1、上传word.txt到Hdfs

    hadoop fs -put C:ProjectsWordCountword.txt /Demo/word.txt

    2、启动spark-shell

    3、输入Scala命令

    sc.textFile("hdfs://localhost:9000/Demo/word.txt").flatMap(x => x.split("	")).map(x=>(x,1)).reduceByKey(_+_).collect()

    3.2)读取本地文件运行WordCount

    1、启动spark-shell

    2、输入Scala命令

    sc.textFile("file:///C:/Projects/WordCount/word.txt").flatMap(x => x.split("	")).map(x=>(x,1)).reduceByKey(_+_).collect()

    五、Spark部署运行

    cmd --> spark-submit(无需spark-shell)

    spark-submit --executor-memory 1G --num-executors 8 --class main.MrDemo D:ProjectsIdeaProjectsMyTestoutartifactsMyTest_jarMyTest.jar 2018072712

    六、Python下Spark开发环境搭建(PySpark)

    Bloghttps://www.cnblogs.com/guozw/p/10046156.html

    1)安装Anaconda3-2019.03-Windows-x86_64(python 3.7.3)

    2)下载spark-2.4.2-bin-hadoop2.7.tgz,解压,然后将spark目录下的pyspark文件夹(C:ProgramDataspark-2.4.2-bin-hadoop2.7pythonpyspark)复制到python安装目录(C:ProgramDataAnaconda3Libsite-packages)里

    注意:Spark与Python版本要对应 - Python 2.7.5/3.5.2 + Spark 2.2.1 (pip install pyspark==2.2.1);Python 3.7.3 + spark-2.4.2-bin-hadoop2.7.tgz (pyspark 2.4.2)

    3)安装py4j:Anaconda Prompt --> 安装py4j库

    pip install py4j

    4)新建一个PYTHONPATH的系统变量

    PATHONPATH=%SPARK_HOME%python;%SPARK_HOME%pythonlibpy4j-0.9-src.zip

    5)PyCharm-->File-->Settings-->Project Interpreter-->Show All-->+-->System Interpreter-->选择:C:ProgramDataAnaconda3python.exe

    6)PyCharm下编写WordCount测试

    1、创建Session

    from pyspark.sql import SparkSession
    # appName中的内容不能有空格,否则报错
    spark = SparkSession.builder.master("local[*]").appName("WordCount").getOrCreate()
    #获取上下文
    sc = spark.sparkContext

    带有空格报错情况如下:

    2、创建上下文

    # 第一种方式
    conf = SparkConf().setAppName('test').setMaster('local')
    sc = SparkContext(conf=conf)
    # 第二种方式
    sc=SparkContext('local','test')

    3、实例

    # 实例1 - 读取文件并打印
    from pyspark import SparkContext, SparkConf
    
    conf = SparkConf().setAppName('test').setMaster('local')
    sc = SparkContext(conf=conf)
    
    rdd = sc.textFile('d:/scala/log.txt')
    print(rdd.collect())
      
    # 实例2 - WordCount
    import sys
    from operator import add from pyspark import SparkContext if __name__ == "__main__": sc = SparkContext(appName="PythonWordCount") lines = sc.textFile('./Word.txt') counts = lines.flatMap(lambda x: x.split(' ')) .map(lambda x: (x, 1)) .reduceByKey(add) output = counts.collect() for (word, count) in output: print("%s: %i" % (word, count)) sc.stop()

    问题

    Java.util.NoSuchElementException: key not found: _PYSPARK_DRIVER_CALLBACK_HOST

    原因:版本不兼容,PySpark的版本与Spark不匹配

    解决:查看Spark版本,例如为2.1.0,则使用Pip安装PySpark时,带上版本号

    pip install pyspark==2.1.2 # 皆为2.1版本

    ✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡Anaconda3.7与Anaconda3.5切换✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡

    win+R输入cmd进入命令行,跳转到Anaconda的安装目录,然后执行

    cd C:ProgramDataAnaconda3
    cd C:ProgramDataAnaconda3.5
    python .Lib\_nsis.py mkmenus

    然后再点击Anaconda Prompt,即切换到当前Python环境

    ✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡✡

  • 相关阅读:
    Bootstrap的下拉菜单float问题
    style标签进行实时编辑及修改css(转)
    立即调用的函数表达式IIFE
    标签球Js插件
    如何正确使用Google搜索
    练习一:四则运算
    ARM伪指令
    vim 命令总结
    dialog BLE SDK 学习(1)
    ARM指令集
  • 原文地址:https://www.cnblogs.com/YSPXIZHEN/p/11230481.html
Copyright © 2011-2022 走看看