Spark 安装与实战
折腾了几天,终于把Spark 集群安装成功了,其实比hadoop要简单很多,由于网上搜索到的博客大部分都还停留在需要依赖mesos的版本,走了不少弯路。
1. 安装 JDK 1.7
yum search openjdk-devel sudo yum install java-1.7.0-openjdk-devel.x86_64 /usr/sbin/alternatives --config java /usr/sbin/alternatives --config javac sudo vim /etc/profile # add the following lines at the end export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.19.x86_64 export JRE_HOME=$JAVA_HOME/jre export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # save and exit vim # make the bash profile take effect immediately $ source /etc/profile # test $ java -version
参考我的另一篇博客,安装和配置CentOS服务器的详细步骤。
2. 安装 Scala 2.9.3
Spark 0.7.2 依赖 scala 2.9.3, 我们必须要安装Scala 2.9.3.
下载 scala-2.9.3.tgz 并 保存到home目录.
$ tar -zxf scala-2.9.3.tgz $ sudo mv scala-2.9.3 /usr/lib $ sudo vim /etc/profile # add the following lines at the end export SCALA_HOME=/usr/lib/scala-2.9.3 export PATH=$PATH:$SCALA_HOME/bin # save and exit vim #make the bash profile take effect immediately source /etc/profile # test $ scala -version
3. 下载预编译好的Spark
下载预编译好的Spark, spark-0.7.2-prebuilt-hadoop1.tgz.
如果你想从零开始编译,则下载源码包,但是我不建议你这么做,因为有一个Maven仓库,twitter4j.org, 被墙了,导致编译时需要***,非常麻烦。如果你有DIY精神,并能顺利***,则可以试试这种方式。
4. 本地模式
4.1 解压
$ tar -zxf spark-0.7.2-prebuilt-hadoop1.tgz
4.2 设置SPARK_EXAMPLES_JAR 环境变量
$ vim ~/.bash_profile # add the following lines at the end export SPARK_EXAMPLES_JAR=$HOME/spark-0.7.2/examples/target/scala-2.9.3/spark-examples_2.9.3-0.7.2.jar # save and exit vim #make the bash profile take effect immediately $ source /etc/profile
这一步其实最关键,很不幸的是,官方文档和网上的博客,都没有提及这一点。我是偶然看到了这两篇帖子,Running SparkPi, Null pointer exception when running ./run spark.examples.SparkPi local,才补上了这一步,之前死活都无法运行SparkPi。
4.3 (可选)设置 SPARK_HOME环境变量,并将SPARK_HOME/bin加入PATH
$ vim ~/.bash_profile # add the following lines at the end export SPARK_HOME=$HOME/spark-0.7.2 export PATH=$PATH:$SPARK_HOME/bin # save and exit vim #make the bash profile take effect immediately $ source /etc/profile
4.4 现在可以运行SparkPi了
$ cd ~/spark-0.7.2 $ ./run spark.examples.SparkPi local
5. 集群模式
5.1 安装Hadoop
用VMware Workstation 创建三台CentOS 虚拟机,hostname分别设置为 master, slave01, slave02,设置SSH无密码登陆,安装hadoop,然后启动hadoop集群。参考我的这篇博客,在CentOS上安装Hadoop.
5.2 Scala
在三台机器上都要安装 Scala 2.9.3 , 按照第2节的步骤。JDK在安装Hadoop时已经安装了。
5.3 在master上安装并配置Spark
解压
$ tar -zxf spark-0.7.2-prebuilt-hadoop1.tgz
设置SPARK_EXAMPLES_JAR 环境变量
$ vim ~/.bash_profile # add the following lines at the end export SPARK_EXAMPLES_JAR=$HOME/spark-0.7.2/examples/target/scala-2.9.3/spark-examples_2.9.3-0.7.2.jar # save and exit vim #make the bash profile take effect immediately $ source /etc/profile
在 in conf/spark-env.sh
中设置SCALA_HOME
$ cd ~/spark-0.7.2/conf $ mv spark-env.sh.template spark-env.sh $ vim spark-env.sh # add the following line export SCALA_HOME=/usr/lib/scala-2.9.3 # save and exit
在conf/slaves
, 添加Spark worker的hostname, 一行一个。
$ vim slaves slave01 slave02 # save and exit
(可选)设置 SPARK_HOME环境变量,并将SPARK_HOME/bin加入PATH
$ vim ~/.bash_profile # add the following lines at the end export SPARK_HOME=$HOME/spark-0.7.2 export PATH=$PATH:$SPARK_HOME/bin # save and exit vim #make the bash profile take effect immediately $ source /etc/profile
5.4 在所有worker上安装并配置Spark
既然master上的这个文件件已经配置好了,把它拷贝到所有的worker。注意,三台机器spark所在目录必须一致,因为master会登陆到worker上执行命令,master认为worker的spark路径与自己一样。
$ cd $ scp -r spark-0.7.2 dev@slave01:~ $ scp -r spark-0.7.2 dev@slave02:~
按照第5.3节设置SPARK_EXAMPLES_JAR
环境变量,配置文件不用配置了,因为是直接从master复制过来的,已经配置好了。
5.5 启动 Spark 集群
在master上执行
$ cd ~/spark-0.7.2 $ bin/start-all.sh
检测进程是否启动
$ jps 11055 Jps 2313 SecondaryNameNode 2409 JobTracker 2152 NameNode 4822 Master
浏览master的web UI(默认http://localhost:8080). 这是你应该可以看到所有的word节点,以及他们的CPU个数和内存等信息。 ##5.6 运行SparkPi例子
$ cd ~/spark-0.7.2 $ ./run spark.examples.SparkPi spark://master:7077
(可选)运行自带的例子,SparkLR 和 SparkKMeans.
#Logistic Regression #./run spark.examples.SparkLR spark://master:7077 #kmeans $ ./run spark.examples.SparkKMeans spark://master:7077 ./kmeans_data.txt 2 1
5.7 从HDFS读取文件并运行WordCount
$ cd ~/spark-0.7.2 $ hadoop fs -put README.md . $ MASTER=spark://master:7077 ./spark-shell scala> val file = sc.textFile("hdfs://master:9000/user/dev/README.md") scala> val count = file.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_+_) scala> count.collect()
5.8 停止 Spark 集群
$ cd ~/spark-0.7.2 $ bin/stop-all.sh

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
搭建Spark集群服务器
tidb1.0开始支持spark,有个组件tiSpark,不过目前只支持spark2.1版本。所以为了启用tiSpark,还需搭建spark集群。 在官网下载地址http://spark.apache.org/downloads.html上,我找到了with hadoop的版本。如下图: 下载地址:https://d3kbcqa49mib13.cloudfront.net/spark-2.1.1-bin-hadoop2.7.tgz 目前手中有4台资源决定选用其中三台搭建spark集群,一台master,两台slave链接如下: 域名 IP 主从关系 tidb1 192.168.122.16 Master tidb2 192.168.122.18 Slave tidb3 192.168.122.19 Slave 顺便说一下,centos7的hostname设定和之前版本已经不一样了。现在只需输入以下命令指定 hostnamectl set-hostname name name就是你需要指定的hostname 将压缩包下载后,分别上传至三台server的/usr/l...
- 下一篇
Hive安装和配置
Hive简介 (1) hive不支持OLTP处理 (2)Hive 1.2 及之后需要java1.7或更新版本 Hive安装 (1)hive可以安装在任何一个机器上,前提是这个机器必须要有hadoop软件(可以不启动hdfs,yarn等进程),因为Hive需要用到hadoop软件下的一些jar包 (2)hive1.x默认在哪个目录下启动就会在该目录下创建一个目录metastore_db存放用户产生的元数据,这样很不方便使用,会导致每个用户看到不一样的内容,因此可以使用mysql存放元数据 下载链接: http://mirror.olnevhost.net/pub/apache/hive/ [root@Darren2 local]# tar -zxvf apache-hive-1.2.2-bin.tar.gz [root@Darren2 apache-hive-1.2.2-bin]# bin/hive hive> create database testdb; hive> show databases; hive> use testdb; hive> create ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS关闭SELinux安全模块
- CentOS8安装Docker,最新的服务器搭配容器使用
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Windows10,CentOS7,CentOS8安装Nodejs环境
- 设置Eclipse缩进为4个空格,增强代码规范