计划2个月内能精通spark开发,今天起开始努力!
1、环境准备
虚拟机采用visualbox,https://www.virtualbox.org
在上面搭建ubuntu server 集群,下载ubuntu server 光盘镜像,http://www.ubuntu.com/download/server
在visualbox上安装 ubuntu server,从中选择英文语言,如果中文可能会有乱码,按提示基本一路回车。
装好ubuntu server第一件事是安装增强功能,visualbox光驱设置成为VBoxGuestAdditions.iso,进入虚拟机
$ sudo mount /dev/cdrom /media/cdrom $ sudo aptitude install build-essential linux-headers-$(uname -r) -y $ cd /media/cdrom $ sudo ./VBoxLinuxAdditions.run
安装成功的标志是鼠标可以随便拖动。
安装ssh服务器
$ sudo apt-get install openssh-server
visualbox中设置本虚拟机的网络为“桥接网络" ,这样就可以通过ssh客户端链接到虚拟机中。
新装的ubuntu server开始并不好用,为了让下载速度更快一点需要更新ubuntu的软件源
根据官方文档 http://wiki.ubuntu.org.cn/Qref/Source
新建用户名sparker
ubuntu建用户最好用adduser,虽然adduser和useradd是一样的在别的linux糸统下,但是我在ubuntu下用useradd时,并没有创建同名的用户主目录。 例子:adduser user1 这样他就会自动创建用户主目录,创建用户同名的组。 root@ubuntu:~# sudo adduser sparker [sudo] password for xx: 输入xx用户的密码,出现如下信息 正在添加用户"sparker"… 正在添加新组"sparker" (1006)… 正在添加新用户"sparker" (1006) 到组"sparker"… 创建主目录"/home/sparker"… 正在从"/etc/skel"复制文件… 输入新的 UNIX 口令: 重新输入新的 UNIX 口令: 两次输入db的初始密码,出现的信息如下 passwd: password updated successfully Changing the user information for db Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Full Name []:等信息一路回车 这个信息是否正确? [Y/n] y 到此,用户添加成功。如果需要让此用户有root权限,执行命令: root@ubuntu:~# sudo vim /etc/sudoers 修改文件如下: # User privilege specification root ALL=(ALL) ALL sparker ALL=(ALL) ALL 保存退出,sparker用户就拥有了root权限。
1、安装jdk
1.删除自带的 2.安装Oracle官方的 sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installer 3.管理 sudo update-alternatives --config java
2、下载需要的安装包,我在sparker用户目录下面新建了一个~/bigdata文件夹,用于存放需要的安装包;
wget http://apache.osuosl.org/spark/spark-1.6.0/spark-1.6.0-bin-hadoop2.6.tgz wget https://dl.bintray.com/sbt/native-packages/sbt/0.13.9/sbt-0.13.9.tgz wget http://apache.claz.org/hadoop/common/hadoop-2.6.3/hadoop-2.6.3.tar.gz wget http://apache.mirrors.tds.net/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz wget http://downloads.typesafe.com/scala/2.11.7/scala-2.11.7.tgz wget http://mirror.reverse.net/pub/apache/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz
2、对所有安装包进行解压,重命名
比如: tar -zxf hadoop-2.6.3.tar.gz mv hadoop-2.6.3 hadoop依次对所有的包进行解压,解压完的目录结构如下:
3、环境变量设置
$ vim ~/.bashrc export JAVA_HOME=/usr/lib/jvm/java-8-oracle export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export SBT_HOME=$HOME/bigdata/sbt export MAVEN_HOME=$HOME/bigdata/maven export SPARK_HOME=$HOME/bigdata/spark/ export HADOOP_HOME=$HOME/bigdata/hadoop/ export HADOOP_CONF_DIR=$HOME/bigdata/hadoop/etc/hadoop export SCALA_HOME=$HOME/bigdata/scala/ export PATH=$PATH:$MAVEN_HOME/bin:$SBT_HOME/bin:$JAVA_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin: $source .bashrc
验证一下
$sbt sbt-version [info] Set current project to sparker (in build file:/home/sparker/) [info] 0.13.9 $mvn -v Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00) Maven home: /home/sparker/bigdata/maven Java version: 1.8.0_66, vendor: Oracle Corporation Java home: /usr/lib/jvm/java-8-oracle/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "3.19.0-25-generic", arch: "amd64", family: "unix" $ java -version java version "1.8.0_66" Java(TM) SE Runtime Environment (build 1.8.0_66-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)
4、关闭当前虚拟机,复制虚拟机2台,组成一个3台的集群。
进入每台机器,
修改 /etc/hostname 定义机器名列表为:
master slave1 slave2修改 /etc/hosts 如下,IP为实际的机器IP
192.168.3.10 master 192.168.3.11 slave1 192.168.3.12 slave2
5、打通各个服务器的ssh免密码登陆
1:生成密钥 ssh-keygen -t rsa 2:把本机的公钥追到slave1,slave2的 .ssh/authorized_keys 里 ssh-copy-id -i ~/.ssh/id_rsa.pub jifeng@feng02 3:测试 ssh slave1
6、zookeeper配置
1、在master 机器的zookeeper home目录下 mkdir data mkdir logs cd conf cp zoo_sample.cfg zoo.cfg vim zoo.cfg #在最后面增加如下代码: dataDir=/home/sparker/bigdata/zookeeper/data dataLogDir=/home/sparker/bigdata/zookeeper/logs server.1=master:2888:3888 server.2=slave1:2888:3888 server.3=slave2:2888:3888 3、设置serverid cd data echo "1">myid #在data目录下生成myid文件,内容为1 4、copy zookeeper 到另两个节点 cd /usr/local scp -r ./zookeeper root@slave1:/usr/local/ scp -r ./zookeeper root@slave2:/usr/local/ 登录到slave1: cd data #zookeeperhome目录下的data文件夹 echo "2">myid 登录到slave2: cd data echo "3">myid 5、运行zookeeper: ./bin/zkServer.sh start #zookeeper每个节点需要单独启动运行
7、修改spark配置,并同步到所有机器。
$ cd ~/bigdata/spark/conf $ cp spark-env.sh.template spark-env.sh $ vim spark-env.sh export SCALA_HOME=$HOME/bigdata/scala #export SPARK_MASTER_IP=master export SPARK_WORKER_MEMORY=1G export JAVA_HOME=/usr/lib/jvm/java-8-oracle export MASTER=spark://master:7077 export export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master:2181,slave1:2181,slave2:2181 -Dspark.deploy.zookeeper.dir=/spark"
8、Spark Standalone HA运行:
1、分别启动三个节点的zookeeper: ./bin/zkServer.sh start #关闭服务,把start换成stop 2、在master启动Spark ./sbin/start-all.sh 3、启动StandBy Spark Master,假设为Slave1 ./sbin/start-master.sh 4、用jps查看进程 master节点包含: Master、Worker、Jps、QuorumPeerMain Standby节点(slave1):Master、Worker、Jps、QuorumPeerMain slave2节点:Worker、Jps、QuorumPeerMain
9、完了我们写个spark程序验证一下整个集群是否可用,参照 http://spark.apache.org/docs/latest/quick-start.html#self-contained-applications 写个程序来计算某个txt文件中含字母a的总行数和含字母b的总行数。新建mvn 工程myfirstsparkapp(可到附件下载),代码如下。然后通过 mvn clean package打出一个jar包MySimpleSpark-1.0-SNAPSHOT.jar
package com.jinn.spark; /** * @author zhanjun. * @version MyFistSparkApp, v 0.1 2016 16-1-18 上午7:34 zhanjun Exp $$ * @description */ import org.apache.spark.api.java.*; import org.apache.spark.SparkConf; import org.apache.spark.api.java.function.Function; /** * 计算txt 中含a 含b的总行数 */ public class SimpleApp { public static void main(String[] args) { /** * 保证这个readme.txt在集群的各个节点上都有 */ String logFile = "file:///home/sparker/bigdata/worksparce/readme.txt"; SparkConf conf = new SparkConf().setAppName("Simple Application"); JavaSparkContext sc = new JavaSparkContext(conf); JavaRDD<String> logData = sc.textFile(logFile).cache(); long numAs = logData.filter(new Function<String, Boolean>() { public Boolean call(String s) { return s.contains("a"); } }).count(); long numBs = logData.filter(new Function<String, Boolean>() { public Boolean call(String s) { return s.contains("b"); } }).count(); System.out.println("------Lines with a: " + numAs + ", lines with b: " + numBs); } }
把生成的jar 上传到spark集群的某个节点,并要求集群中所有节点都有我们的测试数据readme.txt(含英文的文本) 通过spark-submit提交任务:
spark-submit --class "com.jinn.spark.SimpleApp" --master spark://master:7077 ~/bigdata/worksparce/MySimpleSpark-1.0-SNAPSHOT.jar
可以看到执行结果:
恭喜您,部署成功了!
相关推荐
### Spark集群及开发环境搭建(完整版) #### 一、软件及下载 本文档提供了详细的步骤来指导初学者搭建Spark集群及其开发环境。首先需要准备的软件包括: - **VirtualBox-5.1**:虚拟机软件,用于安装CentOS操作...
本指南将详细介绍如何在基于 Hadoop 2.6.0 的环境中搭建 Spark 1.3.1 平台,以实现高效的数据处理。 首先,我们需要进行虚拟化环境的准备。这里推荐使用 VMware Workstation 11 作为虚拟化软件,它为开发和测试提供...
通过VirtualBox安装多台虚拟机,实现集群环境搭建。 优势:一台电脑即可。 应用场景:测试,学习。 注意事项:请严格按照文档操作,作者已经按照文档操作实现环境搭建。 内附百度网盘下载地址,有hadoop+zookeeper+...
Spark 集群环境搭建 在大数据处理中,Spark 集群环境的搭建是非常重要的一步。今天,我们将学习如何搭建 Spark 集群环境,并了解整个过程中的关键步骤。 什么是 Spark 集群环境? Spark 集群环境是指一组计算机...
2. **集群模拟**:通过虚拟机技术,可以模拟大数据集群环境,这对于学习和研究Hadoop、Spark等大数据框架非常有帮助。 3. **资源管理**:虚拟机技术还能够帮助管理员更好地管理数据中心资源,实现动态资源分配,提高...
大数据学习之路 Hadoop篇(一):超简单的虚拟机搭建Hadoop+Hive+Spark+HBase环境-附件资源
### Hadoop 2.7.4 与 Spark 2.2.1 集群环境搭建详解 #### 一、概述 本文档旨在提供一份关于如何在三台虚拟机上搭建基于Hadoop 2.7.4 和 Spark 2.2.1 的大数据集群环境的详细指南。该文档适合于那些希望了解并实践...
本环境搭建主要包括以下几个核心部分:Java、Hadoop、HBase、Spark、Miniconda以及Jupyter。 首先,Java是大数据处理的基础,因为许多大数据工具依赖于Java运行时环境。在Ubuntu中,首先需要下载JDK的压缩包,将其...
本文主要是学习大数据的常用工具框架,搭建Hadoop3.4.0 + Spark3.5.1 on Yarn的集群环境,本集群用到4台虚拟机(物理机也可以),1主3从。 实验环境:VMWare WorkStation + CentOS8.5 + JDK17 + Hadoop3.4.0 + Spark...
- **环境搭建**: - **安装Scala**:确保Scala版本与Spark兼容。 - **安装Spark**:下载并解压Spark二进制包,配置环境变量。 - **IDE支持**:推荐使用IntelliJ IDEA或Eclipse with the Scala plugin。 - **配置...
- **机器部署**:为了搭建Spark集群,你需要多台服务器或者虚拟机,确保它们之间网络通信畅通,并配置好硬件资源以满足Spark应用的需求。 - **下载Spark安装包**:从Apache官方网站下载最新版本的Spark,根据你的...
本教程涵盖了大数据技术开发环境的搭建,涉及多个重要组件,包括Hadoop、Spark、HBase、Hive等。以下将详细介绍这些技术的安装与配置过程。 首先,搭建开发环境通常从软件下载开始,这里可能包括虚拟机管理器(如...
**四、Spark的分布式环境搭建** 1. **下载Spark**:从Spark官方网站(https://spark.apache.org/downloads.html)获取所需版本,例如Spark 2.4.0,解压至合适目录。 2. **配置Spark**:修改`conf/spark-env.sh`,...
本篇笔记主要涵盖了 Spark 大数据处理的学习笔记,包括了 Spark Standalone 集群的搭建、RDD 的创建和算子、RDD 的分区、RDD 典型案例、IDEA 开发词频统计项目等方面的知识点。 一、Spark Standalone 集群的搭建 *...
在搭建过程中,通常会用到虚拟机技术,如Vmware,通过虚拟机在个人计算机上模拟多台服务器环境。在这个案例中,我们将搭建一个包含四个虚拟机的集群:一个用于伪分布式的`single_node`,另外三个`master`、`slave1`...
在搭建大数据集群时,通常会在虚拟机上运行Linux操作系统,如Ubuntu或CentOS,因为Linux提供了稳定且可定制的环境,适合大数据服务的部署。文中提到了Vmware虚拟机,它是广泛使用的虚拟化软件,允许我们在一台物理...
### Spark入门教程知识点详解 ...通过以上步骤的学习,读者应该能够成功搭建起一个简单的Spark集群,并对Spark的基本操作有所了解。随着进一步的学习和实践,可以深入探索Spark的各种高级功能,如流处理、机器学习等。
这个过程将涉及使用Vmware虚拟机作为基础平台,并在其中安装CentOS操作系统,为后续的大数据处理组件搭建环境。以下是你需要了解的关键知识点: **1. Vmware虚拟机的安装与配置** 1.1. 安装Vmware虚拟机:通常,...
首先,我们需要准备实验环境,这里包括三台虚拟机,操作系统为CentOS 7.5,Hadoop版本为2.7.3,Spark版本为2.1.1。这些版本的兼容性对于实验的成功至关重要。 实验的步骤如下: 1. **解压Spark安装包**:在master...