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 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 完全分布式的安装 -> 正文阅读

[大数据]完全分布式的安装

先准备三台虚拟机,依次分别命名Hadoop01,Hadoop02,Hadoop03.

IP地址依次为192.168.10.101;192.168.10.102;192.168.10.103;

完全分布式搭建环境准备

1. 总纲

?1. 三台机器的防?墙必须是关闭的 .
?2. 确保三台机器的?络配置畅通 (NAT 模式,静态 IP ,主机名的配置 )
?3. 确保 /etc/hosts ?件配置了 ip hostname 的映射关系
?4. 确保配置了三台机器的免密登陆认证(克隆会更加?便)
?5. 确保所有机器时间同步

?6. jdk和hadoop的环境变量配置

2. 关闭防?墙

[root@Hadoop01 ~] # systemctl stop firewalld
[root@Hadoop01 ~] # systemctl disable firewalld
[root@Hadoop01 ~] # systemctl stop NetworkManager
[root@Hadoop01 ~] # systemctl disable NetworkManager
# 最好也把 selinux 关闭掉,这是 linux 系统的?个安全机制,进??件中将
SELINUX 设置为 disabled
[root@Hadoop01 ~] # vi /etc/selinux/config
.........
SELINUX = disabled
? 注意:三台机子都要关闭防火墙

3. 静态IP和主机名配置

--1. 配置静态IP(确保NAT模式)
[root@Hadoop01 ~]# vi /etc/sysconfig/network
scripts/ifcfg-ens33
............
BOOTPROTO=static # 将dhcp改为static
............
ONBOOT=yes # 将no改为yes
IPADDR=192.168.10.101 # 添加IPADDR属性和ip地址
PREFIX=24 # 添加
NETMASK=255.255.255.0或者PREFIX=24
GATEWAY=192.168.10.2 # 添加?关GATEWAY
DNS1=114.114.114.114 # 添加DNS1和备份DNS
DNS2=8.8.8.8
--2. 重启?络服务
[root@Hadoop01 ~]# systemctl restart network
或者
[root@Hadoop01 ~]# service network restart
--3. 修改主机名(如果修改过,请略过这?步)
[root@localhost ~]# hostnamectl set-hostname Hadoop01
或者
[root@localhost ~]# vi /etc/hostname
Hadoop01

4. 配置/etc/hosts?件

