搭建Hadoop的全分布模式与Hadoop的体系结构原理

第二章
一、搭建Hadoop的全分布模式
1、三台机器:bigdata12 bigdata13 bigdata14
2、每台机器准备工作:安装JDK、关闭防火墙、设置主机名
systemctl stop firewalld.service
systemctl disable firewalld.service

	   设置主机名  vi /etc/hosts
		192.168.157.12 bigdata12
		192.168.157.13 bigdata13
		192.168.157.14 bigdata14
		
3、配置免密码登录
	(1)在每台机器上产生公钥和私钥
		   ssh-keygen -t rsa
		   
	(2)需要将每台机器的公钥复制给其他机器(下面的三句话,需要在每台机器上执行)
		  ssh-copy-id -i .ssh/id_rsa.pub root@bigdata12
		  ssh-copy-id -i .ssh/id_rsa.pub root@bigdata13
		  ssh-copy-id -i .ssh/id_rsa.pub root@bigdata14
		  
4、保证每台机器的时间同步的
5、安装Hadoop的全分布环境(在主节点bigdata12上安装)
	(1)解压设置环境变量
	(2)修改配置文件
         hadoop-env.sh 
	            26行  export JAVA_HOME=/root/training/jdk1.8.0_144
         hdfs-site.xml
			<!--数据块的冗余度,默认是3-->
			<property>
			  <name>dfs.replication</name>
			  <value>2</value>
			</property>

			<!--是否开启HDFS的权限检查,默认:true-->
			<property>
			  <name>dfs.permissions</name>
			  <value>false</value>
			</property>

			
		core-site.xml
			<!--NameNode的地址-->
			<property>
			  <name>fs.defaultFS</name>
			  <value>hdfs://bigdata12:9000</value>
			</property>	

			<!--HDFS数据保存的目录,默认是Linux的tmp目录-->
			<property>
			  <name>hadoop.tmp.dir</name>
			  <value>/root/training/hadoop-2.7.3/tmp</value>
			</property>	
			
		mapred-site.xml
			<!--MR程序运行的容器是Yarn-->
			<property>
			  <name>mapreduce.framework.name</name>
			  <value>yarn</value>
			</property>		

		yarn-site.xml
			<!--ResourceManager的地址-->
			<property>
			  <name>yarn.resourcemanager.hostname</name>
			  <value>bigdata12</value>
			</property>		

			<!--NodeManager运行MR任务的方式-->
			<property>
			  <name>yarn.nodemanager.aux-services</name>
			  <value>mapreduce_shuffle</value>
			</property>	
			
		slaves: 配置的是所有的从节点
				bigdata13
				bigdata14
		    
	(3)格式化NameNode: hdfs namenode -format	
	
	
     6、将配置好的目录复制到bigdata13和bigdata14上
         scp -r hadoop-2.7.3/ root@bigdata13:/root/training
	 scp -r hadoop-2.7.3/ root@bigdata14:/root/training

7、启动Hadoop集群(在主节点上): start-all.sh , 停止Hadoop集群:  stop-all.sh
								 
8、验证 
	(*)命令行:hdfs dfsadmin -report
	(*)网页:HDFS:http://192.168.157.12:50070/
	           Yarn:http://192.168.157.12:8088

第四章:Hadoop的体系结构(非常重要):原理、结构、运行机制
一、HDFS的体系结构和运行原理
1、主节点:NameNode
)职责:管理HDFS
接收客户端的请求:上传数据、下载数据
管理和维护日志(edits文件)和元信息(指的是:数据块的位置信息:fsimage文件)
)HDFS的日志:edits文件
举例: 创建目录 ---> 产生日志
hdfs dfs -mkdir /mydemo1
查找edits文件:find . -name edits*

			   (1) edits_inprogress_0000000000000000105是二进制文件
			   (2)HDFS提供一个工具:edits viewer 日志查看器,转换成一个XML文件
			          hdfs oev -i edits_inprogress_0000000000000000105 -o ~/a.xml
					  <RECORD>
						<OPCODE>OP_MKDIR</OPCODE>
						<DATA>
						  <TXID>107</TXID>
						  <LENGTH>0</LENGTH>
						  <INODEID>16416</INODEID>
						  <PATH>/mydemo1</PATH>
						  <TIMESTAMP>1512565581211</TIMESTAMP>
						  <PERMISSION_STATUS>
							<USERNAME>root</USERNAME>
							<GROUPNAME>supergroup</GROUPNAME>
							<MODE>493</MODE>
						  </PERMISSION_STATUS>
						</DATA>
					  </RECORD>		
	
	(*)HDFS的元信息:fsimage文件:记录数据块的位置信息、冗余信息等等
		 查找fsimage文件:find . -name fsimage*
		 也是二进制的
		 HDFS也提供了一个工具:image viewer ,把fsimage文件转成文本、XML的文件

2、从节点:DataNode
	(*)按数据块保存数据:1.x:64M   2.x:128M
	(*)数据块在操作系统的位置:
	     find . -name blk*
	    /root/training/hadoop-2.7.3/tmp/dfs/data/current/BP-156326068-192.168.157.11-1512395988927/current/finalized/subdir0/subdir0
         
	(*)设置数据块冗余度的基本原则
		  一般,冗余度跟数据节点的个数一样,最大不要超过3

3、第二名称节点:SecondaryNameNode,默认就跟NameNode在一起
	(*)职责:定期进行日志信息的合并,edits ---> fsimage中
	(*)掌握日志合并过程(重要)

二、Yarn的体系结构和运行原理:运行MapReduce的容器
cd /root/training/hadoop-2.7.3/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /input/data.txt /output/wc1206

1、主节点:ResourceManager
	职责:(*)接收任务请求
	          (*)资源的分配
		  (*)任务分配

2、从节点:NodeManager
	职责:(*)从ResourceManager获取任务和资源
	           (*)执行

3、调度MR任务的过程
4、资源分配方式
	(1)FIFO Scheduler:先来先得
	(2)Capacity Scheduler:容器管理
	(3)Fair Scheduler:公平调度管理 ,前提:假设任务具有相同优先级,平均分配资源

三、HBase的体系结构和运行原理
HBase是基于HDFS之上的NoSQL数据库
1、主节点:HMaster
2、从节点:RegionServer

原文地址:https://www.cnblogs.com/notes-study/p/8435582.html