zoukankan      html  css  js  c++  java
  • spark0.9.0安装

    利用周末的时间安装学习了下最近很火的Spark0.9.0(江湖传言,要革hadoop命,O(∩_∩)O),并体验了该框架下的机器学习包MLlib(spark解决的一个重点就是高效的运行迭代算法),下面是整个安装过程(图文并茂)

    说明:安装环境,centos64位12G的服务器

             安装方式,单机伪分布式版

    一,安装JDK

    由于机器之前已经安装了jdk1.7.0,此步骤略去,网上可以搜到很多安装教程。

    二,安装Hadoop

    我这里安装的是hadoop2.2.0

    第1步,添加hadoop用户(可选)

    第2步,ssh免密码登陆

           首先,安装Openssh

           

          然后,设置ssh的免密码登陆

          

               红框的是输入了key存放的路径位置。

         然后,cd到这个目录下

          

            输入后,chmod 600 authorized_keys

        最后验证,是否可以免密码登陆

    第3步,hadoop2.2.0安装

      用户wget命令下载hadoop  

      $ wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.2.0/hadoop-2.2.0.tar.gz

    解压到目录里面(我解压的目录是:/home/hadoop/)

      $ vim ~/.bashrc
      export HADOOP_PREFIX=/home/hadoop/hadoop-2.2.0

      export HADOOP_COMMON_HOME=$HADOOP_PREFIX

      export HADOOP_HDFS_HOME=$HADOOP_PREFIX

      export HADOOP_MAPRED_HOME=$HADOOP_PREFIX

      export HADOOP_YARN_HOME=$HADOOP_PREFIX
      export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop
      export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin

      修改配置hadoop-env.sh,把java路径写进去

       

      修改配置core-site.xml

      

      修改配置hdfs-site.xml

        

       修改配置mapred-site.xml

        

         namenode格式化

         bin/hdfs namenode -format

         启动namenode,datanode,resourcemanager,nodemanager

    第4步,Spark0.9.0安装

        第一步,下载安装scala

        wget http://www.scala-lang.org/files/archive/scala-2.10.3.tgz

        解压scala,放到/usr/lib下面

        修改环境变量  vim /etc/profile

         

       修改完成之后source /etc/profile

      第二步,下载安装spark

        wget http://www.apache.org/dist/incubator/spark/spark-0.9.0-incubating/spark-0.9.0-incubating-bin-hadoop2.tgz

        解压spark,tar -zxvf spark-0.9.0-incubating-bin-hadoop2.tgz

        修改环境变量,在/etc/profile里面加上spark目录  

         修改完后,source /etc/profile

         打开hadoop,namenode,datanode,resourcemanager,nodemanager

         打开spark里面sbin下面的start-all.sh

         

         至此,单机版的spark环境已经搭建完成了,下面体验下spark自带的例子,计算圆周率pi

         在bin目录下,执行./run-example org.apache.spark.examples.SparkPi

         运行结果如下

          算出来pi=3.1362

    体验MLlib

         MLlib目前包括分类(LR,SVM,NB)、聚类(Kmeans)、推荐(ALS,MF)三大模块,关于这些算法,官网也给了些例子,目前包含有scala,java,python三种API,http://spark.apache.org/docs/0.9.0/mllib-guide.html,先试试LR

           

         第一种方法是:可以在pyspark shell 上一行一行运行,如下图所示

         

         类似跟python shell一样,一行一行执行,不过要注意的地方就是,上面代码中的sc.textFile(),最好写本文文件的全路径

         还有一种方法是:把代码写成*.py文件,然后通过bin/pyspark *.py的方式来执行

     1 from pyspark.mllib.classification import LogisticRegressionWithSGD
     2 from numpy import array
     3 from pyspark.context import SparkContext
     4 #一定要创建sparkcontext(该类定义请参考文档),上一个方法因为在pyspark shell上,已经自定了SparkContext
     5 sc=SparkContext('local','test')
     6 # Load and parse the data
     7 data = sc.textFile("/home/hadoop/spark-0.9.0/mllib/data/sample_svm_data.txt")
     8 parsedData = data.map(lambda line: array([float(x) for x in line.split(' ')]))
     9 model = LogisticRegressionWithSGD.train(parsedData)
    10 
    11 # Build the model
    12 labelsAndPreds = parsedData.map(lambda point: (int(point.item(0)),
    13         model.predict(point.take(range(1, point.size)))))
    14 
    15 # Evaluating the model on training data
    16 trainErr = labelsAndPreds.filter(lambda (v, p): v != p).count() / float(parsedData.count())
    17 print("Training Error = " + str(trainErr))

            执行的结果如下所示,

         给出了逻辑回归里面的回归系数跟截距项,最后分类结果如下

         

         得到的训练错误率为39.8%,可以看到用的时间还是非常快的,OK,其他的算法,也可以通过类似的方式体验了,整个MLlib使用起来还是相当的简单,代码量也小,接下来,学习下里面的机器学习算法源代码(现实使用需要结合业务特点,去修改里面的一些源码)。

        本篇完

  • 相关阅读:
    第几天
    打印图形
    父类上的注解能被子类继承吗
    [LeetCode] 108. Convert Sorted Array to Binary Search Tree ☆(升序数组转换成一个平衡二叉树)
    探究高可用服务端架构的优秀资料索引
    无序数组的中位数
    [LeetCode] 113. Path Sum II ☆☆☆(二叉树所有路径和等于给定的数)
    [LeetCode] 112. Path Sum ☆(二叉树是否有一条路径的sum等于给定的数)
    翻转单词
    [LeetCode] 110. Balanced Binary Tree ☆(二叉树是否平衡)
  • 原文地址:https://www.cnblogs.com/kobedeshow/p/3619114.html
Copyright © 2011-2022 走看看