先说一下我用的软件or环境的版本:

VMware14.1.1

Ubuntu16.06.03

jdk1.8.0_161

Scala2.10.5

Python2.12(装Ubuntu后自带的)

Spark1.6.1-hadoop2.6

Hadoop2.6.4

步骤:

  1. 安装VMware。傻瓜式安装,提供两个激活序列号:FF31K-AHZD1-H8ETZ-8WWEZ-WUUVA、CV7T2-6WY5Q-48EWP-ZXY7X-QGUWD;

  2. 安装Ubuntu,用镜像安装,过程也很简单,无坑。这里只安装一台虚拟机,等配好一些环境后,再直接克隆出另外两台。我设置第一台虚拟机的名称为lch-Ubuntu-1,用户名为lch;

  3. 安装jdk。去官网下载,默认会下载到“/home/lch/下载”文件夹中,cd到该文件夹,执行以下代码,接下来,需要配置环境变量,这里先不配,一会一起配:

    sudo mkdir /usr/local/java //jdk解压目录
    sudo tar xvf jdk-8u25-linux-x64.tar.gz -C /usr/local/java //解压
  4. 安装Scala。去官网官网下载,和安装jdk一样,新建文件夹,解压:

    sudo mkdir /usr/local/scala
    sudo tar -zxvf scala-2.12.4.tgz -C /usr/local/scala
  5. 安装Spark。去官网下载,注意与Scala版本对应!注意与Scala版本对应!注意与Scala版本对应!重要的事说三遍。当然,我选择的Spark1.6.1-hadoop2.6和Scala2.10.5是对应的。和上面一样,两步,新建文件夹,解压:

    sudo mkdir /usr/local/spark
    sudo tar -zxvf spark-1.6.1-bin-hadoop2.6.tgz -C /usr/local/spark

    解压完成后,开始下一步,配置环境变量;

  6. 配置环境变量。先使用以下命令打开环境变量文件:

    sudo gedit ~/.bashrc

    然后,在文件的末尾追加以下代码:

    //jdk
    export JAVA_HOME=/usr/local/java/jdk1.8.0_161
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH
    //scala
    export SCALA_HOME=/usr/local/scala/scala-2.10.5
    export PATH=${SCALA_HOME}/bin:$PATH
    //spark
    export SPARK_HOME=/usr/local/spark/spark-1.6.1-bin-hadoop2.6
    export PATH=${SPARK_HOME}/bin:$PATH

    保存并退出,在终端中输入以下代码使修改生效:

    source ~/.bashrc

    接下来,需要测试jdk、scala和spark是否安装成功;

  7. 测试。首先,使用“java -version”进行对jdk进行测试,终端中出现版本号即可。然后,使用“scala”对scala进行测试,能够进入scala shell即可。最后,使用“spark-shell”和“pyspark”对spark进行测试,分别出现如下图中红框内部分即可;

  8. 修改本机名称。先使用以下命令查询本机ip。

    ifconfig -a

    然后使用以下命令修改该文件中的本机名称:

    sudo gedit /etc/hostname

    将其中的lch-Ubuntu-1修改为master,然后执行以下命令:

    sudo gedit /etc/hosts

    将其中的lch-Ubuntu-1修改为master,并添加如下代码(此时我们还没有slave,但是克隆出来的slave的ip一般是连号的,记住,不能删除这个文件里的localhost),然后重启虚拟机;

    192.168.86.128      master
    192.168.86.129      slave1
    192.168.86.130      slave2

  9. 安装SSH。使用以下命令安装SSH:

    sudo apt-get install openssh-server
  10. 克隆虚拟机。先把虚拟机关机,使用VMware的克隆功能克隆出两台Ubuntu,这时,这两台新的Ubuntu的本机名应该也叫master,我们使用第8步中的方法(hosts文件不用改,克隆过来了),将两台Ubuntu的本机名分别改为slave1和slave2并重启使其生效;

  11. SSH免密。在三台Ubuntu的终端中输入以下命令,一直按回车就行。

    ssh-keygen -t rsa

    然后将slave1与slave2上的id_rsa.pub用scp命令发送给master(注意,这里要将命令中的“lch”改为你对应的用户名):

    scp ~/.ssh/id_rsa.pub lch@master:~/.ssh/id_rsa.pub.slave1
    scp ~/.ssh/id_rsa.pub lch@master:~/.ssh/id_rsa.pub.slave2

    在master上,将所有公钥加到用于认证的公钥文件authorized_keys中:

    cat ~/.ssh/id_rsa.pub* >> ~/.ssh/authorized_keys

    在master上,将公钥文件authorized_keys分发给每台slave:

    scp ~/.ssh/authorized_keys lch@slave1:~/.ssh/
    scp ~/.ssh/authorized_keys lch@slave2:~/.ssh/

    现在可以在三台机器上使用以下命令测试是否可以免密登陆了:

    ssh master
    ssh slave1
    ssh slave2

  12. 安装hadoop。去官网下载,然后新建文件夹、解压:

    sudo mkdir /usr/local/hadoop
    sudo tar -zxvf hadoop-2.6.4.tar.gz -C /usr/local/hadoop

    进入“/usr/local/hadoop/hadoop-2.6.4/etc/hadoop”目录,对以下文件进行配置:

    //hadoop-env.sh
    export JAVA_HOME=/usr/local/hadoop/hadoop-2.6.4/jdk1.8.0_165
    //yarn-env.sh
    export JAVA_HOME=/usr/local/hadoop/hadoop-2.6.4/jdk1.8.0_165
    //slaves(把文件里的localhost删掉)
    slave1
    slave2
    core-site.xml(自行设计路径,文件夹需要自己手动创建)
    <configuration><property><name>fs.defaultFS</name><value>hdfs://master:9000/</value></property><property><name>hadoop.tmp.dir</name><value>file:/home/lch/hadoop264/tmp</value></property>
    </configuration>
    hdfs-site.xml(自行设计路径,文件夹需要自己手动创建)
    <configuration><property><name>dfs.namenode.secondary.http-address</name><value>master:9001</value></property><property><name>dfs.namenode.name.dir</name><value>file:/home/lch/hadoop264/namenode</value></property><property><name>dfs.datanode.data.dir</name><value>file:/home/lch/hadoop264/datanode</value></property><property><name>dfs.replication</name><value>3</value></property><property><name>dfs.webhdfs.enabled</name><value>true</value></property>
    </configuration>
    mapred-site.xml(不用改)
    <configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property>
    </configuration>
    yarn-site.xml(不用改)
    <configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value></property><property><name>yarn.resourcemanager.address</name><value>master:8032</value></property><property><name>yarn.resourcemanager.scheduler.address</name><value>master:8030</value></property><property><name>yarn.resourcemanager.resource-tracker.address</name><value>master:8035</value></property><property><name>yarn.resourcemanager.admin.address</name><value>master:8033</value></property><property><name>yarn.resourcemanager.webapp.address</name><value>master:8088</value></property>
    </configuration>

    在两台slave中创建和master一致的hadoop文件夹,并在三台机器中均使用以下命令进行文件夹的权限设置:

    sudo chmod -R 777 /usr/local/hadoop

    此时可以将配置好的hadoop-2.6.4文件夹分发给所有slave了:

    scp -r /usr/local/hadoop/hadoop-2.6.4 lch@slave1:/usr/local/hadoop/
    scp -r /usr/local/hadoop/hadoop-2.6.4 lch@slave2:/usr/local/hadoop/

    分发完成后,再次在两台slave中对hadoop文件夹进行权限设置:

    sudo chmod -R 777 /usr/local/hadoop

    使用cd命令切换到hadoop主目录,格式化namenode后,启动:

    ./bin/hadoop namenode -format
    ./sbin/start-all.sh

    在三台机器的终端中分别输入jps命令(下图是master和slave1,slave2和slave1是一样的),看到如下图即代表启动成功,可以使用“./sbin/stop-all.sh”进行关闭;

  13. 再次配置spark。先使用如下命令将两台slave中的spark文件删除(一会再从master传过来):

    sudo rm -rf /usr/local/spark/spark-1.6.1-bin-hadoop2.6

    然后,在master上cd到spark的根目录下的conf目录中,修改以下文件(没有该文件则新建该文件):

    //spark-env.sh
    export SCALA_HOME=/usr/local/scala/scala-2.10.5
    export JAVA_HOME=/usr/local/java/jdk1.8.0_161
    export HADOOP_HOME=/usr/local/hadoop/hadoop-2.6.4
    export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    export SPARK_MASTER_IP=master
    export MASTER=spark://192.168.86.128:7077
    export SPARK_LOCAL_DIRS=/usr/local/spark/spark-1.6.1-bin-hadoop2.6
    export SPARK_DRIVER_MEMORY=512M
    //slaves(把文件中自带的localhost删除)
    master
    slave1
    slave2

    同样的,在三台机器上使用chmod命令给文件夹赋予权限:

    sudo chmod -R 777 /usr/local/spark

    此时可以将配置好的spark-1.6.1-bin-hadoop2.6文件夹分发给所有slave了:

    scp -r /usr/local/spark/spark-1.6.1-bin-hadoop2.6 lch@slave1:/usr/local/spark/
    scp -r /usr/local/spark/spark-1.6.1-bin-hadoop2.6 lch@slave2:/usr/local/spark/

    在两台slave中再次对文件夹赋予权限:

    sudo chmod -R 777 /usr/local/spark

    此时,配置已完成,使用cd命令切换到spark主目录,进行启动:

    ./sbin/start-all.sh

    在三台机器的终端中分别输入jps命令(图示是master和slave1),看到如下图即代表启动成功,可以使用“./sbin/stop-all.sh”进行关闭;

  14. 集群测试。在spark启动成功后,在master的终端中cd到spark根目录,执行以下代码(spark自带的一个例子),出现结果即为成功:

    ./bin/run-example org.apache.spark.examples.SparkPi

