美文网首页
GraphFrames初探

GraphFrames初探

作者: 木亦汐 | 来源:发表于2019-03-11 14:48 被阅读0次

    GraphFrames基本介绍

           GraphFrames,该类库是构建在DataFrame之上,它既能利用DataFrame良好的扩展性和强大的性能,同时也为Scala、Java和Python提供了统一的图处理API。GraphX基于RDD API,不支持Python API; 但GraphFrame基于DataFrame,并且支持Python API。

           与Apache Spark的GraphX类似,GraphFrames支持多种图处理功能,但得益于DataFrame因此GraphFrames与GraphX库相比有着下面几方面的优势:

    1、统一的 API: 为Python、Java和Scala三种语言提供了统一的接口,这是Python和Java首次能够使用GraphX的全部算法。

    2、强大的查询功能:GraphFrames使得用户可以构建与Spark SQL以及DataFrame类似的查询语句。

    3、图的存储和读取:GraphFrames与DataFrame的数据源完全兼容,支持以Parquet、JSON以及CSV等格式完成图的存储或读取。

      在GraphFrames中图的顶点(Vertex)和边(Edge)都是以DataFrame形式存储的,所以一个图的所有信息都能够完整保存。

    GraphFrames与GraphX的集成

           GraphFrames可以实现与GraphX的完美集成。两者之间相互转换时不会丢失任何数据。

    val graph = Graph(...)

    val graphFrame =GraphFrame.fromGraphX(graph)

    一、安装anaconda3

    1.1、选择版本

    anaconda3-5.2.0

    参考:https://blog.csdn.net/yuejisuo1948/article/details/81043823

    1.2、获取资源

    wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.2.0-Linux-x86_64.sh

    sh Anaconda3-5.2.0-Linux-x86_64.sh

    export PATH=/data/install/anaconda3/bin:$PATH

    参考:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/

    二、安装graphframes

    2.1、下载graphframes包

    官方下载地址:https://spark-packages.org/package/graphframes/graphframes,下载zip格式,上传至服务器。

    2.2、在服务器上解压1中的压缩包,unzip xx.zip

    将/python/graphframes文件夹拷贝到anaconda3/lib/python/site-package/路径下。

    unzip graphframes-0.6.0-spark2.2-s_2.11.zip

    cp -rf ./graphframes-0.6.0-spark2.2-s_2.11/python/graphframes ./anaconda3/lib/python3.6/site-packages

    三、安装pyspark 

    版本需要和spark版本匹配,spark2.2.0 <=> pyspark2.1.2

    conda install pyspark==2.2.1

    四、安装完毕

    示例代码:

    demo代码 交互式运行图

    上图为python交互运行GraphFrameDemo代码案例;

    python脚本直接执行:

    cd  /data/install/jupyter_namespace/public/

    /data/install/anaconda3/bin/python GraphFrameDemo.py

    python 提交运行图

    spark-submit提交运行

    spark-submit \

    --master yarn \

    --deploy-mode client \

    --num-executors 6 \

    --driver-memory 1g \

    --executor-memory 1g \

    --executor-cores 1 \

    GraphFrameDemo.py

    spark-submit 提交运行图

    五、安装启动简易juypter

    启动anaconda3-5.2.0自带jupyter,linux服务器配置jupyter,然后远程使用jupyter。

    5.1、 进入环境ipython, 在ipython环境下输入:

    from notebook.auth import passwd

    passwd()

    # 输入方便你记的密码,连续输;两次..输完密码后,会输出一个字符串,形如: ’sha1:9e7a5c5e0a29:8cbdvsv2344d141c92beab1c5bc6e9avsdvdsvsv’

    # 将其保存下来, 完成以上操作后,通过exit()推出ipython环境

    5.2、进入到用户根目录:

    cd /data/install/jupyter_namespace/public/

    /data/install/anaconda3/bin/jupyter notebook --generate-config

    #(命令会产生文件:/data/install/anaconda3/jupyter_namespace/public/jupyter_notebook_config.py)

    5.3、编辑配置文件,编辑此文件,写入

    c.NotebookApp.ip = '*' # 允许访问此服务器的 IP,星号表示任意 IP

    c.NotebookApp.password = u'sha1:81c56f4992cc:c39ab21d485bb4a58f77b77eec8c022d283de286' # 之前生成的密码 hash 字串

    c.NotebookApp.open_browser = False # 运行时不打开本机浏览器

    c.NotebookApp.port = 8881 # 使用的端口,随意设置

    c.NotebookApp.enable_mathjax = True # 启用 MathJax

    c.NotebookApp.notebook_dir = '/data/install/jupyter_namespace/public'

    5.4、启动服务

    普通用户启动:jupyter notebook 

    超级用户启动:jupyter notebook --allow-root

    指定配置文件启动:

    nohup /data/install/anaconda3/bin/jupyter notebook --allow-root --config jupyter_notebook_config_public.py &

    5.5、远程登录使用GraphFrames


    注意事项:

    保证集群各机器,spark-python版本一致

    export PYSPARK_DRIVER_PYTHON=/data/install/anaconda3/bin/python3

    export PYSPARK_PYTHON=/data/install/anaconda3/bin/python3

    相关文章

      网友评论

          本文标题:GraphFrames初探

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