阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Spark 1.5、Hadoop 2.7 集群环境搭建

460次阅读
没有评论

共计 4855 个字符,预计需要花费 13 分钟才能阅读完成。

最近需要用到大数据的一些相关技术,于是实验了一下 spark 和 Hadoop 的集群环境搭建。实验包括三台虚拟机,linux-1、linux-2、linux-3,spark 是一个 master 两个 worker,hadoop 是一个主 NameNode、两个 DataNode,其中一个兼做副 NameNode。软件方面,spark 用的 1.5.2 版本,最新的 1.6.1 版本遇到一个 Java 代码访问拒绝的问题,网上有说是 bug,退回到 1.5.2 版。hadoop 用的最新 2.7.2 稳定版,只能在 jdk7 以上版本运行。

spark 集群安装非常简单:

1. 分别在各个机器上解压缩 spark 包,选定一个做 master,其他的做 worker。在 master 上启动 {spark_dir}/sbin/start-master.sh

2.worker 机器上启动 {spark_dir}/sbin/start-slave.sh spark://{master}:7077

3. 这里唯一要注意的是,spark 是采用主机名作为服务识别,所以虽然用 -h xx.xx.xx.xx 的参数也可以按 ip 方式启动成功,但在代码调用里往往遇到麻烦。所以还是老老实实用主机名算了。那么就要注意变更每台机器的 /etc/hostname 及把各个机器的 hostname 配置到每台机器的 /etc/hosts 文件里。

4. 此外,这种方法虽然很好理解,但是要一台机器一台机器的操作,有点麻烦,也可以把配置文件写好,一个命令同时启动所有机器,这个后面说。

hadoop 集群的安装略微麻烦些,因为组件也多一些。hadoop 实际上由 hdfs、mapreduce、yarn 三个主要功能模块构成。hdfs 是分布式文件系统;mapreduce 是分布式计算系统(spark 就是替代这部分的);yarn 是任务调度和资源管理系统。

1. 有了前面的第 3 步,这里就不用重复操作了。

2. 下面要配置 master 能够 ssh 无密码登录其他 slave。具体方法:先在 master 机器上生成公钥,ssh-keygen -t rsa,后续直接回车,之后会看到产生两个文件,id_rsa、id_rsa.pub,把 id_rsa.pub 分别拷贝到自身和各 slave 机器的~/.ssh 目录(如果没有,手工创建)下,并改名为 authorized_keys(如果以前有这个文件且不想破坏,可以用 cat >> 追加),这样从 master 就可以无密码登录各个机器了。

3. 在各个机器上修改 {hadoop_dir}/etc/hadoop/hadoop-env.sh 中的 JAVA_HOME 变量,形如 export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 (这句必须改,在其他地方配置的 JAVA_HOME 环境变量没有作用)。
在各个机器上配置 PATH 环境变量 export PATH=$PATH:{hadoop_dir}/bin:{hadoop_dir}/sbin

4. 配置集群环境,即编辑{hadoop_dir}/etc/hadoop 下的 slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 五个文件。
slaves 文件中把每个 slave 主机名写在一行,很简单,就不给示例了。

core-site.xml 文件示例如下:
    <configuration>
            <property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://linux-1:9000</value>
            </property>
            <property>
                    <name>hadoop.tmp.dir</name>
                    <value>file:/home/clusterwork/hadoop-2.7.2/tmp</value>
                    <description>Abase for other temporary directories.</description>
            </property>
    </configuration>

hdfs-site.xml 文件示例如下:
    <configuration>
            <property>
                    <name>dfs.namenode.secondary.http-address</name>
                    <value>linux-2:50090</value>
            </property>
            <property>
                    <name>dfs.replication</name>
                    <value>2</value>
            </property>
            <property>
                    <name>dfs.namenode.name.dir</name>
                    <value>file:/home/clusterwork/hadoop-2.7.2/tmp/dfs/name</value>
            </property>
            <property>
                    <name>dfs.datanode.data.dir</name>
                    <value>file:/home/clusterwork/hadoop-2.7.2/tmp/dfs/data</value>
            </property>
    </configuration>
 
 mapred-site.xml 文件示例如下(没有这个文件先从 mapred-site.xml.template 拷贝一份,如果不使用 map-reduce 不配也可以):
    <configuration>
            <property>
                    <name>mapreduce.framework.name</name>
                    <value>yarn</value>
            </property>
            <property>
                    <name>mapreduce.jobhistory.address</name>
                    <value>linux-1:10020</value>
            </property>
            <property>
                    <name>mapreduce.jobhistory.webapp.address</name>
                    <value>linux-1:19888</value>
            </property>
    </configuration>

 yarn-site.xml 文件示例如下:
    <configuration>
            <property>
                    <name>yarn.resourcemanager.hostname</name>
                    <value>linux-1</value>
            </property>
            <property>
                    <name>yarn.nodemanager.aux-services</name>
                    <value>mapreduce_shuffle</value>
            </property>
    </configuration>