[root@Hadoop01~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4
localhost4.localdomain4
::1 localhost localhost.localdomain localhost6
localhost6.localdomain6
192.168.10.101 Hadoop01#添加本机的静态IP和本机的主机名之间的映
射关系
192.168.10.102 Hadoop02
192.168.10.103 Hadoop03

5. 免密登陆认证

-1. 使?rsa加密技术,?成公钥和私钥。?路回?即可
[root@Hadoop01~]# cd ~
[root@Hadoop01~]# ssh-keygen -t rsa
-2. 进?~/.ssh?录下,使?ssh-copy-id命令
[root@Hadoop01 ~]# cd ~/.ssh
[root@Hadoop01 .ssh]# ssh-copy-id root@Hadoop01
-3. 进?验证
[hadoop@Hadoop01 .ssh]# ssh Hadoop01
#下?的第?次执?时输?yes后,不提示输?密码就对了
[hadoop@Hadoop01.ssh]# ssh localhost
[hadoop@Hadoop01 .ssh]# ssh 0.0.0.0
注意:三台机器提前安装好的情况下,需要同步公钥?件。如果使?克隆技术。那
么使?同?套密钥对就?便多了。

6. 时间同步

? ?6.1要先安装 ntp 服务和 ntpdate 工具: yum -y install ntp ntpdate 即使是作为服务端的主机,在必要时刻也是需要向公用的ntp 服务器进行时间同步的 ( 一般不用 )
????????[root@ Hadoop01 ~]# vim /etc/ntp.conf
????????#授权下述网段上所有的机器允许从 ntp 服务器上查询和同步时间 restrict 192.168.10.0 mask ????????255.255.255.0 nomodify notrap
下述文档直接赋值粘贴,替换原文档
driftfile /var/lib/ntp/drift
# 默认情况下 ,NTP 服务器的日志保存在 /var/log/messages. 当然我们也可以自己指定
# 自己指定日志目录
# 我们要确保他的属性和 SELinux 环境 ( 这两项一般不用改 )
# chown ntp:ntp /var/log/ntpd.log
# chcon -t ntpd_log_t /var/log/ntpd.log
logfile /var/log/ntpd.log
restrict default nomodify notrap nopeer noquery
# 给与本机所有权限
restrict 127.0.0.1
restrict ::1
# 授权下述网段上所有的机器允许从 ntp 服务器上查询和同步时间
restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap
# 增加下述几个时间服务器列表 , 除了 0.asia.pool.ntp.org 还会有很多时间服务器 . 比如 0.cn.pool.ntp.org 或者
time.nist.gov 或者
server 0.asia.pool.ntp.org iburst
server 1.asia.pool.ntp.org iburst
server 2.asia.pool.ntp.org iburst
server 3.asia.pool.ntp.org iburst
# 这两行内容表示当外部时间不可用时,使用本地时间
server 127.127.1.0 iburst
fudge 127.127.1.0 stratum 10
# 下述四行表示允许上层服务器修改本机时间
restrict 0.asia.pool.ntp.org nomodify notrap noquery
restrict 1.asia.pool.ntp.org nomodify notrap noquery
restrict 2.asia.pool.ntp.org nomodify notrap noquery
restrict 3.asia.pool.ntp.org nomodify notrap noquery
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
disable monitor
? ?6.2设置开机自启动服务 (初始化)
????????使服务端服务ntp 的守护进程 ntpd 生效
????????[root@ Hadoop01 ~]# systemctl enable ntpd
????????Created symlink from /etc/systemd/system/multi-user.target.wants/ntpd.service to
/usr/lib/systemd/system/ntpd.service.
????????使客户端工具ntpdate 工具生效 ( 选做 )
????????[root@ Hadoop01 ~]# systemctl enable ntpdate
????????Created symlink from /etc/systemd/system/multi-user.target.wants/ntpdate.service to
????????/usr/lib/systemd/system/ntpdate.service.
????????检查
????????[root@ Hadoop01 ~]# systemctl is-enabled ntpd
????????显示: enabled
6.3?启用ntp服务
????????[root@ Hadoop01 ~]# systemctl start ntpd
????????查看ntpd 进程
????????[root@ Hadoop01 ~]# ps -ef | grep ntpd
??ntp 1185 1 0 03:50 ? 00:00:00 /usr/sbin/ntpd -u ntp:ntp -g root 1663 1136 0 04:35 pts/2 00:00:00 grep -- color=auto ntp
????????进程存在, 说明服务已经正常启动
6.4设置硬件时间
? ?6.4.1? 查看 ntp 的情况
? ?[root@ Hadoop01 ~]# ntpq -p
? ?6.4.2? 执行同步
? ? ? ?root@ Hadoop01 ~]# hwclock -w
? ?6.4.3? 测试
? [root@ Hadoop01? conf]# ntpstat
synchronised to NTP server (78.46.102.180) at stratum 3 time? ? ? correct to within 189 ms polling server every 64 s
? 出现上述语句,说明本地已经与时间服务器实现了同步
6.5 客户端同步
? ? 6.5.1安装工具
[root@Hadoop02~]# yum -y install ntp ntpdate
方法一:
[root@Hadoop02~]# hwclock -w
下述IP地址与Hadoop01一直
[root@Hadoop02~]# echo "server 192.168.10.101" >/etc/ntp.conf
[root@Hadoop02~]# systemctl enable ntpd
[root@Hadoop02~]# systemctl restart ntpd
2 重启服务以使配置生效 , 之后 大概要等10分钟左右,才会同步成功
方法二:
1 进行客户端与服务器端的时间同步
[root@Hadoop02~]# systemctl enable ntpdate
[root@Hadoop02~]# /usr/sbin/ntpdate -u 192.168.10.101
2 让系统时间和硬件时间同步
[root@Hadoop02~]# hwclock -w
3 可以设置定时器 , 定时执行 , 因为 ntpdate 每次执行完就失效了 .
[root@slaHadoop02ve1 ~]# crontab -e
每天和主机同步一次
10 23 * * * (/usr/sbin/ntpdate -u 192.168.10.101??&&? /sbin/hwclock -w) &> /var/log/ntpdate.log
注:Hadoop03配置与Hadoop02一样

7. 安装JdkHadoop,配置相关环境变量

-1 . 上传和解压两个软件包
[root@ Hadoop01? ~] # tar -zxvf jdk-8u221-linux-x64.tar.gz? -C? ?/usr/local/
[root@ Hadoop01? ~] # tar -zxvf hadoop-2.7.6.tar.gz? ?-C? ?/usr/local/
-2 . 进? local ?,给两个软件更名
[root@ Hadoop01? ~] # cd /usr/local/
[root@ Hadoop01? local] # mv 1.8.0_221/ jdk
[root@ Hadoop01? local] # mv hadoop-2.7.6/ hadoop
-3 . 配置环境变量
[hadoop@ Hadoop01? local] # vi /etc/profile
..... 省略 ...........
#java environment
export JAVA_HOME = /usr/local/jdk
export PATH = $JAVA_HOME /bin: $JAVA_HOME /jre/bin: $PATH
#hadoop environment
export HADOOP_HOME = /usr/local/hadoop
export PATH = $HADOOP_HOME /bin: $HADOOP_HOME /sbin: $PATH