下面是我装的过程中碰到的坑及解决办法(其实我已经把正解都写在安装过程中,所以这里只有下面提到的一个坑),解决办法转自一个博客,若侵则删:

附上几个我也不知道是干嘛的代码(也是我尝试用来解决上述问题用的):

chmod go-w ~/
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

使用VMware进行基于Ubuntu16.04LTS的Spark集群搭建相关推荐

  1. Hadoop集群+Spark集群搭建基于VMware虚拟机教程+安装运行Docker

    Hadoop集群+Spark集群搭建+安装运行Docker 目录 一.准备工作 二.在虚拟机上安装CentOS 7 三.hdfs的环境准备 四.hdfs配置文件的修改 五.克隆(复制虚拟机) 六.制作 ...

  2. 基于Hadoop集群的Spark集群搭建

    基于Hadoop集群的Spark集群搭建 注:Spark需要依赖scala,因此需要先安装scala 一. 简单叙述一下scala的安装 (1)下载scala软件安装包,上传到集群 (2)建立一个用于 ...

  3. Windows家庭版下基于Docker的hadoop、Spark集群搭建

    Windows家庭版下基于Docker的hadoop.Spark集群搭建 目录 Windows家庭版下基于Docker的hadoop.Spark集群搭建 1.实验目的 2.实验平台 3.实验内容和要求 ...

  4. Hadoop/Spark集群搭建图文全攻略

    Hadoop/Spark集群搭建图文全攻略 一.安装VMware 二.创建Linux虚拟机 三.CentOS-7安装 四.Linux系统环境配置 五.其他配置 六.虚拟机克隆 七.jdk安装 八.Zo ...

  5. Spark集群搭建中的问题

    参照<Spark实战高手之路>学习的,书籍电子版在51CTO网站 资料链接 Hadoop下载[链接](http://archive.apache.org/dist/hadoop/core/ ...

  6. Spark-----Spark 与 Hadoop 对比,Spark 集群搭建与示例运行,RDD算子简单入门

    目录 一.Spark 概述 1.1. Spark是什么 1.2. Spark的特点(优点) 1.3. Spark组件 1.4. Spark和Hadoop的异同 二.Spark 集群搭建 2.1. Sp ...

  7. spark集群搭建整理之解决亿级人群标签问题

    spark集群搭建整理之解决亿级人群标签问题 参考文章: (1)spark集群搭建整理之解决亿级人群标签问题 (2)https://www.cnblogs.com/huangxincheng/p/91 ...

  8. CDH大数据平台搭建之SPARK集群搭建

    CDH大数据平台搭建之SPARK集群搭建 一.安装规划 二.下载 三.安装及配置 1.解压 2.修改配置文件 四.启动 五.JPS检查节点 一.安装规划 参考CHD大数据平台搭建之集群规划 二.下载 ...

  9. spark 广播变量大数据_大数据处理 | Spark集群搭建及基本使用

    点击蓝字关注我 前面用了一篇文章详细的介绍了集群HDFS文件系统的搭建,HDFS文件系统只是一个用于存储数据的系统,它主要是用来服务于大数据计算框架,例如MapReduce.Spark,本文就接着上一 ...

最新文章

  1. 另类无法在ESXi上添加存储器故障
  2. Redhat 打开防火墙某个端口
  3. Redis中的Cluster高可用和主从切换原理
  4. Java面试题整理,一线互联网公司java面试核心知识点
  5. 2017.9.13 序列统计 思考记录
  6. c语言回调函数_为什么计算机专业必学C语言?既然是基础,那为何很多人学不懂?...
  7. JS Jquery 中 的遍历
  8. npm 常见用法小结
  9. 备战蓝桥杯(4)——第九届蓝桥杯嵌入式省赛赛题实战
  10. Unity VR游戏教程
  11. python编程a的x次方_python平方-Python,平方
  12. [译]基于Vue JS, Webpack 以及Material Design的渐进式web应用 [Part 1]
  13. R语言-蒲丰投针问题(向量化)
  14. 服务器维护实用工具(Unicode)版本,修复SQL Server 2000数据库之实战经验
  15. LS,MMSE,LMMSE,ML,MAP,LMS,AR,MSE误差介绍
  16. [亲身经历]在上海使用公交卡乘坐出租车千万要小心不良司机给你换卡
  17. 项目管理:(二)项目立项管理
  18. J-Link连上电路板,keil检测不出MCU
  19. AcWing 109. 天才ACM
  20. 杭州大学计算机学院博士后,不用去深圳,博士后年薪30万,在杭州这所高校也能轻松达到!...

热门文章

  1. 科大星云诗社动态20210402
  2. 推荐系统常用术语 [ACM暑校]
  3. 有关软件开发中的一些想法
  4. 什么是索引?为什么要建立索引?并举例说明.(以某一具体的DBMS为例)
  5. SpringBoot 根据传参返回不同的内容
  6. 【三分钟学习FFMPEG一个知识点】FFMPEG关于avio_alloc_context申请使用内存释放问题
  7. 操作系统(二十二)用信号量机制实现进程互斥、同步、前驱关系
  8. Top-1 Error 和 Top-5 Error
  9. php文件域的作用,PHP作用域和文件夹操作示例
  10. 知识图谱实践篇(五):KBQA Demo