大数据环境搭建之hadoop完全分布式搭建

本博客只是记录apache hadoop完全分布式配置的大概过程,若在配置中遇到各种错误,本博客不负责提供解决方案,请自行解决问题。本博客中所提到的内容仅供参考使用。转载请说明来源。
apache Hadoop是目前市面上比较主流的开源分布式存储及分布式大数据计算框架,其具有高可靠,高可用,可扩展性强等特点,其设计允许简单的编程模型跨计算机集群处理大规模数据集,框架本身不依赖于硬件的可用性,而是利用设计在应用程序层检测和处理故障。Hadoop项目包含的组件模块有Common,HDFS,MapReduce,YARN等。

  • Hadoop Common:一些列的核心通用接口,用于支持其他组件模块,可用于分布式系统的序列化、RPC、持久化数据结构等等。
  • Hadoop HDFS:一个分布式文件存储系统,可运行于大型计算机集群中,具有高吞吐的数据读写特性。
  • Hadoop MapReduce:分布式大数据计算编程模型,可运行于yarn集群之上。
  • Hadoop YARN:分布式作业调度和计算机集群资源管理框架。

apache hadoop环境搭建有三种模式,单机模式、伪分布模式、完全分布模式。其中伪分布模式和完全分布模式仅仅是在配置文件中有一点不一致。本文用最小的完全分布模式为例说明apahce hadoop集群的搭建过程。

一、搭建环境准备

  • VM10
  • CentOS7操作系统
  • JDK1.8
  • Hadoop 2.7.X(建议使用稳定版本)

二、准备工作

1.每台机器安装JDK环境,检验jdk环境是否安装成功的命令:java -version,如果显示了jdk版本说明环境OK。【必需
2.每台机器创建hadoop服务所属的用户及组,以便于与系统的其他服务做区分和管理。【推荐】
注意:本文统一使用CentOS7中的root用户进行配置
3.每台机器的固定IP配置,计算机名称修改,以及ip绑定计算名称(名称不要带中横线,避免服务无法识别)的映射。【必须】
4.三台机器之间的SSH无密码登录配置。【必须】
5.三台机器的规划配置,当然也可自行搭建HA架构的,【推荐】如图示例:

名称masterslave0slave1
IP地址190.168.153.128192.168.153.129192.168.153.130
主机名masterslave0slave1
角色ResourceManagerNodeManagerNodeManager
角色NameNodeDataNodeDataNode

三、安装步骤

1.安装好VM10,并在VM10中安装好一个CentOS7,并且在VM中命名为master,IP选择桥接模式.设置用户root用户的密码,并启动安装好的CentOS7系统。
2.修改CentOS7的域名解析文件

vi /etc/hostname

3.设置hosts文件, 指令: vi /etc/hosts
配置hosts文件
4.关闭防火墙
相关指令:

firewall-cmd --state # 查看防火墙的运行状态
systemctl stop firewalld.service

但是关闭防火墙只能是临时的, 重启之后, 防火墙依然启动, 所以需要把关闭指令写到 /etc/profile 里。
相关指令:

sudo vi /etc/profile

在最后一行添加:

systemctl stop firewalld.service

5.SSH免密登陆
SSH免密登陆
免密登陆说明

  • 在master中执行 ssh-keygen命令,会在~/.ssh 目录中生成*.pub结尾的文件;
  • 创建authorized_kesy文件,命令为: touch authorized_keys
  • 将*.pub文件追加到authorized_keys文件中,指令为:cat *.pub >> authorized_keys
  • 将authorized_keys文件分别发送到slave0、slave1的机器中。
  • 使用SSH命令测试免密登陆是否成功,此时免密登陆情况为:master机器能够免密访问slave0、slave1,但是slave0、slave1不能免密访问master。

6.Java环境配置

vi /etc/profile
在文件末尾添加
export JAVA_HOME=/opt/bigData/Java/jdk1.8.0_60
export PATH=PATH:$JAVA_HOME/lib

用source /etc/profile使得配置文件生效。注意上述内容中路径的修改,检测java环境是否配置成功。
7.Hadoop环境配置

vi /etc/profile
在文件末尾添加
export HADOOP_HOME=/opt/bigData/hadoop/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin

用source /etc/profile使得配置文件生效。注意上述内容中路径的修改,检测hadoop环境是否配置成功。

hadoop -version

8.在hadoop2.7.2/etc/hadoop文件夹下配置
core-site.xml

<configuration>
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.153.128:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/opt/bigData/hadoop/tmp</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131702</value>
    </property>
</configuration>

hdfs-site.xml

<configuration>
<property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/opt/bigData/hadoop/hdfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/opt/bigData/hadoop/hdfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value><!--1,表示伪分布式2表示最小完全分布式-->
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>192.168.153.128:9001</value>
    </property>
    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>
</configuration>

mapred-site.xml
这个目录下面没有这个文件, 但是有这个文件的模板, 可以先从这个模板拷贝一个方案
指令: cp mapred-site.xml.template mapred-site.xml

<configuration>
<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
        </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>192.168.153.128:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>192.168.153.128:19888</value>
    </property>
    <property>
        <name>mapreduce.jobtracker.http.address</name>
        <value>192.168.153.128:50030</value>
    </property>
    <property>
        <name>mapred.job.tracker</name>
        <value>192.168.153.128:9001</value>
    </property>
</configuration>

yarn-site.xml

<configuration>
<!-- Site specific YARN configuration properties -->
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>192.168.153.128:8032</value>
    </property>
<property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>192.168.153.128:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>192.168.153.128:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>192.168.153.128:8033</value>
    </property>
<property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>192.168.153.128:8088</value>
    </property>
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>4096</value>
    </property>
    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>4096</value>
    </property>

  <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
  </property>
  <property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
  </property>
</configuration>

配置hadoop_env.sh 环境
编辑文件 hadoop-env.sh
添加一行:

export JAVA_HOME=/opt/bigData/Java/jdk1.8.0_60

mapred-env.sh
编辑文件 mapred-env.sh
添加一行:

export JAVA_HOME=/opt/bigData/Java/jdk1.8.0_60

添加masters
添加一个masters文件, 将master添加进去
指令: vi masters
添加:
master

注意:添加masters不一定是必须的。不用该文件也可以运行。

修改slaves
添加:
slave0 或者slave0机器的IP地址
slave1 或者slave1机器的IP地址

到此hadoop配置完成,将整个hadoop发送至slave0、slave1即可。
9.测试

  • 格式化硬盘
    指令: hadoop namenode -format
    看到如下日志即为成功~~
    hadoop格式化硬盘成功
  • 启动服务
    指令: start-all.sh
  • 在master终端输入jps查看, 发现namenode已启动
    在slave终端输入jps, 发现datanode已启动, 说明已完成
    如果datanode无法启动, 在从机的/opt/bigData/Hadoop/hadoop-2.7.2/logs/hadoop-luds-datanode-slave0.out这种格式的错误日志
    可以查看错误日志

至此, 集群式环境以部署完毕!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值