8.配置Hadoop配置文件

? 8.1 ? 在完全分布式集群的配置中,需要配置的是 4 个配置?件
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
? ?8.2配置core-site.xml
[root@ Hadoop01? ~]# cd $HADOOP_HOME/etc/hadoop/
[root@ Hadoop01? hadoop]# vi core-site.xml
<configuration>
????????<!-- hdfs的地址名称: schame,ip,port-->
????????<property>
????????????????<name> fs.defaultFS </name>
????????????????<value> hdfs:// Hadoop01? :8020 </value>
????????</property>
????????<!-- hdfs的基础路径,被其他属性所依赖的?个基础路径 -->
????????<property>
????????????????<name> hadoop.tmp.dir </name>
????????????????<value> /usr/local/hadoop/tmp </value>
????????</property>
</configuration>
? ?8.3配置 hdfs-site.xml
[root@ Hadoop01? ? hadoop]# vi hdfs-site.xml
<configuration>
????????<!-- namenode守护进程管理的元数据?件 fsimage 存储的位置 -->
????????<property>
????????????????<name> dfs.namenode.name.dir </name>
????????????????<value> file://${hadoop.tmp.dir}/dfs/name </value>
????????</property>
????????<!-- 确定 DFS 数据节点应该将其块存储在本地?件系统的何处 -->
????????<property>
????????????????<name> dfs.datanode.data.dir </name>
????????????????<value> file://${hadoop.tmp.dir}/dfs/data </value>
????????</property>
????????<!-- 块的副本数 -->
????????<property>
????????????????<name> dfs.replication </name>
????????????????<value> 3 </value>
????????</property>
????????<!-- 块的?? (128M), 下?的单位是字节 -->
????????<property>
????????????????<name> dfs.blocksize </name>
????????????????<value> 134217728 </value>
????????</property>
????????<!-- secondarynamenode守护进程的 http 地址:主机名和端?号。-->
????????<property>
????????????????<name> dfs.namenode.secondary.http-address </name>
???????????????<value> Hadoop02 :50090 </value>
????????</property>
????????<!-- namenode守护进程的 http 地址:主机名和端?号。-->
????????<property>
????????????????<name> dfs.namenode.http-address </name>
????????????????<value> Hadoop01 :50070 </value>
????????</property>
</configuration>
? ?8.4配置mapred-site.xml
[root@ Hadoop01 hadoop]# cp? ? mapred-site.xml.template? ? mapred-site.xml
[root@ Hadoop01? hadoop]# vi mapred-site.xml
<configuration>
????????<!-- 指定 mapreduce 使? yarn 资源管理器 -->
????????<property>
????????????????<name> mapreduce.framework.name </name>
????????????????<value> yarn </value>
????????</property>
????????<!-- 配置作业历史服务器的地址 -->
????????<property>
????????????????<name> mapreduce.jobhistory.address </name>
????????????????<value> Hadoop01 :10020 </value>
????????</property>
????????<!-- 配置作业历史服务器的 http 地址 -->
????????<property>
????????????????<name> mapreduce.jobhistory.webapp.address </name>
????????????????<value> Hadoop01 :19888 </value>
????????</property>
</configuration>
? ? ?8.5配置yarn-site.xml
[root@ Hadoop01 hadoop]# vi yarn-site.xml
<configuration>
????????<!-- 指定 yarn shuffle 技术 -->
????????<property>
????????????????<name> yarn.nodemanager.aux-services </name>
????????????????<value> mapreduce_shuffle </value>
????????</property>
????????<!-- 指定 resourcemanager 的主机名 -->
????????<property>
????????????????<name> yarn.resourcemanager.hostname </name>
????????????????<value> Hadoop01 </value>
????????</property>
????????<!--下?的可选 -->
????????<!--指定 shuffle 对应的类 -->
?????????<property>
????????????????<name> yarn.nodemanager.aux-services.mapreduce_shuffle.class </name>
????????????????<value> org.apache.hadoop.mapred.ShuffleHandler </value>
????????</property>
????????<!--配置 resourcemanager 的内部通讯地址 -->
????????<property>
????????????????<name> yarn.resourcemanager.address </name>
????????????????<value> Hadoop01 :8032 </value>
????????</property>
????????<!--配置 resourcemanager scheduler 的内部通讯地址 -->
????????<property>
? ? ? ? ? ? ? ? <name> yarn.resourcemanager.scheduler.address </name>
????????????????<value> Hadoop01 :8030 </value>
????????</property>
????????<!--配置 resoucemanager 的资源调度的内部通讯地址 -->
????????<property>
????????????????<name> yarn.resourcemanager.resource-tracker.address </name>
????????????????<value> Hadoop01 :8031 </value>
????????</property>
????????<!--配置 resourcemanager 的管理员的内部通讯地址 -->
????????<property>
????????????????<name> yarn.resourcemanager.admin.address </name>
????????????????<value> Hadoop01 :8033 </value>
????????</property>
????????<!--配置 resourcemanager web ui 的监控?? -->
????????<property>
????????????????<name> yarn.resourcemanager.webapp.address </name>
????????????????<value> Hadoop01 :8088 </value>
????????</property>
</configuration>
? ? ? ? 8.6配置hadoop-env.sh
[root@ Hadoop01?? hadoop] # vi hadoop-env.sh
.........
# The java implementation to use.
export JAVA_HOME = /usr/local/jdk
.........
? ? ? ?8.7配置slaves?件
# 此?件?于指定 datanode 守护进程所在的机器节点主机名
[root@ Hadoop01?? hadoop] # vi slaves
Hadoop01
Hadoop02
Hadoop03
? ? ? ? 8.8配置yarn-env.sh?件
# 此?件可以不配置,不过,最好还是修改?下 yarn jdk 环境?较好
[root@ Hadoop01? ? hadoop] # vi yarn-env.sh
.........
# some Java parameters
export JAVA_HOME = /usr/local/jdk
if [ " $JAVA_HOME " ! = "" ]; then
#echo "run java in $JAVA_HOME"
JAVA_HOME = $JAVA_HOME
fi
.........

