1、Spark实验报告Spark报告金航1510122526Spark实验报告一、 环境搭建1、下载scala2.11.4版本 下载地址为:http:/www.scala-lang.org/download/2.11.4.html2、解压和安装: 解压 : tar -xvf scala-2.11.4.tgz 安装 : mv scala-2.11.4 /opt/3、编辑 /.bash_profile文件 增加SCALA_HOME环境变量配置,export JAVA_HOME=/home/spark/opt/java/jdk1.6.0_37export CLASSPATH=.:$JAVA_HOME/j
2、re/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jarexport SCALA_HOME=/home/spark/opt/scala-2.11.4export HADOOP_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_profile spark10.126.45.56:/.bash_pr
3、ofile6、下载spark,wget 7、在master主机配置spark :将下载的spark-1.2.0-bin-hadoop2.4.tgz 解压到 /opt/即/opt/spark-1.2.0-bin-hadoop2.4,配置环境变量SPARK_HOME# set java envexport JAVA_HOME=/home/spark/opt/java/jdk1.6.0_37export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jarexport SCALA_HOME=/home/spark
4、/opt/scala-2.11.4export HADOOP_HOME=/home/spark/opt/hadoop-2.6.0export SPARK_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命令使配置生效进入 spark conf目录:sparkS1PA11 opt$ cd spark-1.2.0-bin-hadoop2.4/sparkS1PA11
5、 spark-1.2.0-bin-hadoop2.4$ lsbin conf data ec2 examples lib LICENSE logs NOTICE python README.md RELEASE sbin worksparkS1PA11 spark-1.2.0-bin-hadoop2.4$ cd conf/sparkS1PA11 conf$ lsfairscheduler.xml.template metrics.properties.template slaves.template spark-env.shlog4j.properties.template slaves sp
6、ark-defaults.conf.template spark-env.sh.templatefirst :修改slaves文件,增加两个slave节点S1PA11、S1PA222sparkS1PA11 conf$ vi slavesS1PA11S1PA222second:配置spark-env.sh首先把spark-env.sh.template copyspark-env.shvispark-env.sh文件 在最下面增加:export JAVA_HOME=/home/spark/opt/java/jdk1.6.0_37export SCALA_HOME=/home/spark/opt/
7、scala-2.11.4export SPARK_MASTER_IP=10.58.44.47export SPARK_WORKER_MEMORY=2gexport HADOOP_CONF_DIR=/home/spark/opt/hadoop-2.6.0/etc/hadoopHADOOP_CONF_DIR是Hadoop配置文件目录,SPARK_MASTER_IP主机IP地址,SPARK_WORKER_MEMORY是worker使用的最大内存完成配置后,将spark目录copy slave机器 scp -r /opt/spark-1.2.0-bin-hadoop2.4 spark10.126.45
8、.56:/opt/8、启动spark分布式集群并查看信息sparkS1PA11 sbin$ ./start-all.sh查看:sparkS1PA11 sbin$ jps31233 ResourceManager27201 Jps30498 NameNode30733 SecondaryNameNode5648 Worker5399 Master15888 JobHistoryServer如果HDFS没有启动 ,启动起来.查看slave节点:sparkS1PA222 scala$ jps20352 Bootstrap30737 NodeManager7219 Jps30482 DataNode2
9、9500 Bootstrap757 Worker9、页面查看集群状况:进去spark集群的web管理页面,访问因为我们 看到两个worker节点,因为master和slave都是worker节点我们进入spark的bin目录,启动spark-shell控制台访问http:/master:4040/,我们可以看到spark WEBUI页面spark集群环境搭建成功了10、运行spark-shell 测试之前我们在/tmp目录上传了一个README.txt文件,我们现在就用spark读取hdfs中README.txt文件取得hdfs文件:count下READM.txt文件中文字总数,我们过滤REA
10、DME.txt包括The单词有多个我们算出来 一共有4个The单词我们通过wc也算出来有4个The单词我们再实现下Hadoop wordcount功能:首先对读取的readmeFile执行以下命令:其次使用collect命令提交并执行job:我们看下WEBUI界面执行效果:二、 统计单词个数例子,使用spark apiWordCount:步骤1:val sc = new SparkContext(args(0), “WordCount”,System.getenv(“SPARK_HOME”), Seq(System.getenv(“SPARK_TEST_JAR”)val textFile =
11、sc.textFile(args(1)val inputFormatClass = classOfSequenceFileInputFormatText,Textvar hadoopRdd = sc.hadoopRDD(conf, inputFormatClass, classOfText, classOfText)步骤3:val result = hadoopRdd.flatMapcase(key, value) = value.toString().split(“s+”);.map(word = (word, 1). reduceByKey (_ + _)将产生的RDD数据集保存到HDFS
12、上。可以使用SparkContext中的saveAsTextFile哈数将数据集保存到HDFS目录下,默认采用Hadoop提供的TextOutputFormat,每条记录以“(key,value)”的形式打印输出,你也可以采用saveAsSequenceFile函数将数据保存为SequenceFile格式等, result.saveAsSequenceFile(args(2)当然,一般我们写Spark程序时,需要包含以下两个头文件:import org.apache.spark._import SparkContext.需要注意的是,指定输入输出文件时,需要指定hdfs的URI,比如输入目录是hdfs:/hadoop-test/tmp/input,输出目录是hdfs:/hadoop-test/tmp/output,其中,“hdfs:/hadoop-test”是由Hadoop配置文件core-site.xml中参数fs.default.name指定的,具体替换成你的配置即可。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1