Hadoop的三种安装模式

Hadoop的三种安装模式

一、本地模式

本地模式的特点:没有HDFS, 只能测试MapRduce (不是运行在Yarn中, 做一个独立的Java程序来运行), 只需配置etc/hadoop/hadoop-env.sh中的JAVA_HOME
运行官方的单词计数例子测试,命令如下

[root@hadoopmaster hadoop-2.6.5]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount input output 
input是文件输入的文件夹,output是结果输出文件夹 
需要注意的是output文件夹不能存在,存在就会报错

二、伪分布模式

伪分布模式的特点:在单机上,模拟一个分布式的环境,具备Hadoop的所有功能,只需要一台机器(主机名为bigdata111)
HDFS:NameNode + DataNode + SecondaryNameNode
Yarn:ResourceManager + NodeManager

1. hadoop-env.sh ,hadoop环境配置文件;

将第25行的JAVA_HOME设置为/root/training/jdk1.8.0_144;

2. hdfs-site.xml,设置数据块的冗余度;

原则上冗余度跟数据节点个数保持一致,最大不要超过3;

<property>	
	<name>dfs.replication</name>
	<value>1</value>
</property>
3. core-site.xml,配置主节点的地址端口和数据块及元信息;
<property>	
	<name>fs.defaultFS</name>
	<!--hdfs://主机名:端口-->
	<value>hdfs://bigdata111:9000</value>
</property>	
<property>	
	<name>hadoop.tmp.dir</name>
	<!--存放数据块和元信息的目录-->
	<value>/root/training/hadoop-2.7.3/tmp</value>
</property>
4. mapred-site.xml(默认没有该文件),配置MR程序运行的容器;
//使用cp mapred-site.xml.template mapred-site.xml生成xml文件
<property>	
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>
5. yarn-site.xml(默认没有该文件),配置Yarn主节点的位置和从节点的工作方式;
<property>	
   <name>yarn.resourcemanager.hostname</name>
   <value>bigdata111</value>
</property>			
<property>	
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value>
</property>
6. 对HDFS的NameNode进行格式化;

进入目录:/root/training/hadoop-2.7.3/tmp
执行命令:hdfs namenode -format

格式化成功的话,日志中出现Storage directory /root/training/hadoop-2.7.3/tmp/dfs/name has been successfully formatted.

7. 配置免密码登录。

在root目录下,执行
生成秘钥对命令ssh-keygen -t rsa
将公钥拷给别人ssh-copy-id -i .ssh/id_rsa.pub root@bigdata111(root@主机名)
输入名ssh bigdata111验证是否可登录bigdata111,退出命令exit

8. 启动;

启动namenode: hadoop-daemon.sh start namenode
启动datanode: hadoop-daemon.sh start datanode
只要配置hadoop根目录的etc/hadoop/slaves文件中加入datanode的主机名就可以使用start-dfs.sh一起启动namenode和datanode
启动HDFS:start-dfs.sh
启动Yarn: start-yarn.sh
统一 启动hdfs和yarn:start-all.sh
统一 关闭hdfs和yarn:stop-all.sh
输入命令jps,查看NameNode,SecondaryNameNode,DataNode,ResourceManager,NodeManager五个线程是否都起来

9. 运行wordcount程序

本地文件data.xml上传的hdfs
hdfs dfs -put data.txt /input/
进入目录root/training/hadoop-2.7.3/share/hadoop/mapreduce
执行hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /input/data.txt /output/day1230/,运行该命令时day1230文件不存在
查看hdfs dfs -cat /output/day1230/part-r-00000
参考 https://blog.csdn.net/baidu_28997655/article/details/81586418

三、全分布模式

全分布模式用于生产,至少需要三台机器,其中一台为为主节点,配置NameNode,SecondaryNameNode,ResourceManager,另外两台配置DataNode,NodeManager

1. 准备工作:

(1) 虚拟机安装三台Linux,配置三台均配置JDK,关闭防火墙命令

		关闭systemctl stop firewalld.service    
		开机不启动systemctl disable firewalled.service

(2) 设置三台机IP和对应的主机名

		vi /etc/hosts
		IP2 bigdata112 (主节点)
		IP3 bigdata113
		IP4 bigdata114

(3) 设置三台机的免密登录

		生成秘钥对  ssh-keygen -t rsa
		拷贝秘钥
		ssh-copy-id -i .ssh/id_rsa.pub root@bigdata112
		ssh-copy-id -i .ssh/id_rsa.pub root@bigdata113
		ssh-copy-id -i .ssh/id_rsa.pub root@bigdata114

(4)保证集群的时间同步

		**三台机器同时输入date -s 2018-12-30**

2. 在主节点上(bigdata112)安装配置hadoop

(1) hadoop-env.sh ,配置hadoop的环境,将第25行的JAVA_HOME设置为/root/training/jdk1.8.0_144;
(2) hdfs-site.xml,设置数据块的冗余度,原则冗余度跟数据节点个数保持一致,最大不要超过3;
<property>	
	<name>dfs.replication</name>
	<value>2</value>
</property>
(3) core-site.xml,配置主节点的地址端口和数据块及元信息;
<property>	
	<name>fs.defaultFS</name>
	<!--hdfs://主机名:端口-->
	<value>hdfs://bigdata112:9000</value>
</property>	
<property>	
	<name>hadoop.tmp.dir</name>
	<!--tmp文件需要新建-->
	<value>/root/training/hadoop-2.7.3/tmp</value>
</property>
(4) mapred-site.xml(默认没有该文件),配置MR程序运行的容器;
//使用cp mapred-site.xml.template mapred-site.xml生成xml文件
<property>	
	<name>mapreduce.framework.name</name>
	<value>yarn</value>
</property>
(5) yarn-site.xml(默认没有该文件),配置Yarn主节点的位置和从节点的工作方式;
<property>	
   <name>yarn.resourcemanager.hostname</name>
   <value>bigdata111</value>
</property>			
<property>	
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value>
</property>
(6) slaves 配置从节点地址
		bigdata113
		bigdata114
(7) 对HDFS的NameNode进行格式化;
		**进入目录:/root/training/hadoop-2.7.3/tmp
		执行命令:hdfs namenode -format**

格式化成功的话,日志中出现Storage directory /root/training/hadoop-2.7.3/tmp/dfs/name has been successfully formatted.

3. bigdata112上安装好的目录复制到从节点上

		scp -r hadoop-2.7.3/ root@bigdata113:/root/training
		scp -r hadoop-2.7.3/ root@bigdata114:/root/training

4. 主节点上启动集群;

(1)start-all.sh
		输入命令jps,

查看NameNode,SecondaryNameNode,DataNode,ResourceManager,NodeManager五个线程是否都起来

(2) 运行wordcount程序

本地文件data.xml上传的hdfs

		**hdfs dfs -put data.txt /input/**
		进入目录**root/training/hadoop-2.7.3/share/hadoop/mapreduce**
		执行hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /input/data.txt /output/day1230/,运行该命令时**day1230文件不存在**

查看hdfs dfs -cat /output/day1230/part-r-00000

    原文作者:ffbc2020
    原文地址: https://blog.csdn.net/fanyun2009/article/details/85373235
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