以上配置均为示例,还可以有更多选项,具体参考官方文档。之后把这 5 个文件拷贝到每台机器上,覆盖原文件。
首次启动需要先在 Master 节点执行 NameNode 的格式化:hdfs namenode -format
之后在 master 上启动{hadoop_dir}/sbin/start-dfs.sh、{hadoop_dir}/sbin/start-yarn.sh、{hadoop_dir}/sbin/mr-jobhistory-daemon.sh start historyserver,如果一切正常,使用 jps 命令,可以看到下面一些进程。
linux- 1 上:
  Jps
  NameNode
  ResourceManager
  JobHistoryServer
linux- 2 上:
  Jps
  NodeManager
  SecondaryNameNode
  DataNode
linux- 3 上:
  NodeManager
  DataNode
  Jps

现在 hadoop 就已经可用了。在使用 hdfs 之前先要创建用户:hdfs dfs -mkdir -p /user/clusterwork(这个用户最好和当前操作用户同名,这样在操作时可免输绝对路径),以下是常用命令,和普通 linux 差不多,而且在集群中任意的机器上皆可:
hdfs dfs -mkdir data  ——建目录,其实是建在了 /user/clusterwork/data 下
hdfs dfs -put *.xml data  ——传文件
hdfs dfs -ls data    ——显示文件
hdfs dfs -rm data/* ——删除文件
hdfs dfs -rmdir data ——删除目录
不一一列举

最后补充 spark 的集群启动。其实也是利用的 ssh 无密码登录了。但这个对于 spark 不是必须的,对于 hadoop 则是必须的。所以既然前面 hadoop 安装第 2 步已经做了,这里就省事了。配置各个机器的 /conf/slaves,把 worker 写进去。启动 {spark_dir}/sbin/start-all.sh 即可。
之后通过 web 访问检查一下各集群情况:http://linux-1:8080、http://linux-1:50070、http://linux-1:8088

更多 Spark 相关教程见以下内容

CentOS 7.0 下安装并配置 Spark  http://www.linuxidc.com/Linux/2015-08/122284.htm

Spark1.0.0 部署指南 http://www.linuxidc.com/Linux/2014-07/104304.htm

Spark 官方文档 – 中文翻译  http://www.linuxidc.com/Linux/2016-04/130621.htm

CentOS 6.2(64 位)下安装 Spark0.8.0 详细记录 http://www.linuxidc.com/Linux/2014-06/102583.htm

Spark 简介及其在 Ubuntu 下的安装使用 http://www.linuxidc.com/Linux/2013-08/88606.htm

安装 Spark 集群(在 CentOS 上) http://www.linuxidc.com/Linux/2013-08/88599.htm

Hadoop vs Spark 性能对比 http://www.linuxidc.com/Linux/2013-08/88597.htm

Spark 安装与学习 http://www.linuxidc.com/Linux/2013-08/88596.htm

Spark 并行计算模型 http://www.linuxidc.com/Linux/2012-12/76490.htm

Ubuntu 14.04 LTS 安装 Spark 1.6.0(伪分布式)http://www.linuxidc.com/Linux/2016-03/129068.htm

Spark 的详细介绍��请点这里
Spark 的下载地址:请点这里

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-09/135067.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计4855字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7972062
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞定

多服务器管理神器 Nexterm 横空出世!NAS/Win/Linux 通吃,SSH/VNC/RDP 一站式搞...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

仅2MB大小!开源硬件监控工具:Win11 无缝适配,CPU、GPU、网速全维度掌控

还在忍受动辄数百兆的“全家桶”监控软件?后台偷占资源、界面杂乱冗余,想查个 CPU 温度都要层层点选? 今天给...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手!

还在找免费服务器?无广告免费主机,新手也能轻松上手! 前言 对于个人开发者、建站新手或是想搭建测试站点的从业者...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛NAS-14:解锁公网自由!Lucky功能工具安装使用保姆级教程

星哥带你玩飞牛 NAS-14:解锁公网自由!Lucky 功能工具安装使用保姆级教程 作为 NAS 玩家,咱们最...