运维开发网

hadoop安装部署的三种模式及安装步骤

运维开发网 https://www.qedev.com 2020-03-09 16:14 出处:网络
hadoop安装部署的三种模式: 单机模式(本地模式):hadoop的默认配置模式,此时: 1)hadoop使用本地文件系统而非分布式文件系统(HDFS)。 2)不会启动任何hadoop守护进程,map任务和reduce任务作为同一个进程的不同部分来执行。 3)仅用于开发或调试MapReduce应用程序。 4)当首次解压hadoop的源码包时,默认选择了最低的配置。这时,三个xm
hadoop安装部署的三种模式:
	单机模式(本地模式):hadoop的默认配置模式,此时:
		1)hadoop使用本地文件系统而非分布式文件系统(HDFS)。
		2)不会启动任何hadoop守护进程,map任务和reduce任务作为同一个进程的不同部分来执行。
		3)仅用于开发或调试MapReduce应用程序。
		4)当首次解压hadoop的源码包时,默认选择了最低的配置。这时,三个xml文件均为空,当配置文件为空时,hadoop会完全运行在本地。

	伪分布式模式:
		1)所有的进程都运行在同一台机器上。
		2)使用分布式文件系统,每个hadoop守护进程都是一个独立的进程。
		3)每个job都是由JobTracker服务管理的独立的进程。
		4)集群中只有一个节点,故HDFS的块复制将限制为单个副本。
		5)secondary-master和slaves也都将运行于本地主机。
		6)程序的执行逻辑和分布式模式下的执行逻辑一样,因此,常用于测试。
		7)该模式在本地模式的基础上添加了代码的调试功能,允许你检查内存的使用情况、HDFS输入输出、其它的守护进程的交互。
	
	分布式模式:运行于多台机器上的真实环境。

	
