Made by Feng Nie (1913144974@qq.com) 开源机器学习库&Hadoop介绍 Made by Feng Nie (1913144974@qq.com)
机器学习开源库 Libsvm Scikit Nltk Lucene Weka DMTK
机器学习开源库 Libsvm / liblinear : C++实现的基本的机器学习算法,比如逻辑式回归,支持向量机,通常用于实验的 benchmark,速度和训练效果都很快,官网有数据处理方法。 http://www.csie.ntu.edu.tw/~cjlin/liblinear/ http://www.csie.ntu.edu.tw/~cjlin/libsvm/ Scikit python的开源的机器学习库,基于numpy/scipy完成,有大量的函数可以供调用,回归, 分类,聚类以及部分深度学习的内容。安装很简单,直接用python包管理器 pip install scikit-learn 即可 http://scikit-learn.org/stable/index.html
机器学习开源库 NLTK 为python的自然语言相关的机器学习开源库,其中有很多自然语言的基本算法,比 如chunking, parsing 很合适处理原生数据,用包管理器pip安装即可 http://www.nltk.org/ Lucene 为JAVA的全文索引的工具包,用于搭建搜索引擎 http://lucene.apache.org/ http://www.chedong.com/tech/lucene.html
机器学习开源库 Weka JAVA实现的数据挖掘工具包,可以预处理大规模的数据,以及有回归分类可视 化等等数据挖掘经典算法 http://www.cs.waikato.ac.nz/ml/weka/ DMTK 微软去年公开的C++的自然语言处理相关的机器学习工具,有LDA,词向量混 合模型等算法实现 https://github.com/Microsoft/DMTK
深度学习开源库 Theano / Keras Python的深度学习库 (建议先安装BLAS, 矩阵运算加速), 神经网络的很多 算法可以用GPU加速,并且网络的设置简单便于使用, Keras是基于 theano封装的一个深度学习库,里面LSTM 等模型便于使用 http://www.deeplearning.net/software/theano/ http://keras.io/
Hadoop&Spark Hadoop & Spark structure Why using spark Spark installation Running Spark on Amazon EC2 Simple Spark program (word counts example)
Hadoop -- HDFS Hadoop是一个实现了map-reduce模式的开源的分布式并行编 程框架,核心部分是map reduce 以及分布式文件系统(HDFS) HDFS 采用的是Master/slave架构,每一个HDFS集群都是由一 个Namenode和若干个datanode组成。
Hadoop -- Map reduce 一个MapReduce作业(job)通常会把输入的数据集切分为若干独立 的数据块,由 Map任务(task)以完全并行的方式处理它们。框架会 对Map的输出先进行排序,然后把结果输入给Reduce任务。通常作 业的输入和输出都会被存储在文件系统中。整个框架负责任务的调度 和监控,以及重新执行已经失败的任务。
Spark Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架。 Spark基于map reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法。 Spark通过提供丰富的Scala, Java,Python API及交互式Shell来提高可用性
Spark – RDD (Resilient Distributed Dataset ) RDD是Spark最核心的东西。 1. 它是在集群节点上的不可变的、已分区的集合对象。 2.通过并行转换的方式来创建如(map, filter, join, etc)。 3.失败自动重建。 4.可以控制存储级别(内存、磁盘等)来进行重用。 5.必须是可序列化的。 6.是静态类型的。
Spark 安装 需要安装 JAVA (JDK) & maven http://maven.apache.org/ Scala 下载 http://www.scala-lang.org/download Spark download http://spark.apache.org/downloads.html Linux/unix 安装 1.配置好scala环境变量 e.g export SCALA_HOME=/opt/scala-2.10.4 export PATH=$PATH:$SCALA_HOME/bin 2. 解压spark,进入spark目录 输入 sbt/sbt clean assembly (需翻墙, 申请maven更多内存) 3. 解压完可以运行./bin/spark-shell, 安装完成
Spark on Amazon EC2 注册Amazon EC2 账号(提供免费有限制的一年服务,需要信用卡信息) 设置 name->security&credentials->Access Keys->创建Access Keys,然后下载Access Keys & secret access key 进入Services -> Computing -> EC2 -> 创建 Key pairs ->下载key_pair_name.pem 并且存放在固定地址(每 一次申请登录都需要) 更改key_pair_name.pem读写模式为400/600 chmod 400 xx.pem 将Access key id 以及 secret access key export到系统中 进入spark文件下ec2文件夹 运行spark-ec2脚本 ./spark-ec2 –k <key_pair_name> -i /path/key_pair.pem –t t2.micro launch cluster_name
Spark on Amazon EC2 经过刚刚的步骤,打开Amazon EC2的个人页面,发现在 INSTANCES下增加了刚刚添加的实例说明添加成功,之后可 以用key_pair_name & key_pair_name.pem进行ssh 登录 ! 参考安装步骤网址 http://ondrej-kvasnovsky.blogspot.com/2014/06/how- to-install-spark-on-mac-os-x.html http://www.ituring.com.cn/article/202480 https://spark.apache.org/docs/latest/ec2-scripts.html
Word count program spark 用pyspark进行spark编程, 首先import需要的库 1.创建一个RDD,将文件导入,我们print text发现是一个创建好的RDD 2. 将文本分成单词数组,利用flatMap接口建立一个新的RDD用来统计单词
Word count program spark 3. 用map函数将词组转变为key-value键值对,生成新的 MapPartition RDD 4. 用reduce接口来统计单词个数
Reference https://spark.apache.org/docs/latest/programming-guide.html http://blog.jobbole.com/86232/ http://www.tuicool.com/articles/M7VNnqm http://blog.csdn.net/u011391905/article/details/37929731
Thank you! Made by Feng Nie