共计 5531 个字符,预计需要花费 14 分钟才能阅读完成。
前几篇文章主要介绍了单机模式的 Hadoop 和 Spark 的安装和配置,方便开发和调试。本文主要介绍,真正集群环境下 Hadoop 和 Spark 的安装和使用。
1. 环境准备
集群有三台机器:
- master:W118PC01VM01/192.168.0.112
- slave1:W118PC02VM01/192.168.0.113
- slave2:W118PC03VM01/192.168.0.114
首先配置 /etc/hosts 中 ip 和主机名的映射关系:
- 192.168.0.112 W118PC01VM01
- 192.168.0.113 W118PC02VM01
- 192.168.0.114 W118PC03VM01
其次配置 3 台机器互相免密码 ssh 连接,参考《在 Win7 虚拟机下搭建 Hadoop2.6.0 伪分布式环境》。
2. 基本安装步骤
(1)安装 Java(本例使用 jdk1.7.0_55)和 Scala(使用 scala2.10.4)。
(2)安装 Hadoop2.6.0 集群。
(3)安装 Spark1.1.0 集群。
3. Jdk 和 Scala 安装
在 master 和 slave 机器的安装路径和环境变量配置保持一致。安装过程参考《在 Win7 虚拟机下搭建 Hadoop2.6.0+Spark1.4.0 单机环境》。
4. Hadoop 集群安装
4.1. 安装 Hadoop 并配置环境变量
安装 Hadoop2.6.0 版本,安装目录如下。在~/.bash_profile 中配置环境变量,参考《在 Win7 虚拟机下搭建 Hadoop2.6.0 伪分布式环境》。
4.2. 修改 Hadoop 配置文件
涉及到的 hadoop 配置文件主要有以下 7 个:
- /home/ap/cdahdp/tools/hadoop/etc/hadoop/hadoop-env.sh
- /home/ap/cdahdp/tools/hadoop/etc/hadoop/yarn-env.sh
- /home/ap/cdahdp/tools/Hadoop/etc/hadoop/slaves
- /home/ap/cdahdp/tools/hadoop/etc/hadoop/core-site.xml
- /home/ap/cdahdp/tools/hadoop/etc/hadoop/hdfs-site.xml
- /home/ap/cdahdp/tools/hadoop/etc/hadoop/mapred-site.xml
- /home/ap/cdahdp/tools/hadoop/etc/hadoop/yarn-site.xml
配置 hadoop-env.sh(修改 JAVA_HOME)
# The java implementation to use.
export JAVA_HOME=/home/ap/cdahdp/tools/jdk1.7.0_55
配置 yarn-env.sh(修改 JAVA_HOME)
# some Java parameters
export JAVA_HOME=/home/ap/cdahdp/tools/jdk1.7.0_55
配置 slaves(增加 slave 节点)
W118PC02VM01
W118PC03VM01
配置 core-site.xml(增加 hadoop 核心配置)
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.0.112:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/ap/cdahdp/app/tmp</value>
<description>Abasefor other temporary directories.</description>
</property>
<property>
<name>hadoop.proxyuser.spark.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.spark.groups</name>
<value>*</value>
</property>
</configuration>
配置 hdfs-site.xml(增加 hdfs 配置信息,namenode、datanode 端口和目录位置)
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.0.112:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/ap/cdahdp/app/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/ap/cdahdp/app/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.datanode.du.reserved</name>【配置磁盘中保留不用作 hdfs 集群的空间大小,单位是 Byte】
<value>10240000000</value>
</property>
</configuration>
配置 mapred-site.xml(增加 mapreduce 配置,使用 yarn 框架、jobhistory 地址以及 web 地址)
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.0.112:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>192.168.0.112:19888</value>
</property>
</configuration>
配置 yarn-site.xml(增加 yarn 功能)
<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>192.168.0.112:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.0.112:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.0.112:8035</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>192.168.0.112:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.0.112:8088</value>
</property>
</configuration>
将配置好的 hadoop 文件 copy 到两台 slave 机器上,配置和路径和 master 一模一样。
4.3. 格式化 namenode
在 master 和 slave 机器上分别操作:
cd ~/tools/hadoop/bin
./hdfs namenode -format
4.4. 启停 hdfs 和 yarn
cd ~/tools/hadoop/sbin
./start-hdfs.sh
./stop-hdfs.sh
./start-yarn.sh
./stop-yarn.sh
启动后可以用 jps 查看进程,通常有这几个:
NameNode、SecondaryNameNode、ResourceManager、DataNode
如果启动异常,可以查看日志,在 master 机器的 /home/ap/cdahdp/tools/hadoop/logs 目录。
4.5. 查看集群状态
查看 hdfs:http://192.168.0.112:50070/
查看 RM:http://192.168.0.112:8088/
4.6. 运行 wordcount 示例程序
上传几个文本文件到 hdfs,路径为 /tmp/input/
之后运行:
查看执行结果:
正常运行,表示 hadoop 集群安装成功。
5. Spark 集群部署
5.1. 安装 Spark 并配置环境变量
安装 Spark1.1.0 版本,安装目录如下。在~/.bash_profile 中配置环境变量。
5.2. 修改 Hadoop 配置文件
配置 slaves(增加 slave 节点)
配置 spark-env.sh(设置 spark 运行的环境变量)
把 spark-env.sh.template 复制为 spark-env.sh
将配置好的 spark 文件 copy 到两台 slave 机器上,配置和路径和 master 一模一样。
5.3. Spark 的启停
cd ~/tools/spark/sbin
./start-all.sh
./stop-all.sh
5.4. 查看集群状态
spark 集群的 web 管理页面:http://192.168.0.112:8080/
spark WEBUI 页面:http://192.168.0.112:4040/
启动 spark-shell 控制台:
5.5. 运行示例程序
往 hdfs 上上传一个文本文件 README.txt:
在 spark-shell 控制台执行:
统计 README.txt 中有多少单词:
过滤 README.txt 包括 The 单词有多少行:
正常运行,表示 Spark 集群安装成功。
Ubuntu14.04 下 Hadoop2.4.1 单机 / 伪分布式安装配置教程 http://www.linuxidc.com/Linux/2015-02/113487.htm
CentOS 安装和配置 Hadoop2.2.0 http://www.linuxidc.com/Linux/2014-01/94685.htm
Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm
Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm
Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm
Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm
单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm
更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-08/120947.htm