精华内容
下载资源
问答
  • jupyter中使用pyspark连接spark集群

    千次阅读 2018-04-27 14:05:56
    目标:此文在jupyter中配置pyspark,并非配置pyspark的内核,而是希望在python3的内核下,使用pyspark连接spark集群. 准备:spark单机版 , jupyter notebook ,且两者不在同一机子上 1.安装 在默认的jupyter notebook...

    目标:此文在jupyter中配置pyspark,并非配置pyspark的内核,而是希望在python3的内核下,使用pyspark连接spark集群.
    准备:spark单机版 , jupyter notebook ,且两者不在同一机子上

    1.安装

    在默认的jupyter notebook中是没有pyspark包的,所以需要下载依赖包才行.
    网上现在有2个包,支持python 去连接 spark . 一个是findspark,经过测试,在创建sparkcontext的时候,它会读取jupyter的机子上的spark环境,因为这两者不是在同一机子上,所以不行. 另外一个是pyspark包,此包同时依赖了 pypandoc 和 py4j 两个包,需要先安装.
    ps:jupyter机子需要jdk环境

    2.测试

    安装之后,可以在jupyter 中导入pyspark包了

    import pyspark
    from pyspark import SparkConf, SparkContext
    ----
    #driver意思为连接spark集群的机子,所以配置host要配置当前编写代码的机子host
    conf = SparkConf().setMaster('spark_host').set('spark.driver.host','连接spark集群的本机host').set('spark.local.ip','连接spark集群的本机host')
    sc = SparkContext.getOrCreate(conf)
    sc 检测一下此sc的信息.可以发现成功连接到master所在的spark
    

    ps:因为单机版spark,需要在spark/sbin 目录下启动start-master.sh 和 start-slave.sh spark://xxxx:7077 ,启动master和 worker节点.不然在jupyter中提交的job是不会执行的.

    展开全文
  • CentOS7上安装Jupyter notebook使用pyspark连接spark集群 一、Jupyter notebooks安装教程 1.安装Jupyter 2. 首先打开python终端,生成jupyter登陆密码 3. 接下来生成密钥 4. 配置jupyter notebook 5.启动jupyter 6....

    一、Jupyter notebooks安装教程

    1.安装Jupyter

    #安装Jupyter
    pip install jupyter
    

    2. 首先打开python终端,生成jupyter登陆密码

    登陆密码设置为root-123456
    在这里插入图片描述

    3. 接下来生成密钥

    openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem
    

    在这里插入图片描述

    4. 配置jupyter notebook

    生成配置文件

    jupyter-notebook --generate-config
    

    在这里插入图片描述
    修改/root/.jupyter/jupyter_notebook_config.py文件

    vim /root/.jupyter/jupyter_notebook_config.py
    c.NotebookApp.password = u'sha1:bb281d407795:9fbe40980e25c5c092ad2c94e801b84d989e12ea'
    c.NotebookApp.certfile=u'/moudle/jupyter/mycert.pem'
    c.NotebookApp.ip = '10.177.33.45' #本机IP
    c.NotebookApp.port=9999 #端口
    

    在这里插入图片描述

    5.启动jupyter

    jupyter notebook --ip=10.177.33.45 --no-browser --allow-root
    

    在这里插入图片描述

    6.本地浏览器打开jupyter

    https://10.177.33.45:9999/
    在这里插入图片描述

    二、Jupyter连接pyspark

    1.设置文件变量

    # Spark安装目录
    export SPARK_HOME=/moudle/spark
    export PATH=$PATH:$SPARK_HOME/sbin:$SPARK_HOME/bin:$PATH
    #指向spark目录下的python文件夹和py4j包
    export PYTHON_PATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.7-src.zip:$PYTHON_PATH
    #使用python3
    export PYSPARK_PYTHON=python3
    export PYSPARK_DRIVER_PYTHON=jupyter
    export PYSPARK_DRIVER_PYTHON_OPTS="notebook --ip=10.177.33.45 --no-browser --allow-root"
    

    使设置生效

    source /etc/profile
    

    2. 启动pyspark

    pyspark
    

    在这里插入图片描述

    3. 登录pyspark的Jupyter

    浏览器中输入链接https://10.177.33.45:10000/
    默认启动了SparkContext

    SparkContext(app=PySparkShell, master=local[*]) created by <module> at /home/biapp/miniconda3/lib/python3.7/site-packages/IPython/utils/py3compat.py:168 
    

    在这里插入图片描述

    4.测试pyspark代码

    # 默认启动了SprakContext,不需要引入SparkContext模块
    #from pyspark import SparkContext
    #sc = SparkContext("local","count app")
    words = sc.parallelize(
    ["scala",
    "java",
    "hadoop"
    "spark",
    "python",
    "C++",
    "pyspark"]
    )
    words_map = words.map(lambda x:(x,1))
    mapping = words_map.collect()
    print("key value pair -> %s" % (mapping))
    
    

    在这里插入图片描述

    展开全文
  • 最近在学习spark,在本地win10,连接虚拟机spark,用pyspark操作分布式集群进行数据分析和绘图,遇到了一下bug,这里记录一下。 1、检查本地和集群的python、java、spark版本,尽可能保证一致 2、NameError: name '...

    最近在学习spark,在本地win10,连接虚拟机spark,用pyspark操作分布式集群进行数据分析和绘图,遇到了一下bug,这里记录一下。

    1、检查本地和集群的python、java、spark版本,尽可能保证一致

    2、NameError: name 'memoryview' is not defined

    python版本是2.6.6的,版本太低,升级版本

     

    记录一下看到的编译python时两个make的区别

    注意:make install 与 make altinstall的区别: install 除了做 altinstall 外还会做 bininstall , maninstall 共三个动作,bininstall 就是在处理 Symbolic Link Chain 的相关事务, 而 maninstall 则是在产生 unversioned manual pages, 所以, 很明显的, 不使用 bininstall 可以避免 python install 时 update link 的问题。如果使用make install,你将会看到在系统中有两个不同版本的Python在/usr/bin/目录中。这将会导致很多问题,而且不好处理。

    3、pyspark读取json文件

    报错:org.apache.spark.sql.DataFrame = [_corrupt_record: string]

    解决方法有两种:

    a、去掉文件中的换行符

    b、spark.read.option("multiLine", true).json() 在读取json文件时,指定读取多行为真,option("multiLine", true)

    4、WARN scheduler.TaskSchedulerImpl: Initial job has not accepted any resources

    任务初始化失败,到master:8080端口上去看看spark job会发现,任务core为0.

    解决办法

    a、spark-env.sh上配置一下

    export SPARK_WORKER_MEMORY=512m
    export SPARK_WORKER_CORES=2
    export SPARK_WORKER_INSTANCES=1
    export SPARK_EXECUTOR_MEMORY=512m

    b、检查一下 .set('spark.executor.memory', '1g') 是否超过了给虚拟机分配的内存, 减小一些就好了

    5、Can’t assign requested address: Service ‘sparkDriver’ failed after 16 retries

    sparkDriver错误 解决方法: 添加.set("spark.driver.host", "localhost")

    6、使用pandas_udf报错

    本人spark和pyspark都是2.4.5 先看jdk版本是否太够,推荐是1.8,没问题的话,就是pyarrow版本太高,降到0.14.1活更低就好了

    7、SparkSql报错Use the CROSS JOIN syntax to allow cartesian products between these relations.

    spark2默认不支持笛卡尔积 解决方法: 加入参数 set("spark.sql.crossJoin.enabled", True)

    8、pbzip2: error while loading shared libraries: libbz2.so.1.0: cannot open shared object file: No such file or directory

    先看试试 yum install bzip2-libs

    如果不行就使用 find / -name libbz2.so 查找文件位置

    做一个软链接libbz2.so.1.0,指向已经有的libbz2.so.1.0.4

    cd /usr/llib64
    ln -s libbz2.so.1.0.4  libbz2.so.1.0

    再运行就好了

    9、ModuleNotFoundError: No module named '_bz2'

    python报错:

        from _bz2 import BZ2Compressor, BZ2Decompressor
    ModuleNotFoundError: No module named '_bz2'

    缺少文件bz2的so文件

    解决方法: 网上下载 _bz2.cpython-36m-x86_64-linux-gnu.so 文件, 放到python里面的lib-dynload下就好了(usr/python36/lib/python3.6/lib-dynload/)

                       -36m是版本,根据自己的python版本改一下就可以用

     

    https://pan.baidu.com/s/1fHhxNiHOLKDqZ-9wHw3JTA

    文件在这个博主文章上下载的 python解决 ModuleNotFoundError: No module named _bz2

    10、pip使用出现错误

    报错:

    Can't connect to HTTPS URL because the SSL module is not available. - skipping
    ​
    pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

    pip使用需要ssl模块,但是python默认编译是不可用的,所以要重新编译安装一下python

    解决方法
    a、删除python文件夹
    b、安装openssl: yum -y install openssl-devel
    c、加上--with-ssl: ./configure --prefix=/usr/local/python3 --with-ssl

     

    展开全文
  • pycharm利用pyspark远程连接spark集群

    千次阅读 2019-08-29 10:29:03
    所以利用pycharm和pyspark远程连接spark集群。这里记录下遇到的问题及方法。 主要是参照下面的文献完成相应的内容,但是具体问题要具体分析。 1 方法 1.1 软件配置 spark2.3.3, hadoop2.6, python3 1.2 spark配置 Sp...

    0 背景

    由于工作需要,利用spark完成机器学习。因此需要对spark集群进行操作。所以利用pycharm和pyspark远程连接spark集群。这里记录下遇到的问题及方法。
    主要是参照下面的文献完成相应的内容,但是具体问题要具体分析。

    1 方法

    1.1 软件配置
    spark2.3.3, hadoop2.6, python3
    1.2 spark配置
    Spark集群的每个节点的Python版本必须保持一致。在每个节点的$SPARK_HOME/conf/spark-env.sh中添加一行:具体看你的安装目录。

    export PYSPARK_PYTHON=/home/hadoop/anaconda2/bin/python3
    

    此步骤就是将python添加到spark的配置中。
    此时,在服务器命令行输入pyspark时,可以正常进入spark。
    1.3本地配置
    1.3.1 首先将spark2.3.3从服务器拷贝到本地。
    注意: 由于我集群安装的是spark-2.3.3-bin-without-hadoop。但是拷贝到本地后,总是报错Java gateway process… 。同时我将hadoop2.6,的包也从服务器拷贝到本地加载到程序中,同样报错。
    最后,直接从spark的官网中,下载了spark-2.3.3-bin-hadoop2.6,这回就可以了。
    pyspark的版本与spark的版本最好对应。比如pyspark2.3.3,spark2.3.3

    # os.environ['SPARK_HOME'] = r"F:\big_data\spark-2.3.3-bin-without-hadoop"(无用)
    os.environ['SPARK_HOME'] = r"F:\big_data\spark-2.3.3-bin-hadoop2.6"(有用)
    # os.environ["HADOOP_HOME"] = r"F:\big_data\hadoop-2.6.5"(无用)
    # os.environ['JAVA_HOME'] = r"F:\Java\jdk1.8.0_144"(无用)
    

    1.3.2
    C:\Windows\System32….\hosts(Windows机器)中加入Spark集群Master节点的IP与主机名的映射。需要管理员权限修改。在这里插入图片描述
    其中的spark_cluster就是对于Master的IP的映射名。(直接写IP一样可以,映射名是为了方便)
    1.3.3
    添加刚刚下载解压好的spark的python目录到pycharm的project structure
    在这里插入图片描述
    1.3.4
    新建py文件,编辑Edit Configurations添加SPARK_HOME变量
    在这里插入图片描述
    注意: 在实际中,这个不添加好像也可以。只需要在程序中加载了spark_home.比如os.envion(…spark…)

    2 测试

    import os
    from pyspark import SparkContext
    from pyspark import SparkConf
    # os.environ['SPARK_HOME'] = r"F:\big_data\spark-2.3.3-bin-without-hadoop"
    os.environ['SPARK_HOME'] = r"F:\big_data\spark-2.3.3-bin-hadoop2.6"
    # os.environ["HADOOP_HOME"] = r"F:\big_data\hadoop-2.6.5"
    # os.environ['JAVA_HOME'] = r"F:\Java\jdk1.8.0_144"
    print(0)
    conf = SparkConf().setMaster("spark://spark_cluster:7077").setAppName("test")
    sc = SparkContext(conf=conf)
    print(1)
    logData = sc.textFile("file:///opt/spark-2.3.3-bin-without-hadoop/README.md").cache()
    print(2)
    print("num of a",logData)
    sc.stop()
    

    在这里插入图片描述

    3 参考

    PyCharm+PySpark远程调试的环境配置的方法
    Spark下:Java gateway process exited before sending the driver its port number等问题

    估计每个人遇到的问题不一样,但是大同小异,具体问题具体分析。

    展开全文
  • pyspark连接spark集群Windows环境搭建

    千次阅读 多人点赞 2019-05-23 13:52:38
    2、spark-2.4.3-bin-hadoop2.7(spark版本要和集群上的一样) 3、JDK1.8 python环境配置 pip install pyspark 这里如果遇到安装超时的情况采用以下命令 pip --default-timeout=100 installpyspark 或 pip --...
  • 记录Pyspark使用中遇到一次填坑过程,得到个血泪的教训啊 环境 Spark 2.3.0 集群模式:yarn Python 3.x CentOS 7 问题1 在通过spark-submit提交任务时,出现首次报错 task 0.3 in stage 73.0 (TID 3953, h2, ...
  • 关于 PySpark 提交集群运行 原先代码如下 import os import sys project = 'OneStopDataPlatformPY' # 工作项目根目录 path = os.getcwd().split(project)[0] + project sys.path.append(path) print(path) from ...
  • pyspark连接mysql

    千次阅读 2018-07-23 15:14:24
    首先按照以下连接先在本地mysql中导入数据: https://blog.csdn.net/appleyuchi/article/details/79439387 然后配置好各种文件以后,在sublime中输入以下代码运行:   from pyspark import SparkContext from ...
  • PySpark 连接Hive

    千次阅读 2020-05-14 14:34:24
    文章目录简介环境搭建与效果演示更细节的搭建方法搭建HDFS、Spark或hive的前提已经有了远程可访问的测试集群搭建hadoop2.7.2修改hadoop配置格...
  • pyspark连接hdfs

    2018-03-06 14:58:00
    from pyspark import SparkContext from pyspark import SparkConf string_test = 'pyspark_test' conf = SparkConf().setAppName(string_test).setMaster('yarn') sc = SparkContext(conf=conf) hdfs_data = s...
  • pyspark连接oracle

    千次阅读 2018-11-20 20:02:26
    在本文中,我将Apache Spark连接到Oracle数据库,直接读取数据,并将其写入DataFrame。 随着我们日常生活中产生的数据量的快速增长,大数据技术已经很快进入我们的生活。 我们现在使用的工具能够快速有效地解决我们...
  • 原文链接:... 1.软件 1、anaconda(python3.6) 2、spark-2.4.3-bin-hadoop2.7(spark版本要和集群上的一样) 3、JDK1.8 2.python环境配置 pip install pyspark 这里如果遇到安装超时的情况采用...
  • pyspark 连接mysql数据库

    2017-06-29 14:33:00
    1:载mysql-connector 放入 jars下 2:在spark-env.sh中 配置EXTRA_SPARK_CLASSPATH环境变量  export EXTRA_SPARK_CLASSPATH=/home/fly/spark-2.1.1-bin-hadoop2.7/jars/ df = sqlContext.read.format("jdbc")...
  • 在日常的工作中,MySQL和SQLServer是经常使用到的两种数据库,直接连接使用的话是很简单的,如果说需要基于pyspark连接工具,进行相应的数据查询操作的话就会复杂一点,今天简单的基于pyspark模块实现了连接MySQL...
  • 在日常的工作中,MySQL和SQLServer是经常使用到的两种数据库,直接连接使用的话是很简单的,如果说需要基于pyspark连接工具,进行相应的数据查询操作的话就会复杂一点,今天简单的基于pyspark模块实现了连接SQL...
  • pyspark连接mysql数据库 说明一点,spark2.0(包括spark2.0)以下的版本不支持python3.6以上的版本(包括python3.6)。(亲测到怀疑人生) 三台机都要。 由于CentOS本身自带python2.7.5,而2.-.-现在已经逐步退出。...
  • Ubuntu18.04 pyspark连接mysql8.0 配置JDBC下载JDBC驱动文件启动mysql启动pyspark 下载JDBC驱动文件 https://dev.mysql.com/downloads/connector/j/ 操作系统选择 Platform Independent,下载mysql-connector-...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,176
精华内容 870
关键字:

pyspark连接集群