完全分布式部署Hadoop

本文详细介绍了如何在三台虚拟机上进行Hadoop的完全分布式部署,包括虚拟机准备、主机名设置、SSH无密码登录、集群时间同步、配置Hadoop集群、使用scp指令以及启动和测试集群的步骤。内容涵盖了网络配置、时间服务同步、安全认证和集群管理等关键环节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

完全分布式部署Hadoop

分析:
1) 准备3台客户机(关闭防火墙、静态ip、主机名称)
a) 配置主机名及主机名与ip的映射
vi /etc/sysconfig/network(修改主机名)
vi /etc/hosts(配置主机名与ip的映射关系)

2)安装jdk(rpm)
3)配置环境变量
	vi ~/.bash_profile
	加入俩行:
	export JAVA_HOME=/usr/java/default
	PATH=$PATH:$JAVA_HOME/bin

4)安装ssh,配置三台主机免密钥登录

5)集群时间同步
​ 6)配置hadoop集群
​ 7) scp复制
​ 8)启动测试集群

1. 虚拟机准备
2. 主机名设置
3. SSH无密码登录

(1)进入到我的home目录
​ cd ~/.ssh
(2)生成公钥和私钥:
ssh-keygen -t rsa
然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
(3)将公钥拷贝到要免密登录的目标机器上
ssh-copy-id 192.168.1.102
.ssh文件夹下的文件功能解释
​ (1)~/.ssh/known_hosts :记录ssh访问过计算机的公钥(public key),即是访问的其他主机的公钥
​ (2)id_rsa :生成的私钥
​ (3)id_rsa.pub :生成的公钥
​ (4)authorized_keys :存放授权过得无秘登录服务器公钥 即是其他主机发过来的公钥

4、集群时间同步

时间同步的方式:找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,比如,每日十分钟,同步一次时间。
配置时间同步:
1)时间服务器配置
(1)检查ntp是否安装
[root@hadoop102 桌面]# rpm -qa|grep ntp
ntp-4.2.6p5-10.el6.centos.x86_64
fontpackages-filesystem-1.41-1.1.el6.noarch
ntpdate-4.2.6p5-10.el6.centos.x86_64
(2)修改ntp配置文件
vi /etc/ntp.conf
修改内容如下
a)修改1
#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap为
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
​ b)修改2
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst为
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
​ c)添加3
server 127.127.1.0
fudge 127.127.1.0 stratum 10
3)修改/etc/sysconfig/ntpd 文件
vim /etc/sysconfig/ntpd
增加内容如下
SYNC_HWCLOCK=yes
​ 4)重新启动ntpd
[root@hadoop102 桌面]# service ntpd status
ntpd 已停
[root@hadoop102 桌面]# service ntpd start
正在启动 ntpd: [确定]
​ 5)执行:
​ chkconfig ntpd on
2)其他机器配置(必须root用户)
​ (1)在其他机器配置10分钟与时间服务器同步一次
​ [root@hadoop103 hadoop-2.7.2]# crontab -e
​ 编写脚本
​ */10 * * * * /usr/sbin/ntpdate hadoop-001
​ (2)修改任意机器时间
​ date -s “2015-9-11”
​ (3)十分钟后查看机器是否与时间服务器同步
​ date

5、配置集群

(1)core-site.xml

 <!-- 指定HDFS中NameNode的地址 -->
	<property>
		<name>fs.defaultFS</name>
        <value>hdfs://hadoop-001:9000</value>
	</property>
	<!-- 指定hadoop运行时产生文件的存储目录 -->
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/home/hadoop/tmp</value>
	</property>

(2)Hdfs
hadoop-env.sh

export JAVA_HOME=/usr/java/default
 

hdfs-site.xml

<configuration>	
	<property>
		<name>dfs.replication</name>
		<value>3</value>
	</property>
	<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop-003:50090</value>
    </property>
</configuration>

slaves

Hadoop-001
Hadoop-002
Hadoop-003

(3)yarn

yarn-env.sh

export JAVA_HOME=/usr/java/default   

​ yarn-site.xml

<configuration>   
    <!-- Site specific YARN configuration properties   -->   
    <!-- reducer获取数据的方式 -->         
    <property>             
        <name>yarn.nodemanager.aux-services</name>             			       		           <value>mapreduce_shuffle</value>         
    </property>      
    <!-- 指定YARN的ResourceManager的地址 -->          
    <property>                               	                                               <name>yarn.resourcemanager.hostname</name>                
        <value>Hadoop-002</value>         
    </property>          
</configuration>  

yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname Hadoop-002

(4)mapreduce

mapred-env.sh

export JAVA_HOME=/usr/java/default   

export JAVA_HOME=/usr/java/default


​ mapreduce.framework.name
​ yarn

6、scp指令

1)scp可以实现服务器与服务器之间的数据拷贝。

2)案例实操

(1)将hadoop-001中/home/hadoop/bigdatasoftware/hadoop-2.7.2拷贝到hadoop-002、hadoop-003。输入以下指令

scp -r /home/hadoop/bigdatasoftware/hadoop-2.7.2/ hadoop@hadoop-002:/home/hadoop/bigdatasoftware/

scp -r /home/hadoop/bigdatasoftware/hadoop-2.7.2/ hadoop@hadoop-003:/home/hadoop/bigdatasoftware/

(2)将hadoop-001服务器上的文件拷贝到当前用户下。

scp -r /home/hadoop/.bash_profile hadoop@hadoop-002:/home/hadoop/

scp -r /home/hadoop/.bash_profile hadoop@hadoop-003:/home/hadoop/

(3)创建分别hadoop-001、hadoop-002、hadoop-003,创建此~/tmp目录

​ mkdir ~/tmp

7、集群启动及测试

1)启动集群

​ (0)如果集群是第一次启动,需要格式化namenode

​ [root@hadoop102 hadoop-2.7.2]# bin/hdfs namenode -format

(1)启动HDFS:

[root@hadoop102 hadoop-2.7.2]# sbin/start-dfs.sh

[root@hadoop102 hadoop-2.7.2]# jps

4166 NameNode

4482 Jps

4263 DataNode

[root@hadoop103 桌面]# jps

3218 DataNode

3288 Jps

[root@hadoop104 桌面]# jps

3221 DataNode

3283 SecondaryNameNode

3364 Jps

(2)启动yarn

sbin/start-yarn.sh

注意:Namenode和ResourceManger如果不是同一台机器,不能在NameNode上启动 yarn,应该在ResouceManager所在的机器上启动yarn。

mapreduce.framework.name yarn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值