• [技术干货] 【Spark详解】Structured Streaming原理
    Structured Streaming是构建在Spark SQL引擎上的流式数据处理引擎,用户可以使用Scala、Java、Python或R中的Dataset/DataFrame API进行流数据聚合运算、按事件时间窗口计算、流流Join等操作。当流数据连续不断的产生时,Spark SQL将会增量的、持续不断的处理这些数据并将结果更新到结果集中。同时,系统通过checkpoint和Write Ahead Logs确保端到端的完全一次性容错保证。Structured Streaming的核心是将流式的数据看成一张不断增加的数据库表,这种流式的数据处理模型类似于数据块处理模型,可以把静态数据库表的一些查询操作应用在流式计算中,Spark执行标准的SQL查询,从不断增加的无边界表中获取数据。每一条查询的操作都会产生一个结果集Result Table。每一个触发间隔,当新的数据新增到表中,都会最终更新Result Table。无论何时结果集发生了更新,都能将变化的结果写入一个外部的存储系统。Structured Streaming在OutPut阶段可以定义不同的存储方式,有如下3种:Complete Mode:整个更新的结果集都会写入外部存储。整张表的写入操作将由外部存储系统的连接器完成。Append Mode:当时间间隔触发时,只有在Result Table中新增加的数据行会被写入外部存储。这种方式只适用于结果集中已经存在的内容不希望发生改变的情况下,如果已经存在的数据会被更新,不适合适用此种方式。Update Mode:当时间间隔触发时,只有在Result Table中被更新的数据才会被写入外部存储系统。注意,和Complete Mode方式的不同之处是不更新的结果集不会写入外部存储。
  • [问题求助] 按照使用Spark MLlib实现精准推荐案例操作报错
    按照案例操作:https://support.huaweicloud.com/bestpractice-modelarts/modelarts_10_0012.html训练没问题,但是到了创建模型就报错了,config文件是系统自动生成的,为啥还报错?有bug?
  • [问题求助] 请问MRS支持的SPARK版本是哪个?
    你好,请问目前MRS是否支持SPARK高版本?
  • 【鲲鹏翱翔】大数据组件02-Spark2.3移植安装指南
    1.   简介Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。它拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。2.   部署环境Packet NameVersionDetailCentOSCentOS   7.5 64bit with ARMarm通用计算增强型   2vCPUs | 4GB | kc1.large.2Spark2.3.0GCC4.8.5Yum安装MavenApache-maven-3.3.9 JDK1.8.0_191 Protoc2.5.0 Cmake3.1.2 R3.1.1 Scala2.11.12  3.   安装部署3.1安装基本依赖库yum install gcc.aarch64 gcc-c++.aarch64 gcc-gfortran.aarch64   libgcc.aarch64yum install openssl-devel zlib-devel automake libtool cmake3.2 安装OpenJDK下载OpenJDK安装包wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz解压安装包tar -zxvf   OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gz创建指定文件夹mkdir -p /opt/tools/installed将JDK移动到相应位置mv jdk8u191-b12 /opt/tools/installed/3.3 安装Mavenwget   https://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gztar -zxvf apache-maven-3.3.9-bin.tar.gzmv apache-maven-3.3.9   /opt/tools/installed/下载Maven安装包配置环境变量,在/etc/profile后面加上JAVA_HOME=/opt/tools/installed/jdk8u191-b12MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATHexport MAVEN_HOME JAVA_HOME PATH运行命令,使环境变量生效source /etc/profile3.4 安装Protocwget   https://github.com/protocolbuffers/protobuf/releases/download/v2.5.0/protobuf-2.5.0.tar.gztar -zxvf   protobuf-2.5.0.tar.gzcd protobuf-2.5.0下载并解压源码打上补丁cp protoc.patch   ./src/google/protobuf/stubs/cd ./src/google/protobuf/stubs/patch -p1 < protoc.patch补丁可从此次获取:https://obs-mirror-ftp4.obs.cn-north-4.myhuaweicloud.com/tools/protoc.patch安装./autogen.sh &&   ./configure CFLAGS='-fsigned-char' && make && make install 3.5 安装R语言安装相关依赖yum install readline-develyum install libXt-devel下载R语言安装包wget http://cran.rstudio.com/src/base/R-3/R-3.1.1.tar.gztar -zxvf  R-3.1.1.tar.gz -C /opt/installedcd R-3.1.1./configure   --enable-R-shlib --enable-R-static-lib --with-libpng --with-jpeglib   --prefix=/opt/tools/installed/R-3.1.1make && make install配置环境变量vim /etc/profileR_HOME=/opt/tools/installed/R-3.1.1PATH=$R_HOME/bin:$PATHexport R_HOME PATH#wq退出保存source/etc/profile3.6 安装Scala下载安装包并解压wget   https://downloads.lightbend.com/scala/2.11.12/scala-2.11.12.tgztar -zxvf scala-2.11.12.tgz   -C /opt/tools/installed配置环境变量vim /etc/profile#修改文件最后一行export PATH=/opt/tools/installed/scala-2.11.12/bin:$PATH#wq退出保存source/etc/profile3.6 编译spark下载Spark安装包wget   https://github.com/apache/spark/archive/v2.3.0.tar.gztar -zxvf spark-2.3.0.tar.gzcd spark-2.3.0修改pom.xml,将true改为false<useZincServer>false</useZincServer>执行编译dev/make-distribution.sh   --tgz -Pyarn,hive,hive-thriftserver,sparkr4     示例测试以local的方式启动sparkcd spark-2.3.0spark-shell master local[2]运行成功。
  • Spark 2.3.0编译指导for Centos 7.6 ★★★
    1 Spark简介Spark是用于大规模数据处理的统一分析引擎,具有可伸缩、基于内存计算等特点,已经成为轻量级大数据快速处理的统一平台,各种不同的应用,如实时流处理、机器学习、交互式查询等,都可以通过Spark建立在不同的存储和运行系统上。2 软硬件环境类别子项版本 硬件CPU鲲鹏920网络Ethernet-10GE内存512G 2400MHzOSCentOS7.6Kernel4.14  软件OpenJDK1.8.0_191Maven3.5.4R3.1.1Scala2.11.8Gcc4.8.53 编译环境准备3.1 安装OpenJDK下载并安装到指定目录(如/opt/tools/installed):wget  https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gztar   -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gzmv jdk8u191-b12   /opt/tools/installed/配置java环境变量,在/etc/profile文件末尾处增加下面的代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12PATH=$JAVA_HOME/bin:$PATHexport   JAVA_HOME PATH运行下面命令,使修改的环境变量生效:source   /etc/profile3.2 安装Maven下载并安装到指定目录(如/opt/tools/installed):wget   https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gztar   -zxf apache-maven-3.5.4-bin.tar.gzmv   apache-maven-3.5.4 /opt/tools/installed/修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATHexport   MAVEN_HOME   JAVA_HOME PATH运行下面的命令,是修改的环境变量生效:source   /etc/profile修改maven配置文件中的:本地仓路径、远程仓等:<!--默认在“~/.m2/”目录下,修改成你自己想保存的目录--><localRepository>/path/to/local/repo</localRepository> <!--修改成自己搭建的maven仓库,ARM使能后的jar包替换到该仓库--><mirror></mirror>3.3 安装Gcc等基础库1.   yum安装GCC相关软件:yum   install gcc.aarch64 gcc-c++.aarch64 gcc-gfortran.aarch64 libgcc.aarch64 libXt-devel.aarch64   readline-develyum install   openssl-devel zlib-devel automake libtool cmake libstdc++-static glibc-static   git make autoconf3.4 编译安装R语言1.   下载R语言源码并解压:wget  http://cran.rstudio.com/src/base/R-3/R-3.1.1.tar.gztar   -zxf R-3.1.1.tar.gzcd   R-3.1.12.   编译并安装到指定目录:./configure   --enable-R-shlib --enable-R-static-lib --with-libpng --with-jpeglib   --prefix=/opt/tools/installed/R-3.1.1make   all -j10 && make install3.        配置R语言环境变量:export   R_HOME=/opt/tools/installed/R-3.1.13.5 编译安装Scala请依据第五章文档进行编译scala-2.11.8,并配置好scala环境变量。1.        在/etc/profile文件末尾增加下面高亮代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4SCALA_HOME=/opt/tools/installed/scala-2.11.8PATH=$SCALA_HOME/bin:$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATHexport SCALA_HOME MAVEN_HOME   JAVA_HOME PATH2.   运行下面的命令,是修改的环境变量生效:source   /etc/profile3.6 解决-fsigned-char问题1.使用command -v gcc命令寻找gcc所在路径(一般位于/usr/bin/gcc)2.更改gcc的名字(比如改成gcc-impl)3.在gcc所在目录执行vim gcc,并填入如下内容保存:#!   /bin/sh/usr/bin/gcc-impl   -fsigned-char “$@”4.执行chmod +x gcc给脚本添加执行权限5.使用与1-4步相似的方式给g++创建同名字的脚本文件4 移植分析依据《CheckSo使用说明文档》扫描Spark安装包,分析得出需要移植的第三方依赖包如下表格。原始jarso文件commons-crypto-1.0.0.jarlibcommons-crypto.sojline-2.12.1.jarlibjansi.soleveldbjni-all-1.8.jarlibleveldbjni.sonetty-all-4.1.17.Final.jarlibnetty_transport_native_epoll_x86_64.soscala-compiler-2.11.8.jarlibjansi.so5 依赖库编译5.1 基本库安装yum install openssl-devel zlib-devel automake libtool cmake libstdc++-static glibc-static git gcc gcc-c++ make autoconf5.2 编译commons-crypto-1.0.0.jar参考Commons-crypto编译指导编译:https://bbs.huaweicloud.com/forum/thread-22748-1-1.html或直接在华为镜像站下载编译好的jar包:https://repo.huaweicloud.com/repository/maven/kunpeng/org/apache/commons/commons-crypto/1.0.0/commons-crypto-1.0.0.jar将编译好的jar包替换安装到本地仓库5.3 编译netty-all-4.1.17.Final.jar    参考netty-all-4.17.final编译指导编译:https://bbs.huaweicloud.com/forum/thread-22723-1-1.html    或直接在华为镜像站下载编译好的jar包:https://repo.huaweicloud.com/repository/maven/kunpeng/io/netty/netty-all/4.1.17.Final/netty-all-4.1.17.Final.jar 将编译生成的jar包替换安装到本地仓5.4 编译jline-2.12.1.jar直接在华为镜像站下载编译好的jar包:https://repo.huaweicloud.com/repository/maven/kunpeng/jline/jline/2.12.1/jline-2.12.1.jar 将编译生成的jar包替换安装到本地仓或按照如下方法进行编译:依赖关系:jline-2.12 --> jansi-1.11 --> jansi-native-1.55.4.1 编译jansi-native-1.51、下载源码wget https://github.com/fusesource/jansi-native/archive/jansi-native-1.5.tar.gztar   -xf jansi-native-1.5.tar.gz2、进入Jansi-native源码目录cd jansi-native-jansi-native-1.5/3、执行编译mvn   -Dplatform=linux64 package4、结果输出:./target/jansi-native-1.5-linux64.jar ./target/jansi-native-1.5.jar5、将jansi-native-1.5.jar,jansi-native-1.5-linux64.jar拷贝到maven本地仓库LOCAL_M2_PATH/org/fusesource/ jansi/jansi-native/1.5/ 5.4.2 编译jansi 1.111、从Github网站下载Jansi1.4版本源码wget https://github.com/fusesource/jansi/archive/jansi-project-1.11.tar.gztar -zxvf   jansi-project-1.11.tar.gz2、进入jansi-jansi-1.11源码目录,进行编译cd jansi-jansi-project-1.11mvn   clean package     输出jar包路径:./jnsi/target/jansi-1.11.jar,替换到本地仓5.4.3 编译jline-2.12.11、从github网站下载Jline对应版本源码wget https://github.com/jline/jline2/archive/jline-2.12.1.tar.gztar   -zxvf jline-2.12.1.tar.gz2、进入jline解压目录cd   jline2-jline-2.12.1    执行编译mvn   package -Dmaven.javadoc.skip=true        输出jar包:./target/jline-2.12.1.jar,替换到本地仓5.5 编译leveldbjni-all-1.8.jar    参考leveldbjni-all编译指导进行编译:https://bbs.huaweicloud.com/forum/thread-22684-1-1.html 或直接在华为镜像站下载编译好的jar包: https://repo.huaweicloud.com/repository/maven/kunpeng/org/fusesource/leveldbjni/leveldbjni-all/1.8/leveldbjni-all-1.8.jar 将编译好的jar包替换安装到本地仓5.6 编译scala-compiler-2.11.8.jar直接在华为镜像站下载编译好的jar包:https://repo.huaweicloud.com/repository/maven/kunpeng/org/scala-lang/scala-compiler/2.11.8/scala-compiler-2.11.8.jar替换到本地仓或按照如下方法进行编译5.6.1 编译jline-2.14.3参考编译指南进行编译jline-2.14.3:https://bbs.huaweicloud.com/forum/thread-22742-1-1.html将编译好的jar包拷贝到maven本地仓中:LOCAL_M2_PATH/repository/jline/jline/2.14.3/5.6.2 编译scala-compiler-2.11.81、  下载源码git clone https://github.com/scala/scala.gitcd scalagit checkout v2.11.82、  进行编译ant   生成jar包:./build/pack/lib/scala-compiler.jar   重命名jar包为:scala-compiler-2.11.8.jar,替换到本地仓3、  环境变量配置vi /etc/profile:添加SCALA_HOME=scala路径/build/packPATH中添加:$SCALA_HOME/bin:export SCALA_HOME修改完:wq保存退出source /etc/profile6 Spark编译1.   从Github上下载Spark-2.3.0源码并解压:wget https://github.com/apache/spark/archive/v2.3.0.tar.gztar   -zxf spark-2.3.0.tar.gzcd   spark-2.3.02.   执行编译:编译前根据要适配的hadoop版本号,修改pom.xml,如hadoop2.7.5,按下图修改执行编译:dev/make-distribution.sh --tgz -Pyarn,hive,hive-thriftserver,sparkr7 参考信息更多编译命令详见Spark官方文档。8 FAQ8.1 问题1:8.1.1 现象:Cannot find ‘R_HOME’编译spark时报错:Cannot find ‘R_HOME’. Please specify ‘R_HOME’ or make sure R is properly installed8.1.2 分析编译spark时启动了R语言支持,需要在环境上编译安装R语言。8.1.3 解决方案成功编译安装R语言后(安装在/opt/tools/installed目录),设置好R_HOME后再次运行编译命令:export   R_HOME=/opt/tools/installed/R-3.1.18.2 问题28.2.1 现象:cannot compile a simple Fortran program编译R语言时报错:error: cannot compile a simple Fortran program8.2.2 分析这是因为系统缺少gfortran包。8.2.3 解决方案利用yum工具直接安装OS镜像中的对应gfortran包:yum   install gcc-gfortran.aarch648.3 问题38.3.1 现象:error: --with-x=yes编译R语言时报错:configure: error: --with-x=yes (default) and X11 headers/libs are not available8.3.2 分析R语言默认--with-x=yes(use the X Window System)是打开的,因此需要安装对应的模块,可在OS镜像中找到。8.3.3 解决方案安装OS镜像中的该模块。yum   install libXt-devel.aarch648.4 问题48.4.1 现象:‘NEWS.pdf’: No such file or directory编译R语言时报错:/usr/bin/install: cannot stat ‘NEWS.pdf’: No such file or directory8.4.2 分析在源码目录R-3.1.1没有找到NEWS.pdf文件,所以make install时无法拷贝。8.4.3 解决方案查看doc目录有NEWS相关的文本文件,因此将doc目录的NEWS内容直接放到NEWS.pdf里面:cat   doc/NEWS > doc/NEWS.pdf 
  • [HPC] Hadoop 3.1.2+Spark 2.4.4 移植指南(CentOS 7.6)
    文档位置已迁移至如下链接:https://support.huaweicloud.com/prtg-kunpenghpcs/kunpenghpcs_prtg_0013.html
  • [中间件] 【华为云鲲鹏云服务最佳实践】【工具篇】第083期spark-2.0.0安装配置指南
    1、简介Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎官方链接:http://spark.apache.org/2、基础环境类别子项版本获取地址(方法)华为云虚拟机KC1(920)--OSCentOS7.6Kernel4.14软件包spark2.0.0https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz 3、依赖安装  在编译flink之前需要安装JDK与maven  JDK参考《华为云鲲鹏云服务最佳实践JDK-1.8.0安装配置指南》  安装maven  简介:通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。安装软件:apache-maven-3.5.4-bin.tar.gzwget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gztar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local/hadoopapps/apache-maven/   配置mvn的环境变量vim /etc/profileexport M2_HOME=/usr/local/hadoopapps/apache-maven/apache-maven-3.5.4 export PATH=$M2_HOME/bin:$PATH      使环境变量生效source /etc/profile  测试是否安装完成mvn –v     4、组件编译安装wget https://github.com/apache/spark/archive/v2.0.0.tar.gztar –xvf v2.0.0.tar.gzcd spark-2.0.01) mvn -DskipTests clean package -Phive -Phive-thriftserver2)./dev/make-distribution.sh --name custom-spark --pip --r --tgz -Psparkr -Phadoop-2.7 -Phive -Phive-thriftserver -Pmesos -Pyarn 5、系统配置无6、测试cd spark-2.0.0 ./bin/spark-shell7、参考信息无8、FAQ无
  • [中间件] 【华为云鲲鹏云服务最佳实践】【工具篇】第082期spark-1.6.2安装配置指南
    1、简介Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎官方链接:http://spark.apache.org/2、基础环境类别子项版本获取地址(方法)华为云虚拟机KC1(920)--OSCentOS7.6Kernel4.14软件包spark1.6.2https://github.com/apache/spark/archive/v1.6.2.tar.gz3、依赖安装  安装jdk  JDK参考《华为云鲲鹏云服务最佳实践JDK-1.8.0安装配置指南》  安装maven3.5.4  maven3.5.4参考《华为云鲲鹏云服务最佳实践spark-2.0.0安装配置指南》中maven3.5.4的安装4、组件编译安装wget https://github.com/apache/spark/archive/v1.6.2.tar.gztar –xvf v1.6.2.tar.gzcd spark-1.6.2mvn -DskipTests clean package 5、系统配置无6、测试参考《华为云鲲鹏云服务最佳实践spark-2.0.0安装配置指南》中的测试7、参考信息无8、FAQ无
  • [中间件] 【华为云鲲鹏云服务最佳实践】【工具篇】第077期spark-2.1.0安装配置指南
    1、简介Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎官方链接:http://spark.apache.org/2、基础环境类别子项版本获取地址(方法)华为云虚拟机KC1(920)--OSCentOS7.5Kernel4.14软件包spark2.1.0https://github.com/apache/spark/tree/branch-2.13、依赖安装无4、组件编译安装此步骤建议在chroot环境下进行,一来对chroot环境可以随意修改,不会影响系统,二来多人共用系统环境,免不了对系统有更改,chroot环境更纯净。        1) 创建chroot环境执行后/root/zmm目录下就是个可用的chroot环境,chroot进去即可进行任意操作。[root@arm-team-0009 ~]# yum install --installroot=/root/zmm/ -y basesystem yum rpm-build[root@arm-team-0009 ~]# mount --bind /dev/ /root/zmm/dev[root@arm-team-0009 ~]# mount --bind /proc/ /root/zmm/proc/Chroot环境创建后,进去发现很多基础命令没有,比如vi,需要自行安装对应的rpm包。如下图所示:                已可用。其它命令如遇到不可用的,请参考上图的方法添加。2) 配置YUM源推荐所有repo源修改为华为开源镜像站,速度更快更稳定。配置参考如下图所示:        bash-4.2# grep "huawei" -ri /etc/yum.repos.d//etc/yum.repos.d/CentOS-EPEL.repo:baseurl=https://mirrors.huaweicloud.com/epel/7/aarch64//etc/yum.repos.d/euleros.repo:baseurl=http://mirrors.huaweicloud.com/euler/2.3/os/aarch64//etc/yum.repos.d/euleros.repo:gpgkey=http://mirrors.huaweicloud.com/euler/2.3/os/RPM-GPG-KEY-EulerOS/etc/yum.repos.d/CentOS-Base.repo:baseurl=https://mirrors.huaweicloud.com/centos-altarch/7/os/aarch64//etc/yum.repos.d/CentOS-Base.repo:baseurl=https://mirrors.huaweicloud.com/centos-altarch/7/updates/aarch64//etc/yum.repos.d/CentOS-Base.repo:baseurl=https://mirrors.huaweicloud.com/centos-altarch/7/extras/aarch64//etc/yum.repos.d/CentOS-Base.repo:baseurl=https://mirrors.huaweicloud.com/centos-altarch/7/centosplus/aarch64/ 3) 源码包准备bash-4.2# yum install -y which wget git sudo makebash-4.2# wget https://github.com/apache/spark/archive/v2.1.0.tar.gzbash-4.2# tar -zxvf v2.1.0.tar.gzbash-4.2# cd spark-2.1.0/;ls              bash-4.2# yum install maven -ybash-4.2# build/mvn -DskipTests clean package编译成功:       5、系统配置无6、测试Shell交互测试bash-4.2# ./bin/spark-shell Python交互测试bash-4.2# ./bin/pyspark 7、参考信息无8、FAQ无
  • [问题求助] 如何提交一个spark任务到集群?
    如何提交一个spark任务到集群?有几十个mysql数据库表(表结构一样,按地市分表的),都在华为云上,需要每天抽取最近几天的数据,到另一个华为云mysql库表,做汇总。 目前的实现是PHP,串行处理,瓶颈在于读取源表上,这部分SQL已经优化过了,现在想进一步数据抽取的效率,以前本地SPARK集群,Scala编程有par.foreach方法可以并发的执行这几十个任务。 provs_props.keySet().toArray().par.foreach { x =>       ImportOrdersToHive(readOrders, saveToHiv, provs_props.getProperty(x.toString()), months_props) } 现在的问题是,基于华为云提供的接口,如何完成并发执行这几十个任务?感谢
  • [技术干货] 使用Spark MLlib实现鸢尾花卉分类预测
    RIS也称鸢尾花卉数据集,是一类多重变量分析的数据集。数据集包含150个数据集,分为3类,每类50个数据,每个数据包含4个属性。可通过花萼长度,花萼宽度,花瓣长度,花瓣宽度4个属性预测鸢尾花卉属于(Setosa,Versicolour,Virginica)三个种类中的哪一类。本示例介绍如何使用Spark MLlib引擎实现鸢尾花卉分类预测的应用。鸢尾花卉分类预测样例的操作流程如下所示。准备数据:下载数据集、示例代码,然后上传至OBS桶中。训练模型:编写基于Spark MLlib中ALS算法的模型训练脚本,新建训练作业进行模型训练。部署模型:得到训练好的模型文件后,新建预测作业将模型部署为在线预测服务。预测结果:发起预测请求获取预测结果。https://support.huaweicloud.com/bestpractice-modelarts/modelarts_10_0016.html
  • [热门活动] 为什么Spark比MapReduce快100X
    SparkSpark比MapReduce快100XSpark对速度的最大声称是它能够 “在内存中运行程序比Hadoop MapReduce快100倍,在磁盘上运行速度提高10倍。” Spark可以提出这种说法,因为它在工作节点的主存储器中进行处理,并防止对磁盘进行不必要的 I / O操作。  Spark提供链接任务Spark提供的另一个优势是即使在应用程序编程级别也可以链接任务,而无需写入磁盘或最大限度地减少对磁盘的写入次数(说的就是DAG的好处)。Spark减少了磁盘 IO 的操作Spark 计算比 MapReduce 快的根本原因在于 DAG 计算模型。一般而言,DAG 相比MapReduce 在大多数情况下可以减少 shuffle 次数。Spark 的 DAGScheduler 相当于一个改进版的 MapReduce,如果计算不涉及与其他节点进行数据交换,Spark 可以在内存中一次性完成这些操作,也就是中间结果无须落盘,减少了磁盘 IO 的操作。但是,如果计算过程中涉及数据交换,Spark 也是会把 shuffle 的数据写磁盘的!有一个误区,Spark 是基于内存的计算,所以快,这不是主要原因,要对数据做计算,必然得加载到内存,Hadoop 也是如此,只不过 Spark 支持将需要反复用到的数据给 Cache 到内存中,减少数据加载耗时,所以 Spark 跑机器学习算法比较在行(需要对数据进行反复迭代)。Spark 基于磁盘的计算也是比 Hadoop 快。刚刚提到了 Spark 的 DAGScheduler 是个改进版的 MapReduce,所以 Spark天生适合做批处理的任务。Hadoop 的 MapReduce 虽然不如 spark 性能好,但是 HDFS 仍然是业界的大数据存储标准。
  • [教程] 开源大数据平台Hadoop和Spark对接OBS操作指南
    1      背景介绍华为云对象存储服务可以提供稳定、安全、高效、易用的云存储服务。当前,华为云OBS可以与Hadoop和Spark大数据生态进行对接,为用户提供计算存储分离的大数据解决方案。该方案具有高性能、低成本的优势,且无扩容问题,使用维护更加方便简洁。本操作指导书旨在帮助华为云用户在开源大数据平台Hadoop和Spark上**速对接OBSFileSystem组件,更好的使用华为云对象存储OBS进行大数据计算。2      部署视图2.1      安装版本硬件:1master+3core(配置:8U32G,操作系统:Centos7.5)软件:Hadoop 2.8.3、Spark 2.3.02.2      部署视图开源大数据平台已安装完成,本文主要介绍在Hadoop和Spark平台中通过OBSFileSystem组件与OBS进行对接的操作步骤。对接OBS后,用户的数据即可存储在OBS平台,通过Hadoop和Spark进行大数据计算,实现计算存储分离。 3      开源大数据平台对接OBS操作步骤3.1      Hadoop平台更新OBSFileSystem3.1.1        上传obs的jar包1、  从网址https://bbs.huaweicloud.com/forum/thread-12142-1-1.html 中下载OBSFileSystem后进行解压缩,其中Package目录中包含obs所需要的jar包,列表如下:2、  将obs所需要的jar包放在/mnt/obsjar目录中3.1.2        增加hadoop-huaweicloud的jar包1、  将hadoop-huaweicloud的jar包拷贝到如下各个目录中(/home/modules/hadoop-2.8.3/share/hadoop/common/lib;/home/modules/hadoop-2.8.3/share/hadoop/tools/lib)命令:cp /mnt/obsjar/hadoop-huaweicloud-2.8.3.13.jar /home/modules/hadoop-2.8.3/share/hadoop/common/lib/.cp /mnt/obsjar/hadoop-huaweicloud-2.8.3.13.jar /home/modules/hadoop-2.8.3/share/hadoop/tools/lib/.3.1.3        增加esdk-obs-java的jar包1、  将esdk-obs-java的jar包拷贝到如下各个目录中(/home/modules/hadoop-2.8.3/share/hadoop/common/lib;/home/modules/hadoop-2.8.3/share/hadoop/tools/lib)命令:cp /mnt/obsjar/esdk-obs-java-3.0.1.jar /home/modules/hadoop-2.8.3/share/hadoop/common/lib/.cp /mnt/obsjar/esdk-obs-java-3.0.1.jar /home/modules/hadoop-2.8.3/share/hadoop/tools/lib/.3.1.4        更换java-xmlbuilder的jar包1、  备份并删除hadoop-2.8.3所有目录中原有的java-xmlbuilder-0.4.jar(通过find查找后删除)。命令:rm -rf /home/modules/hadoop-2.8.3/share/hadoop/common/lib/java-xmlbuilder-0.4.jarrm -rf /home/modules/hadoop-2.8.3/share/hadoop/tools/lib/java-xmlbuilder-0.4.jar2、  将java-xmlbuider-1.1.jar包拷贝到如下各个目录中进行替换命令:cp /mnt/obsjar/java-xmlbuider-1.1.jar /home/modules/hadoop-2.8.3/share/hadoop/common/lib/.cp /mnt/obsjar/java-xmlbuider-1.1.jar /home/modules/hadoop-2.8.3/share/hadoop/tools/lib/.3.1.5        更换okhttp的jar包1、  备份并删除hadoop-2.8.3所有目录中原有的okhttp-2.4.0.jar(通过find查找后删除)。命令:rm -rf /home/modules/hadoop-2.8.3/share/hadoop/common/lib/okhttp-2.4.0.jarrm -rf /home/modules/hadoop-2.8.3/share/hadoop/tools/lib/okhttp-2.4.0.jarrm -rf /home/modules/hadoop-2.8.3/share/hadoop/httpfs/tomcat/webapps/webhdfs/WEB-INF/lib/okhttp-2.4.0.jarrm -rf /home/modules/hadoop-2.8.3/share/hadoop/hdfs/lib/okhttp-2.4.0.jar2、  将java-xmlbuider-1.1.jar包拷贝到如下各个目录中进行替换命令:cp /mnt/obsjar/okhttp-3.10.0.jar /home/modules/hadoop-2.8.3/share/hadoop/common/lib/.cp /mnt/obsjar/okhttp-3.10.0.jar /home/modules/hadoop-2.8.3/share/hadoop/tools/lib/.cp /mnt/obsjar/ okhttp-3.10.0.jar /home/modules/hadoop-2.8.3/share/hadoop/httpfs/tomcat/webapps/webhdfs/WEB-INF/lib/.cp /mnt/obsjar/okhttp-3.10.0.jar /home/modules/hadoop-2.8.3/share/hadoop/hdfs/lib/.3.1.6        更换okio的jar包1、  备份并删除hadoop-2.8.3所有目录中原有的okio-1.4.0.jar(通过find查找后删除)。命令:rm -rf /home/modules/hadoop-2.8.3/share/hadoop/common/lib/okio-1.4.0.jarrm -rf /home/modules/hadoop-2.8.3/share/hadoop/tools/lib/okio-1.4.0.jarrm -rf /home/modules/hadoop-2.8.3/share/hadoop/httpfs/tomcat/webapps/webhdfs/WEB-INF/lib/okio-1.4.0.jarrm -rf /home/modules/hadoop-2.8.3/share/hadoop/hdfs/lib/okio-1.4.0.jar2、  将java-xmlbuider-1.1.jar包拷贝到如下各个目录中进行替换命令:cp /mnt/obsjar/okio-1.14.0.jar /home/modules/hadoop-2.8.3/share/hadoop/common/lib/.cp /mnt/obsjar/okio-1.14.0.jar /home/modules/hadoop-2.8.3/share/hadoop/tools/lib/.cp /mnt/obsjar/ okio-1.14.0.jar /home/modules/hadoop-2.8.3/share/hadoop/httpfs/tomcat/webapps/webhdfs/WEB-INF/lib/.cp /mnt/obsjar/okio-1.14.0.jar /home/modules/hadoop-2.8.3/share/hadoop/hdfs/lib/.3.2      Hadoop平台更新配置文件操作步骤在/home/modules/hadoop-2.8.3/etc/hadoop目录中配置core-site.xml。注:fs.defaultFS 、fs.obs.access.key、fs.obs.secret.key、fs.obs.endpoint请根据实际情况进行修改。<property>   <name>fs.defaultFS</name>   <value>hdfs://ecs-bigdata-hdtest-0000.novalocal:8020</value> </property><property>   <name>hadoop.tmp.dir</name>   <value>/home/modules/hadoop-2.8.3/tmp</value> </property> <property>   <name>fs.obs.access.key</name>   <value>myaccesskey</value> </property> <property>   <name>fs.obs.secret.key</name>   <value>mysecretkey</value> </property> <property>   <name>fs.obs.endpoint</name>   <value>myendpoint</value> </property> <property>   <name>fs.obs.buffer.dir</name>   <value>/home/modules/data/buf</value> </property> <property>   <name>fs.obs.impl</name>   <value>org.apache.hadoop.fs.obs.OBSFileSystem</value> </property> <property>   <name>fs.obs.connection.ssl.enabled</name>   <value>false</value> </property> <property>   <name>fs.obs.fast.upload</name>   <value>true</value> </property>配置成功后即可执行hadoop命令3.3      Spark平台更新OBSFileSystem3.3.1        增加obs的jar包1、  备份并删除spark-2.3.0所有目录中原有的版本较低的java-xmlbuilder-X.X.jar、okhttp-X.X.X.jar和okio-X.X.X.jar(通过find查找后删除)。命令:rm -rf /home/modules/spark-2.3.0/jars/java-xmlbuilder*rm -rf /home/modules/spark-2.3.0/jars/okhttp*rm -rf /home/modules/spark-2.3.0/jars/okio*2、  将obs的jar包(hadoop-huaweicloud-2.8.3.13.jar、esdk-obs-java-3.0.1.jar、java-xmlbuilder-1.1.jar、okhttp-3.10.0.jar和okio-1.14.0.jar)拷贝到如下各个目录(/home/modules/spark-2.3.0/jars/)后即可启动spark使用OBS进行大数据计算。命令:cp /mnt/obsjar/hadoop-huaweicloud-2.8.3.13.jar /home/modules/spark-2.3.0/jars/.cp /mnt/obsjar/esdk-obs-java-3.0.1.jar /home/modules/spark-2.3.0/jars/.cp /mnt/obsjar/java-xmlbuilder-1.1.jar /home/modules/spark-2.3.0/jars/.cp /mnt/obsjar/okhttp-3.10.0.jar /home/modules/spark-2.3.0/jars/.cp /mnt/obsjar/okio-1.14.0.jar /home/modules/spark-2.3.0/jars/.
  • [热门活动] Flink动手实践:参加Flink峰会,免费领Flink/Spark书,300本等你来拿
    Flink动手实践:免费领Flink/Spark技术书,300本等你来拿2018年12月20日,在北京国家会议中心, 举办国内首次Flink Forward技术峰会,华为云是本次活动的金牌赞助商,现场华为展台有《Flink动手实践,免费赠书活动》:- 动手实践有效期:2018/12/13日 至 2018/12/18日,共计6天- 提前在线完成动手实践,现场领书,共计300本:《Flink基础教程》、《Spark SQL内核剖析》、《Spark GraphX实战》任选一本(部分赠书有译者签名)- 完成动手实践后,统计结果,于20号Flink Forward技术峰会现场的华为展台领书动手实践步骤:1.  注册华为云账号,通过实名认证(已有华为云账号的略过)2.  领取代金券50元(Flink作业最低每小时1块钱),代金券领取地址:http://t.cn/EUG2Hb43.  按照《实时AI-StreamingML示例:实时异常检测》文档http://t.cn/EUGZIfM 一步步动手实操,实操地址:http://t.cn/EUGAPPH4.  微信扫码添加“华为云EI小助手3号”,实操结束后将:1. 短信或邮件截图;2. 运行时数据流实时展示图截图,发送给EI小助手3号5.  EI小助手3号确认有效,凭华为云用户名,现场免费领书一本(按结题时间排名,限量300本)在Flink动手实践过程中,有问题可留言求助或找EI小助手注意:动手实践结束后,请一定把Flink作业停止,清理所用的资源华为云EI小助手微信号:hwyeiqyzn最终解释权归华为云所有-    Flink Forward大会介绍:http://www.huodongxing.com/event/3459735708100 
  • [教程指导] 【HOWTO】提交Spark任务到指定的节点运行
            MRS Yarn服务支持Nodelabel特性,该特性支持将任务调度到指定的节点范围运行。通常的,可以支持如下场景:集群中有GPU机器,希望深度学习任务只在GPU机器运行,其他任务都不要到GPU机器上运行。本文主要介绍如何在MRS Manager上配置NodeLabel到节点以实现上述场景。 第一步:创建一个租户,使用该租户来独占使用GPU机器;  第二步,设置GPU资源池;点击创建资源池,创建名为GPU的资源池:将隔离使用的节点放置到对应的资源池内:  第三步,关联队列和资源池,进入租户管理 -> 动态资源计划,选择GPU资源池,将GPU资源池100%资源都给刚才创建的 test租户对应的队列;这样其他用户提交的作业就不会允许在GPU资源池; 第四步,将该租户权限给予目标用户:此处,选择要运行GPU任务对应的用户: 为该用户增加角色: 选择刚才创建的租户角色: 确定完成,此时,你选择的用户就具备使用GPU资源池权限了。 登录集群后台master节点,source /opt/client/bigdata_env kinit <用户名>  ## 此处要输入用户密码   spark-submit --master yarn-cluster --queue test \   --conf spark.yarn.am.nodeLabelExpression=GPU \   --conf spark.yarn.executor.nodeLabelExpression=GPU \   --class org.apache.spark.examples.SparkPi examples/jars/spark-examples_2.11-2.2.1-mrs-1.8.0.jar 其中queue参数指定第一步中创建的租户名称,spark.yarn.am.nodeLabelExpression和spark.yarn.executor.nodeLabelExpression指定为第二步中创建的资源池名字即可。 通过SparkJobhistory可以查看到,所有executor都在GPU对应节点运行。