IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> HADOOP集群初始配置准备 -> 正文阅读

[大数据]HADOOP集群初始配置准备

完全分布式运行模式(开发重点)
分析:

? ? ? ?1)准备3台客户机(关闭防火墙、静态IP、主机名称)

? ? ? ?2)安装JDK

? ? ? ?3)配置环境变量

? ? ? ?4)安装Hadoop

? ? ? ?5)配置环境变量

6)配置集群

7)单点启动

? ? ? ?8)配置ssh

? ? ? ?9)群起并测试集群

1.编写集群分发脚本xsync,
1)scp(secure copy)安全拷贝

? ? ? ??

(1)scp定义

scp可以实现服务器与服务器之间的数据拷贝。(from server1 to server2)

? ? ? ?(2)基本语法

scp ? ?-r ? ? ? ?$pdir/$fname ? ? ? ? ? ? $user@$host:$pdir/$fname

命令 ? 递归 ? ? 要拷贝的文件路径/名称 ? 目的地用户@主机:目的地路径/名称

(3)案例实操

前提:在hadoop102、hadoop103、hadoop104都已经创建好的/opt/module、 ? ? ? ? ? /opt/software两个目录,并且已经把这两个目录修改为对应的user和group zjx:zjx
[zjx@hadoop102 ~]$ sudo chown atguigu:atguigu -R /opt/module

(a)在hadoop102上,将hadoop102中/opt/module/jdk8目录拷贝到hadoop103上。

scp -r /opt/module/jdk8/ zjx@hadoop104:/opt/module/
scp -r /opt/module/jdk8/ zjx@hadoop103:/opt/module/

2)rsync远程同步工具

rsync主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。

rsync和scp区别:用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复制过去。

? ? ? ?(1)基本语法

rsync ? ?-av ? ? ? $pdir/$fname ? ? ? ? ? ? $user@$host:$pdir/$fname

命令 ? 选项参数 ? 要拷贝的文件路径/名称 ? 目的地用户@主机:目的地路径/名称

? ? ? ? ?选项参数说明

选项

功能

-a

归档拷贝

-v

显示复制过程

(2)案例实操

? ? ? ?(a)同步hadoop102中的/opt/module/hadoop-3.1.3到hadoop103 ??

? ? ?rsync -av /opt/module/hadoop-3.1.3/ zjx@hadoop103:/opt/module/hadoop-3.1.3
?
?
? ? ? rsync -av /opt/module/hadoop-3.1.3/ zjx@hadoop103:/opt/module/hadoop-3.1.3
? ? ? ?

(3)实现一个集群之间分发文件的脚本

#!/bin/bash
?
#1. 判断参数个数
if [ $# -lt 1 ]
then
? ? echo Not Enough Arguement!
? ? exit;
fi
?
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
do
? ? echo ==================== ?$host ?====================
? ? #3. 遍历所有目录,挨个发送
?
? ? for file in $@
? ? do
? ? ? ? #4. 判断文件是否存在
? ? ? ? if [ -e $file ]
? ? ? ? ? ? then
? ? ? ? ? ? ? ? #5. 获取父目录
? ? ? ? ? ? ? ? pdir=$(cd -P $(dirname $file); pwd) ? ?## 防止穿的软连接,这里拿到真的父目录
?
? ? ? ? ? ? ? ? #6. 获取当前文件的名称
? ? ? ? ? ? ? ? fname=$(basename $file) ? ?
? ? ? ? ? ? ? ? ssh $host "mkdir -p $pdir" ? ?### 在远程server上创建文件夹, -p 参数,如果文件夹已经存在,命令不会报错
? ? ? ? ? ? ? ? rsync -av $pdir/$fname $host:$pdir
? ? ? ? ? ? else
? ? ? ? ? ? ? ? echo $file does not exists!
? ? ? ? fi
? ? done
done
(6)测试脚本

?查看其它server

2集群配置:

1)集群部署规划

???????? 注意:

  • NameNode和SecondaryNameNode不要安装在同一台服务器
  • ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上。

hadoop102

hadoop103

hadoop104

HDFS

NameNode

DataNode

DataNode

SecondaryNameNode

DataNode

YARN

NodeManager

ResourceManager

NodeManager

NodeManager

2)配置文件说明

Hadoop配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认配置值时,才需要修改自定义配置文件,更改相应属性值。

(1)默认配置文件:

要获取的默认文件

文件存放在Hadoop的jar包中的位置

[core-default.xml]

hadoop-common-3.1.3.jar/core-default.xml

[hdfs-default.xml]

hadoop-hdfs-3.1.3.jar/hdfs-default.xml

[yarn-default.xml]

hadoop-yarn-common-3.1.3.jar/yarn-default.xml

[mapred-default.xml]

hadoop-mapreduce-client-core-3.1.3.jar/mapred-default.xml

(2)自定义配置文件:

?????? core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml四个配置文件存放在$HADOOP_HOME/etc/hadoop这个路径上,用户可以根据项目需求重新进行修改配置。

3)配置集群

(1)核心配置文件

1.配置core-site.xml

文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
    <!-- 指定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>

    <!-- 配置HDFS网页登录使用的静态用户为atguigu -->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>zjx</value>
    </property>
</configuration>

?2.配置hdfs-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<!-- nn web端访问地址-->
	<property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop102:9870</value>
    </property>
	<!-- 2nn web端访问地址-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop104:9868</value>
    </property>
</configuration>

3.配置yarn-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
    <!-- 指定MR走shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <!-- 指定ResourceManager的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop103</value>
    </property>

    <!-- 环境变量的继承 -->
    <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>

<!-- 开启日志聚集功能 -->
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>  
    <name>yarn.log.server.url</name>  
    <value>http://hadoop102:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为7天 -->
<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
</property>

</configuration>

4.配置mapred-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<!-- 指定MapReduce程序运行在Yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>


<!-- 历史服务器端地址 -->
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop102:10020</value>
</property>

<!-- 历史服务器web端地址 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop102:19888</value>
</property>

5.配置集群workers

vim $HADOOP_HOME/etc/hadoop/workers

给文件中添加如下
hadoop102
hadoop103
hadoop104

4.群起集群:

1)启动集群

(1)如果集群是第一次启动,需要在hadoop102节点格式化NameNode(注意:格式化NameNode,会产生新的集群id,导致NameNodeDataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenodedatanode进程,并且要删除所有机器的datalogs目录,然后再进行格式化。

[zjx@hadoop102 hadoop-3.1.3]$ hdfs namenode -format

2)启动HDFS

[zjx@hadoop102 hadoop-3.1.3]$ sbin/start-dfs.sh

(3)在配置了ResourceManager的节点(hadoop103启动YARN

[zjx@hadoop103 hadoop-3.1.3]$ sbin/start-yarn.sh

(4)Web端查看HDFS的NameNode

(a)浏览器中输入:http://hadoop102:9870

?????? ?????? (b)查看HDFS上存储的数据信息

(5)Web端查看YARN的ResourceManager

(a)浏览器中输入:http://hadoop103:8088

?????? (b)查看YARN上运行的Job信息

3)可以在界面上操作了..上传删除文件测试

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-07-04 22:59:49  更:2022-07-04 23:00:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 18:34:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码