共计 4947 个字符,预计需要花费 13 分钟才能阅读完成。
Hadoop 集群有三种运行模式:单机模式、伪分布模式、完全分布模式。我们这里搭建第三种完全分布模式,即使用分布式系统,在多个节点上运行。
1
环境准备
1.1
配置 DNS
进入配置文件,添加主节点和从节点的 ip 映射关系:
# vim /etc/hosts
10.0.0.45 master
10.0.0.46 slave1
10.0.0.47 slave2
1.2
关闭防火墙
# service iptables stop // 关闭服务
# chkconfig iptables off // 关闭开机自启动
1.3
配置免密码登录
(1)每个节点都首先进入 /root/.ssh 目录下,生成密钥:
# ssh-keygen -t rsa // 输入命令之后连续回车就行了
(2)在主节点上,将公钥拷贝到一个特定文件中:
[root@master .ssh]# cp id_rsa.pub authorized_keys
(3)将每个从节点上生成的公钥复制到主节点上:
[root@slave1 .ssh]# scp id_rsa.pub master:/root/.ssh/id_rsa_slave1.pub
[root@slave2 .ssh]# scp id_rsa.pub master:/root/.ssh/id_rsa_slave2.pub
(4)在主节点上合并从节点的公钥:
[root@master .ssh]# cat id_rsa_slave1.pub>>authorized_keys
[root@master .ssh]# cat id_rsa_slave2.pub>>authorized_keys
(5)将主节点上合并后的公钥复制到从节点上:
[root@master .ssh]# scp authorized_keys slave1:/root/.ssh
[root@master .ssh]# scp authorized_keys slave2:/root/.ssh
配置完成,在各个节点上进行 ssh 访问,若无需密码就能访问,则配置成功。
1.4
配置 Java 环境
首先下载 jdk,保存到指定目录。设置环境变量:
# vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_112
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
# source /etc/profile // 使配置生效
验证配置是否成功:
# java -vesrion
若出现下面的配置信息则表示 java 环境配置成功了:
2
部署 Hadoop 集群
在各个节点上安装与配置 Hadoop 的过程都基本相同,因此可以在每个节点上安装好 Hadoop 后,在主节点 master 上进行统一配置,然后通过 scp 命令将修改的配置文件拷贝到各个从节点上即可,下面介绍部署过程。
2.1
安装 Hadoop
下载 hadoop 安装包,下载地址:http://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/,并解压:
# tar xvf hadoop-2.7.3.tar.gz
配置环境变量:
# vim /etc/profile
export HADOOP_HOME=/home/hadoop-2.7.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
2.2
修改配置文件
进入 Hadoop 的配置文件目录 $HADOOP_HOME/etc/hadoop,可以看到有许多配置文件,Hadoop 集群配置主要是对以下几个文件的修改:
-
core-site.xml
- hdfs-site.xml
- yarn-site.xml
- mapred-site.xml
- slaves、hadoop-env.sh、yarn-env.sh
下面就介绍文件的具体配置,按实际情况修改配置信息:
(1)core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop _tmp</value>
</property>
</configuration>
(2)hdfs-site.xml
<configuration>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
<property>
<name>dfs.support.append</name>
<value>true</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///home/dfs_data</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///home/dfs_name</value>
</property>
<property>
<name>dfs.namenode.rpc-address</name>
<value>master:9000</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:50090</value>
</property>
<property>
<name>dfs.namenode.secondary.https-address</name>
<value>slave1:50091</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
(3)yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>20480</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>10240</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>5</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
</configuration>
(4)mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(5)slaves
启动 Hadoop 集群需要读取该文件,以确定从节点主机名,从而启动 DataNode、NodeManager 等守护进程,因此需要在该文件中添加从节点主机名。
slave1
slave2
(6)hadoop-env.sh
修改如下内容:
export JAVA_HOME=/usr/java/jdk1.8.0_112
(7)yarn-env.sh
添加如下内容:
export JAVA_HOME=/usr/java/jdk1.8.0_112
到此,完成了主节点上所有的配置,只需将这些配置信息复制到各个从节点:
# scp /home/hadoop-2.7.3/etc/hadoop/* slave1:/home/hadoop-2.7.3/etc/hadoop/
# scp /home/hadoop-2.7.3/etc/hadoop/* slave2:/home/hadoop-2.7.3/etc/hadoop/
2.3
启动 Hadoop
(1)第一次启动 HDFS 时需要初始化,在主节点上执行:
# cd /home/hadoop-2.7.3
# ./bin/hadoop namenode -format
(2)启动 HDFS:
# ./sbin/start-dfs.sh
成功启动后,访问 http://master:50070/ 即可看到 HDFS Web 界面。
(3)启动 YARN:
# ./sbin/start-yarn.sh
成功启动后,访问 http://master:8088/ 即可看到 YARN Web 界面。
这里也可以直接执行下面的命令一键启动,但第一次启动不建议这样做:
# start-all.sh
到此,Hadoop 集群环境已经搭建好了,可以根据自己的业务需求,在上面愉快的“玩耍”了。
Hadoop 项目之基于 CentOS7 的 Cloudera 5.10.1(CDH)的安装部署
http://www.linuxidc.com/Linux/2017-04/143095.htm
Hadoop2.7.2 集群搭建详解(高可用)
http://www.linuxidc.com/Linux/2017-03/142052.htm
使用 Ambari 来部署 Hadoop 集群(搭建内网 HDP 源)
http://www.linuxidc.com/Linux/2017-03/142136.htm
Ubuntu 14.04 下 Hadoop 集群安装
http://www.linuxidc.com/Linux/2017-02/140783.htm
CentOS 6.7 安装 Hadoop 2.7.2
http://www.linuxidc.com/Linux/2017-08/146232.htm
Ubuntu 16.04 上构建分布式 Hadoop-2.7.3 集群
http://www.linuxidc.com/Linux/2017-07/145503.htm
CentOS 7.3 下 Hadoop2.8 分布式集群安装与测试
http://www.linuxidc.com/Linux/2017-09/146864.htm
CentOS 7 下 Hadoop 2.6.4 分布式集群环境搭建
http://www.linuxidc.com/Linux/2017-06/144932.htm
Hadoop2.7.3+Spark2.1.0 完全分布式集群搭建过程
http://www.linuxidc.com/Linux/2017-06/144926.htm
更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2018-02/150706.htm