二、大数据之Hadoop完全分布式集群搭建

Hadoop简介:

​ Hadoop是一个由Apache基金会所开发的分布式系统基础架构,主要解决海量数据的存储和海量数据的分析计算问题。从广义上来说,Hadoop指的是一个更广泛的概念——Hadoop生态圈

Hadoop的优势:
   (1)高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元素或存储出现故障,
   		也不会导致数据的丢失。
   (2)高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。

   (3)高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。

   (4)高容错性:能够自动将失败的任务重新分配。

(1)安装JDK和Hadoop

​ 解压JDK和Hadoop到/opt/module目录下

tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/	#解压JDK
tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/		    #解压Hadoop3.1.3

(2)配置环境变量

# 新建/etc/profile.d/my_env.sh文件
sudo vim /etc/profile.d/my_env.sh

添加如下配置:

# JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin

# HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
# 使环境变量生效
source /etc/profile.d/my_env.sh

(3)集群部署规划

节点名 	IP地址			主机名
主节点 	192.168.1.102 	hadoop102
从节点		192.168.1.103 	hadoop103
从节点		192.168.1.104 	hadoop104
hadoop102hadoop103hadoop104
HDFSNameNodeSecondaryName
DataNodeDataNodeDataNode
YARNResourceManager
NodeManagerNodeManagerNodeMAnager

(4)配置免密登录

ssh-keygen -t rsa	# 生成公钥和私钥
ssh-copy-id hadoop102	# 将公钥拷贝到目标机器上
known_hosts记录ssh访问过计算机的公钥(public key)
id_rsa生成的私钥
id_rsa.pub生成的公钥
authorized_keys存放授权过得无密登录服务器公钥

(5)修改Hadoop配置文件

首先进入hadoop目录:

cd $HADOOP_HOME/etc/hadoop

1.vim hdfs-site.xml

<configuration>
<!--NameNode http服务器地址和端口-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop104:9868</value>
    </property>
<!-- 指定HDFS副本的数量:默认是3 -->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
</configuration>

2.vim core-site.xml

<configuration>

<!--指定HDFS的NameNode的地址-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop102:8020</value>
    </property>
<!--指定Hadoop运行时产生文件的储存目录-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-3.1.3/data</value>
    </property>
<!--(可选)代理服务器的主机名用户连接-->
    <property>
        <name>hadoop.proxyuser.tan.hosts</name>
        <value>*</value>
    </property>
<!--(可选)代理服务器的用户组连接-->
    <property>
        <name>hadoop.proxyuser.tan.groups</name>
        <value>*</value>
    </property>
<!--访问web网页时的用户-->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>tan</value>
    </property>

</configuration>

3.vim yarn-site.xml

<configuration>

<!--Reducer获取数据的方式-->
        <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
<!--指定YARN的ResourceManager的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop103</value>
    </property>
<!--容器可以覆盖的环境变量而不是使用NodeManager的默认变量-->
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>
        JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,
        CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
        </value>
    </property>
<!--每个容器请求的最小分配(以MB为单位)-->
    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>512</value>
    </property>
<!--每个容器请求的最大分配(以MB为单位)-->
    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>4096</value>
    </property>
<!--作为yarn.nodemanager.resource.memory-mb属性,但对于MiniYARNCluster中的NodeManager-->
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>4096</value>
    </property>
<!--是否对容器强制实施物理内存限制-->
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>
<!--是否对容器强制执行虚拟内存限制-->
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>

</configuration>

4.vim mapred-site.xml

<configuration>

<!--用于MapReducedjobs运行时框架:可以是local,yarn上-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

</configuration>

5.vim workers

hadoop102
hadoop103
hadoop104
# 注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。

(6)配置文件分发

cd /opt/module/	# 进入/opt/module/目录
scp -r jdk1.8.0_212/ 目标地址:/opt/module/	#分发JDK
scp -r hadoop-3.1.3/ 目标地址:/opt/module/	#分发Hadoop
sudo scp -r /etc/profile.d/my_env.sh 目标地址:/etc/profile.d/my_env.sh	#分发环境变量配置

(7)集群启动

注:如果集群是第一次启动,需要格式化NameNode
(注意格式化之前,一定要先停止上次启动的所有namenode和datanode进程,然后再删除dfs和log数据)

1.格式化NameNode

cd  $HADOOP_HOME #进入Hadoop的家目录下
bin/hdfs namenode -format  #格式化命令

2.启动HDFS集群

sbin/start-dfs.sh	# 在hadoop102执行

3.启动YARN集群

sbin/start-yarn.sh	# 在hadoop103执行

(8)查看集群节点启动情况

1.jps查看

jps	#查询节点启动情况

​ jpsall脚本搭建:可以同时查看多个集群上的启动节点

cd /home/tan/	#进入用户家目录
mkdir bin		#新建一个bin目录
vim bin/jpsall	#编写脚本
chmod +x jpsall #赋予可执行权限

jpsall 脚本代码编写如下:

#!/bin/bash
for i in hadoop102 hadoop103 hadoop104
do
        echo "========    $i    ========"
        ssh $i "jps" | grep -v Jps
done
[tan@daoop102 hadoop]$ jpsall
========    hadoop102    ========
10016 DataNode
10777 NodeManager
9886 NameNode
========    hadoop103    ========
9088 ResourceManager
7817 DataNode
9230 NodeManager
========    hadoop104    ========
7792 DataNode
8443 NodeManager
7903 SecondaryNameNode

2.Web端查看

HDFS的Web页面:http://hadoop102:9870/

YARN的Web页面:http://hadoop103:8088/

Web端查看SecondaryNameNode信息:http://hadoop104:9868/

(9)Hadoop的目录结构

[tan@hadoop102 hadoop-3.1.3]$ ll
总用量 180
drwxr-xr-x. 2 tan tan    183 912 2019 bin
drwxr-xr-x. 3 tan tan     20 912 2019 etc
drwxr-xr-x. 2 tan tan    106 912 2019 include
drwxr-xr-x. 3 tan tan     20 912 2019 lib
drwxr-xr-x. 4 tan tan    288 912 2019 libexec
-rw-rw-r--. 1 tan tan 147145 94 2019 LICENSE.txt
-rw-rw-r--. 1 tan tan  21867 94 2019 NOTICE.txt
-rw-rw-r--. 1 tan tan   1366 94 2019 README.txt
drwxr-xr-x. 3 tan tan   4096 912 2019 sbin
drwxr-xr-x. 4 tan tan     31 912 2019 share
   (1)bin目录:存放对Hadoop相关服务(HDFS、YARN)进行操作的脚本。
   (2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件。
   (3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)。
   (4)sbin目录:存放启动或停止Hadoop相关服务的脚本。
   (5)share目录:存放Hadoop的依赖jar包、文档、和官方案例。
   (6)logs目录:存放日志文件

(10)Hadoop官方文档说明:

https://hadoop.apache.org/docs/r3.1.3/

Java和Hadoop安装包下载链接:

链接:https://pan.baidu.com/s/1008xOtUT21xBdVYIL0t4Cw 提取码:1907
复制这段内容后打开百度网盘手机App,操作更方便哦

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值