您好,欢迎访问三七文档
Spark报告金航1510122526Spark实验报告一、环境搭建1、下载scala2.11.4版本下载地址为:、解压和安装:解压:tar-xvfscala-2.11.4.tgz安装:mvscala-2.11.4~/opt/3、编辑~/.bash_profile文件增加SCALA_HOME环境变量配置,exportJAVA_HOME=/home/spark/opt/java/jdk1.6.0_37exportCLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jarexportSCALA_HOME=/home/spark/opt/scala-2.11.4exportHADOOP_HOME=/home/spark/opt/hadoop-2.6.0PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:${SCALA_HOME}/bin立即生效source~/.bash_profile4、验证scala:scala-version5、copy到slave机器scp~/.bash_profilespark@10.126.45.56:~/.bash_profile6、下载spark,wget、在master主机配置spark:将下载的spark-1.2.0-bin-hadoop2.4.tgz解压到~/opt/即~/opt/spark-1.2.0-bin-hadoop2.4,配置环境变量SPARK_HOME#setjavaenvexportJAVA_HOME=/home/spark/opt/java/jdk1.6.0_37exportCLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jarexportSCALA_HOME=/home/spark/opt/scala-2.11.4exportHADOOP_HOME=/home/spark/opt/hadoop-2.6.0exportSPARK_HOME=/home/spark/opt/spark-1.2.0-bin-hadoop2.4PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:${SCALA_HOME}/bin:${SPARK_HOME}/bin:${HADOOP_HOME}/bin配置完成后使用source命令使配置生效进入sparkconf目录:[spark@S1PA11opt]$cdspark-1.2.0-bin-hadoop2.4/[spark@S1PA11spark-1.2.0-bin-hadoop2.4]$lsbinconfdataec2exampleslibLICENSElogsNOTICEpythonREADME.mdRELEASEsbinwork[spark@S1PA11spark-1.2.0-bin-hadoop2.4]$cdconf/[spark@S1PA11conf]$lsfairscheduler.xml.templatemetrics.properties.templateslaves.templatespark-env.shlog4j.properties.templateslavesspark-defaults.conf.templatespark-env.sh.templatefirst:修改slaves文件,增加两个slave节点S1PA11、S1PA222[spark@S1PA11conf]$vislavesS1PA11S1PA222second:配置spark-env.sh首先把spark-env.sh.templatecopyspark-env.shvispark-env.sh文件在最下面增加:exportJAVA_HOME=/home/spark/opt/java/jdk1.6.0_37exportSCALA_HOME=/home/spark/opt/scala-2.11.4exportSPARK_MASTER_IP=10.58.44.47exportSPARK_WORKER_MEMORY=2gexportHADOOP_CONF_DIR=/home/spark/opt/hadoop-2.6.0/etc/hadoopHADOOP_CONF_DIR是Hadoop配置文件目录,SPARK_MASTER_IP主机IP地址,SPARK_WORKER_MEMORY是worker使用的最大内存完成配置后,将spark目录copyslave机器scp-r~/opt/spark-1.2.0-bin-hadoop2.4spark@10.126.45.56:~/opt/8、启动spark分布式集群并查看信息[spark@S1PA11sbin]$./start-all.sh查看:[spark@S1PA11sbin]$jps31233ResourceManager27201Jps30498NameNode30733SecondaryNameNode5648Worker5399Master15888JobHistoryServer如果HDFS没有启动,启动起来.查看slave节点:[spark@S1PA222scala]$jps20352Bootstrap30737NodeManager7219Jps30482DataNode29500Bootstrap757Worker9、页面查看集群状况:进去spark集群的web管理页面,访问因为我们看到两个worker节点,因为master和slave都是worker节点我们进入spark的bin目录,启动spark-shell控制台访问,我们可以看到sparkWEBUI页面spark集群环境搭建成功了10、运行spark-shell测试之前我们在/tmp目录上传了一个README.txt文件,我们现在就用spark读取hdfs中README.txt文件取得hdfs文件:count下READM.txt文件中文字总数,我们过滤README.txt包括The单词有多个我们算出来一共有4个The单词我们通过wc也算出来有4个The单词我们再实现下Hadoopwordcount功能:首先对读取的readmeFile执行以下命令:其次使用collect命令提交并执行job:我们看下WEBUI界面执行效果:二、统计单词个数例子,使用sparkapiWordCount:步骤1:valsc=newSparkContext(args(0),“WordCount”,System.getenv(“SPARK_HOME”),Seq(System.getenv(“SPARK_TEST_JAR”)))valtextFile=sc.textFile(args(1))valinputFormatClass=classOf[SequenceFileInputFormat[Text,Text]]varhadoopRdd=sc.hadoopRDD(conf,inputFormatClass,classOf[Text],classOf[Text])步骤3:valresult=hadoopRdd.flatMap{case(key,value)=value.toString().split(“\\s+”);}.map(word=(word,1)).reduceByKey(_+_)将产生的RDD数据集保存到HDFS上。可以使用SparkContext中的saveAsTextFile哈数将数据集保存到HDFS目录下,默认采用Hadoop提供的TextOutputFormat,每条记录以“(key,value)”的形式打印输出,你也可以采用saveAsSequenceFile函数将数据保存为SequenceFile格式等,result.saveAsSequenceFile(args(2))当然,一般我们写Spark程序时,需要包含以下两个头文件:importorg.apache.spark._importSparkContext.需要注意的是,指定输入输出文件时,需要指定hdfs的URI,比如输入目录是hdfs://hadoop-test/tmp/input,输出目录是hdfs://hadoop-test/tmp/output,其中,“hdfs://hadoop-test”是由Hadoop配置文件core-site.xml中参数fs.default.name指定的,具体替换成你的配置即可。
本文标题:Spark实验报告
链接地址:https://www.777doc.com/doc-6285767 .html