hadoop的安装步骤:
	1)添加新用户和修改主机名
		添加新用户(hadoop):
			useradd hadoop
		修改用户的密码:
			password hadoop
		修改主机名:
			vi /etc/sysconfig/network
			# 将HOSTNAME修改为master
		绑定ip地址和主机名:
			vi /etc/hosts
			ping master
			# 在文件末尾加上:ip地址 主机名
			# 说明:这样节点之间就可以通过主机名相互访问了。
			
	2)配置静态IP地址
		说明:由于hadoop集群在启动时需要通过固定的主机名或ip地址启动,故必须对虚拟机配置静态ip地址。
		方式一:
			查看ip:
				ifconfig
			右击桌面右上角的两个电脑的标志,选择:Edit Connections,设置IPv4 Settings,Method选择Manual,然后手动添加一个静态ip。
				例如:Address:192.168.47.180、Netmask:255.255.255.0、Gateway:192.168.47.1
		方式二:
			vi /etc/sysconfig/network-scripts/ifcfg-eth0
			# 将文件修改为:
				DEVICE="eth0"
				BOOTPROTO="static"
				NM_CONTROLLED="yes"
				ONBOOT="yes"
				#TYPE="Ethernet"
				# 下面为静态ip地址
				IPADDR=192.168.47.180
				NETMASK=255.255.255.0
				GATEWAY=192.168.47.1
				DNS1=8.8.8.8
		
	3)配置SSH免密码连接
		1>关闭防火墙(在配置SSH无密码连接前,先关闭防火墙):
			service iptables stop
			service iptables status
			# 永久关闭防火墙:
				chkconfig iptables off
				chkconfig --list | grep iptables
		2>检查SSH是否安装
			安装SSH协议:
				yum install ssh
				yum install rsync
				# rsync是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。
			启动SSH服务命令:
				service sshd restart
			检查SSH是否已经安装成功:
				rpm -qa | grep openssh
				# 如果出现下面的信息:openssh-askpass-5.3pl-81.e16x86_64 ...
				rpm -qa | grep rsync
				# 如果出现:rsync-3.0.6-9.e16.x86_64
				说明SSH安装成功。
		3>生成SSH公钥(以hadoop用户执行)
			在主节点执行:
				ssh-keygen -t rsa
				# 遇到提示输入密码回车即可,最后显示的图形是公钥的指纹加密。
				# -t 表示指定生成的密钥类型
			生成公钥后,需要将公钥发至本机的authorized_keys的列表,执行
				ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@master
			将公钥发至从节点的authorized_keys的列表,执行
				ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@slave1
			注意:伪分布式模式也需要配置SSH无密码本机连接本机。
			补充:
				# ssh-copy-id命令可以把本地主机的公钥复制到远程主机的authorized_keys文件上。
				# ssh-copy-id命令也会给远程主机的用户主目录(home)、~/.ssh以及~/.ssh/authorized_keys设置合适的权限。
				# -i 表示指定公钥文件
		4>验证(以hadoop用户执行):
			对于伪分布式模式:在主节点执行:
				ssh master
				# 说明:如果没有出现输入密码的提示,则安装成功
			对于分布式模式,在主节点执行:
				ssh slave1
				# 说明:如果没有出现输入密码的提示,则安装成功
			如果没有成功,可能是/home/hadoop/.ssh文件夹的权限问题,以hadoop用户执行:
				chmod 700 /home/hadoop/.ssh
				chmod 644 /home/hadoop/.ssh/authorized_keys
		说明:hadoop仅仅是在启动和停止的时候需要主节点通过SSH协议将从节点上面的进程启动或停止。
		
	4)安装JDK
		1>查询是否已经安装了jdk:
			rpm -qa | grep jdk
		2>如果安装了Open JDK,则卸载掉:
			yum -y remove 刚刚查出来的Openjdk的名
		3>把jdk-6u45-Linux-x64.bin下载到/opt/softwares中,执行命令
			chmod u+x jdk-6u45-Linux-x64.bin
			./jdk-6u45-Linux-x64.bin
		4>把生成的jdk1.6.0_45移动到/opt/modules/jdk下
			mv jdk1.6.0_45 /opt/modules/jdk
		5>配置环境变量:
			vi /etc/profile
				export JAVA_HOME=/opt/modules/jdk/jdk1.6.0_45
				export PATH=$PATH:$JAVA_HOME/bin
			source /etc/profile
			
	5)配置hadoop
		伪分布式模式:
			1>解压文件(以hadoop用户所在的节点执行),在/opt/modules/hadoop下执行:
				tar -zxvf hadoop-0.20.2-cdh3u6.tar.gz
			2>修改配置文件:
			说明:hadoop的配置文件都在/opt/modules/hadoop/hadoop-0.20.2-cdh3u6/conf下:
				hadoop-env.sh:是一个Bash脚本文件,记录hadoop相关的环境变量
				core-site.xml:hadoop core的配置项,例如:HDFS和MapReduce常用的I/O设置等。
				hdfs-site.xml:HDFS守护进程的配置项,包括NameNode、Secondary NameNode、DataNode等
				mapred-site.xml:MapReduce守护进程的配置项。
				masters:运行Secondary NameNode的机器列表(文本格式)
				slaves:运行DataNode和TaskTracker的机器列表(文本格式)
				hadoop-metrics.properties:控制metrics在hadoop上如何发布的属性
				log4j.properties:系统日志、NameNode审计日志、TaskTracker子进程的任务日志的属性。
			
				修改hadoop-env.sh:在hadoop-env.sh末尾追加环境变量。
					export JAVA_HOME=/opt/modules/jdk/jdk1.6.0_45
					export HADOOP_HOME=/opt/modules/hadoop/hadoop-0.20.2-cdh3u6
				修改core-site.xml
					<?xml version="1.0"?>
					<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
					<configuration>
						<!-- 设置提供HDFS服务的主机名和端口号,同时也指明了NameNode所运行的节点 -->
						<property>
							<name>fs.default.name</name>
							<value>hdfs://master:9000</value>
						</property>
					</configuration>
				修改hdfs-site.xml:
					<?xml version="1.0"?>
					<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
					<configuration>
						<property>
							<!-- 设置HDFS中文件的副本数 -->
							<name>dfs.replication</name>
							<value>3</value>
						</property>
						<property>
							<!-- 设置NameNode的元数据存放在本地文件系统中的路径 -->
							<name>dfs.name.dir</name>
							<value>/opt/hdfs/name</value>
						</property>
						<property>
							<!-- 设置DataNode存放数据的本地文件系统路径 -->
							<name>dfs.data.dir</name>
							<value>/opt/hdfs/data</value>
						</property>
					</configuration>
				修改mapred-site.xml:
					<?xml version="1.0"?>
					<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
					<configuration>
						<property>
							<!-- 设置提供MapReduce服务的主机和端口号,同时也指明了JobTracker所运行的节点  -->
							<name>mapred.job.tracker</name>
							<value>master:9001</value>
						</property>
					</configuration>
				修改slaves文件:
					master
					说明:指明了同时运行DataNode、TaskTracker进程的主机名。
				修改masters文件:
					master
					说明:指明了运行Secondary NameNode节点的主机名。
			3>配置环境变量:
				vi /etc/profile
					export HADOOP_HOME=/opt/modules/hadoop/hadoop-0.20.2-cdh3u6
					export PATH=$PATH:$HADOOP_HOME/bin
				source /etc/profile
			这样一来,我们就把NameNode、DataNode、JobTracker、TaskTracker和Secondary NameNode都配置在主节点运行了。
		
		完全分布式:
			在伪分布式的基础上,只需要将slaves文件修改为下面这样即可:
				slave1
				slave2
				...	
			这样,运行DataNode和TaskTracker的节点就变为slave1、slave2...,然后利用scp命令讲安装文件夹分发到从节点的相同路径下:
				scp -r /opt/hadoop-0.20.2-cdh3u6 hadoop@slave1:/opt
				scp -r /opt/hadoop-0.20.2-cdh3u6 hadoop@slave2:/opt
				...
			
	6)格式化HDFS
		hadoop namenode -format
		# 按照提示输入Y,确定格式化
		# 说明:在第一次启动hadoop前,必须先将HDFS格式化。

	7)启动hadoop
		chmod +x -R /opt/modules/hadoop/hadoop-0.20.2-cdh3u6/bin
		# 所有节点都需要执行
		./opt/modules/hadoop/hadoop-0.20.2-cdh3u6/bin/start-all.sh
		# 主节点执行
		jps
		# 查看Java相关的进程。如果是伪分布式模式:主节点会出现NameNode、DataNode、JobTracker、TaskTracker、Secondary NameNode
	
	
	
	
	
	
0

精彩评论

暂无评论...
验证码 换一张
取 消