本人第一篇博客:关于Hadoop完全分布式集群的搭建

Hadoop简介

Hadoop用最简单的话来说就是一个数据统计和计算的一个东西,Hadoop这个词是属于最近现代最火的一个词之一,也是企业以及各个行业用的最多的一个分布式系统基础架构(现在应该发展到Hadoop3.x了,这里是对于Hadoop2.x集群搭建的简介)

正题

我们需要准备的软件:
1.Hadoop.2.x
2.Centos6.x
3.JDK1.7.x
4.Xshell 6
5.VMware Workstation12

搭建集群

集群的搭建我们分为两部分:
A.第一部分就是网络环境的配置
B.第二部分是Hadoop运行的基础环境

接下来就从第一部网络环境配置开始

A.网络环境配置:

网络配置

1.使用VMware Workstation12 虚拟三台虚拟机,其系统为Centos6.x(虚拟机创建过程就不演示了)(事先用Xshell或者其他远程工具连接到Linux)
网络环境准备:
2.安装Centos6.x成功后,在输入界面输入网络编辑的命令:
vim /etc/sysconfig/network-scripts/ifcfg-eth0(当然这个命令在其他的系统上还是会有不同的写法,所以请注意)
(补充一点)网络的连接方式选择NAT连接
选择NAT
出现如下界面:(当然我这里是修改好了的)
这就是网络编辑界面
这里我需要说明几个重要的东西:

1. DEVICE:这个东西是网卡的设备名字
2. ONBOOT:这是网卡的开机自启,默认选项是NO,也就是未开启,这里给他写YES
3. BOOTPROTO:系统开机默认的IP地址获取方式,原来的应该是dhcp * [dhcp]:动态获取IP地址
4. IPADDR:IP地址一定要和自己的虚拟地址网段一样,下面的图片供参考
5. NETMASK:子网掩码
6. GATEWAY:网关是一个很重要的东西,如果配置出现问题的话,那么将无法ping通网络
7. DNS1:域名解析,这里就把他设置为8.8.8.8

这个地方需要调配
在这里插入图片描述
(虚拟网络查看在Vmware里面的—编辑—虚拟网络编辑器)
在这里插入图片描述
VMware里面的虚拟网络
(千万注意网段要一样:192.168.217.x 不一样就会出错)

8.进行ping网络试试(这里已经成功):

ping网络已经ping通
ping不通网络的一个解决方法:
当然不成功的几率也比较大,但是大部分都是报错说不知道地址名称(这里有个解决办法,但是不是每个都可以成功)
进入 vi /etc/resolv.conf
在这里面添加一个域名就可以了
往里面编辑DNS就可以了。

系统时间设置(!!!)

为什么要设置时间呢?这里很多人会问,当然最简单的解释就是Hadoop启动 数据节点时要依赖你各个主机的时间戳,如果集群启动没有datenode的话那基本就是这里出现了问题。

同步时间:(第一种方式比较简单,注意每台主机的时间都要几乎一样,不要有太大的间隔)
1.手动同步:date -s '2019-01-01 12:00’
2.自动时间的同步:
yum -y install ntpdate(ntp服务)
ntpdate cn.pool.ntp.org

设置主机名

注:这里的主机名尽量改简单一点,尽量有关联一点,因为后续的操作频繁用到主机名。
vi /etc/sysconfig/network
HOSTNAME=XXX
主机名的修改

配置IP映射

配置这个是为了方便访问IP
vi /etc/hosts
IP地址 主机名

映射描述

配置SSH免密登陆

当然这一步要把自己的主机也配置,因为后期程序启动也要在主机上调用(如果这个没有配置的话,后面启动集群每次启动一个服务都需要输入密码,会显得十分麻烦)
1.ssh-keygen-t rsa(根据提示来进行输入)
SSH免密登陆
2.这将会生成id.rsa(私钥)、id.rsa.pub(公钥)
将公钥进行拷贝到免密登陆的主机上
ssh-copy-id 主机名

防火墙设置