9.配置另外两台机器

?提示:本?法适?于多台虚拟机已经提前搭建出来的场景。
--1. 同步hadoop到slave节点上
[root@Hadoop01~]# cd /usr/local
[root@Hadoop01?? local]# scp -r ./hadoop Hadoop02:/usr/local/
[root@Hadoop01? ?local]# scp -r ./hadoop Hadoop03:/usr/local/
--2. 同步/etc/profile到slave节点上
[root@Hadoop01?? local]# scp /etc/profile Hadoop02:/etc/
[root@Hadoop01?? local]# scp /etc/profile Hadoop03:/etc/
--3. 如果slave节点上的jdk也没有安装,别忘记同步jdk。
--4. 检查是否同步了/etc/hosts?件

10.格式化NameNode

? ? ?10.1? 注意事项(针对搭建过伪分布式的
格式化完成 NameNode 后,会在 core-site.xml 中的配置 hadoop.tmp.dir 的路
径下?成集群相关的?件。如果之前在伪分布式的时候已经格式化完成,并且这个路
径已经?成了,需要先将这个?录?动删除掉,然后再格式化集群,否则会导致集群
启动失败, NameNode DataNode ?法建?连接。
? ? ? ? 10.2Hadoop01机器上运?命令
[root@Hadoop01 ~] # hdfs namenode -format

11.启动集群

1. 启动脚本
-- start-dfs.sh? ? ? ? ? ? ? ? ? ? ? ? ? : ?于启动 hdfs 集群的脚本
-- start-yarn.sh? ? ? ? ? ? ? ? ? ? ? ? : ?于启动 yarn 守护进程
-- start-all.sh? ? ? ? ? ? ? ? ? ? ? ? ? ? : ?于启动 hdfs yarn
2. 关闭脚本
-- stop-dfs.sh? ? ? ? ? ? ? ? ? ? ? ? ? ? : ?于关闭 hdfs 集群的脚本
-- stop-yarn.sh? ? ? ? ? ? ? ? ? ? ? ? ?: ?于关闭 yarn 守护进程
-- stop-all.sh? ? ? ? ? ? ? ? ? ? ? ? ? ? ? : ?于关闭 hdfs yarn
3. 单个守护进程脚本
-- hadoop-daemons.sh? ? ? ? ? ? ? ?: ?于单独启动或关闭 hdfs 的某?个守护进程的脚本
-- hadoop-daemon.sh? ? ? ? ? ? ? ? ? : ?于单独启动或关闭 hdfs 的某?个守护进程的脚本
reg:
hadoop-daemon.sh [start|stop]
[namenode|datanode|secondarynamenode]
-- yarn-daemons.sh? ? ? ? ? ? ? ? ? ? ? ? ? ? ? : ?于单独启动或关闭 hdfs 的某?个守护进程的脚本
-- yarn-daemon.sh? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? : ?于单独启动或关闭 hdfs 的某?个守护进程的脚本
reg:
yarn-daemon.sh [start|stop]
[resourcemanager|nodemanager]
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-04 19:57:25  更:2021-07-04 19:57:46 
 
开发: 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年12日历 -2024/12/22 9:19:15-

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