关闭防火墙,主要是方便几台节点的通信。
防火墙的设置是为了让自己的私有网络和外面的公网分开而来,从而保护网络安全,因为这是在自己的虚拟网络上进行实验,所以关闭防火墙也没有什么太大的风险(毕竟也没有什么有用的数据,嘿嘿嘿),如果公司也是开启的话,则需要在防火墙的设置下一点功夫。(但是大部分企业公司不会这么做
1.查看防火墙的状态
service iptables status(我这里未运行)
防火墙状态
2.关闭防火墙(立即生效,关机无效)
service iptables stop
3.开机自动关闭防火墙
chkconfig iptables off(到这里集群的网络环境已经完成了)


第二部分开始:

B. Hadoop运行的基础环境:

上传JDK安装包(Linux版)

1.在XShell里面用 rz 命令
弹出对话框
rz命令
(然后选择JDK双击,记住要Linux版本)
2.解压安装包
tar zxvf JDK-x-x 安装的路径(路径自己要记住,环境变量配置需要)
3.编辑环境变量
vi /etc/profile
i:进入编辑

第一种方式:
环境变量

export JAVA_HOME=/home/java/jdk
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

第一个JAVA_HOME就是JAVA安装的路径,这里写的绝对路径
第二个CLASSPATH:工作类

第二种方式:
Java

 export JAVA_HOME=/home/java/jdk
 export PATH=$PATH:$JAVA_HOME/bin
 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 当然是不需要#号的,#是注释

刷新配置:source /etc/profile
测试是否成功:java -version(看能否出现版本号)

Hadoop的目录结构

先来看一个图片:
Hadoop目录结构

在进行Hadoop的配置安装前,让我们先来了解一下Hadoop的各个工作目录:

bin:Hadoop最基本的管理脚本和使用脚本的目录
etc:Hadoop配置文件所在的目录,如core-site.xml、hdfs-site.xml、mapred-site.xml等
include:对外提供的编程库头文件(文件均由c++定义,通常用于c++程序访问HDFS或者编写MapReduce程序)
lib:包含Hadoop对外提供的编程动态库和静态库,与include目录中的头文件结合使用
libexec:各个服务对应的shellpe配置文件所在的目录
sbin:Hadoop脚本的所在目录
share:Hadoop各个模块编译后的jar包所在位置

配置文件的修改

关于Hadoop的配置文件修改要修改hadoop-env.sh、core-site.xml、hdfs-site.xml、mpared-site.xml、yarn-site.xml以及slaves

1.hadoop-env.sh
这里面需要指定JDK的绝对路径,便于Hadoop能够找到,二次保险工作

# The java implementation to use.
export JAVA_HOME=/home/java/jdk

修改方法:找到这一行,向里面添加JDK的绝对路径
修改后的图片:
Java路径

2.core-site.xml
这里是Hadoop核心配置文件
修改方法:向configuration这中间添加以下东西configuration

 <property>
 <name>fs.defaultFS</name>
  <value>hdfs://test1:9000</value>
 </property>  //HDFS系统命名以及端口信息 test1为主机名 9000为端口号
<property>
 <name>hadoop.tmp.dir</name>
  <value>/home/hadoop/hadoop/tmp</value>
</property>  //指定hadoop运行时产生文件的存储目录

修改后的图片:
core-site.xml

3.hdfs-site.xml
这是HDFS相关配置
修改方法:向configuration这中间添加以下东西configuration

 <property>
  <name>dfs.replication</name>
  <value>2</value>
 </property>  //这里指定HDFS副本备份的数量,不写这个的话默认是3份
<property>
 <name>dfs.namenode.secondary.http-address</name>
 <value>test2:50090</value>
</property>  //这个是指定secondanamenode在哪个节点上 test2为第二台主机名,50090为端口号

修改后的图片:
在这里插入图片描述
4.mapred.site-xml
该文件是MapReduce的相关配置
注:这个文件是通过复制mapred.site.xml.template得到的
得到配置文件
修改方法:向configuration这中间添加以下东西configuration

<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>  //指定MP框架时,指定在yarn上
</property>

修改后的图片:
mapreduce

5.yarn-site.xml
该文件为YARN的框架设置
修改方法:向configuration这中间添加以下东西configuration

<property>
  <name>yarn.resourcemanager.hostname</name>
  <value>test1</value>
</property>  //指定resourcemanager进程在哪台主机上运行  通常为第一台主机
<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>  //配置NodeManager上运行的附属服务需要配成这样mapreduce_shuffle,这样子才可以默认运行MapReduce程序

修改后的图片:
yarn

6.slaves文件
里面必须保存slavas节点信息
slaves
这里面只需要将主机名写进去就可以了。

Hadoop的环境变量的配置

这个配置和JDK环境配置差不多,都是要写到**/etc/profile**里面去

export HADOOP_HOME=/home/hadoop/hadoop
export PATH=.:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH

Hadoop环境变量
到这里就差最后一步了,那就是对文件进行拷贝,因为所有的操作都是在第一台主机上面来实现的,其他的主机上并没有,所以要做的就是将JDK和Hadoop还有环境变量配置文件全部进行一个搬运

最后一步:拷贝

拷贝:scp -r /JDK路径 主机名:/指定路径
拷贝:scp -r /Hadoop路径 主机名:/指定路径
拷贝:scp -r /etc/profile 主机名:/etc(记住,拷贝过去之后同样要进行source命令来更新环境变量)

当然还有一个大招

就算全部完成之后还要进行一个操作
那就是格式化HDFS:hdfs -namenode format
或者这个命令:hadoop namenode -format
有进行了格式化HDFS才能启动集群
启动集群:start-all.sh
查看集群的进程就用:jps这个命令
(打了jps的话,如果没有出现问题的话,应该可以出现5个进程)

最后一步的查看,也就是在网页进行查看
当然这一步建立在你启动集群没有问题的情况下
在网页输入:http://自己主机的IP地址:50070
比如这样:http://192.168.217.110:50070

有的时候很多人这里又出问题了,因为发现自己的进程有,但是网页就是打不开,这时候就需要注意了:
1.换个浏览器,比如谷歌,虽然换个浏览器就能访问不知道是什么原理,但是可以去试试。
2.这个地方就会是关键因为在Linux里面的hosts和windows里面的hosts都必须写入正确,当然这个windows的hosts映射在哪个地方呀?接下来会用一系列图片来给出完整的演示(看好了请不要眨眼,哈哈哈):

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
用记事本打开
在这里插入图片描述
好了,通过这一系列的操作,Hadoop完全发布式集群搭建已经成功了。

最后还有一点:博主QQ:1723004150 微信:17674518894
欢迎大家对我这篇博客提出不足和出现的错误,同时也可以和我一起来学习大数据。
我是Hadoop小老弟。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值