Hadoop-完全分布式

1、环境准备:(所有主机)
	# 使用hadoop2.7.7
	# 准备如下主机,修改/etc/hosts,保证所有主机都可以ping通
	192.168.1.60  nn01			# 角色:namenode、secondarynamenode、resourcemanager
	192.168.1.61  node1			# 角色:datanode、nodemanager
	192.168.1.62  node2			# 角色:datanode、nodemanager
	192.168.1.63  node3			# 角色:datanode、nodemanager
	
	# 禁用selinux、关闭防火墙

	yum -y install java-1.8.0-openjdk-devel	# 安装jdk、jps角色查看工具



2、实现免密登陆:(在nn01上操作)
	# hadoop管理节点(nn01)对所有主机(包括本机)都是使用ssh进行操作的
	# 因此需要对所有主机(包括本机)实现免密登陆
	vim /etc/ssh/ssh_config
	Host *
	        GSSAPIAuthentication yes
	        StrictHostKeyChecking no	# 第一次登陆不需要输入yes
	
	ssh-keygen	#生成秘钥
	for i in 60 61 62 63	
	do  
		ssh-copy-id  192.168.1.$i	# 秘钥发送给所有主机
	done 	
	


3、安装hadoop:(以nn01为例)
# hadoop集群中所有主机配置都一样,只需在一台主机安装配置然后拷贝过去就可以

tar -xf hadoop-2.7.7.tar.gz		# 这里使用的是2.7.7版本的hadoop
mv hadoop-2.7.7 /usr/local/hadoop	
rpm -ql java-1.8.0-openjdk	# 查看jdk安装的目录

vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh	# hadoop运行时的环境变量
export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-2.b14.el7.x86_64/jre"		# 通过rpm -ql 查找到的jdk安装的目录,25行。
export HADOOP_CONF_DIR="/usr/local/hadoop/etc/hadoop"		# hadoop配置文件目录,33行。



4、Hadoop核心配置文件:(以nn01为例)
# 都放在/usr/local/hadoop/etc/hadoop目录下

①、slaves文件:指明了datanode主机
	vim /usr/local/hadoop/etc/hadoop/slaves
	node1
	node2
	node3
	
	
②、core-site.xml文件:
	vim /usr/local/hadoop/etc/hadoop/core-site.xml
	<configuration>
		<!-- 核心配置文件 -->
		<!-- http://hadoop.apache.org/docs/r2.7.7/hadoop-project-dist/hadoop-common/core-default.xml 找对应参数 -->	
		<property>
			<name>fs.defaultFS</name>
			<value>hdfs://nn01:9000</value> <!-- nameNode的ip hdfs://nn01:9000 -->
			<!-- <description> 使用什么样的存储,file:///表示本地存储,配置伪分布式;hdfs://nameNode的ip </description>  -->
		</property>
	
		<property>
			<name>hadoop.tmp.dir</name>
			<value>/var/hadoop</value>	# 这个目录要自己创建
			<!-- <description> hadoop核心数据存储目录,一般是单独的磁盘所挂载的目录 </description>  -->
		</property>
	</configuration>


③、hdfs-site.xml文件:
	vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
	<configuration>
		<!-- HDFS配置文件 -->
		<!-- http://hadoop.apache.org/docs/r2.7.7/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml 找对应参数 -->	
		<property>
			<name>dfs.namenode.http-address</name>
			<value>192.168.1.60:50070</value> <!-- nn01:50070 -->
			<!-- <description> 声明在哪台机器上启动nameNode </description>  -->
		</property>
	
		<property>
			<name>dfs.namenode.secondary.http-address</name>
			<value>nn01:50090</value> <!-- 192.168.1.60:50070 -->
			<!-- <description> 声明在哪台机器上启动secondaryNameNode </description>  -->
		</property>
	
		<property>
			<name>dfs.replication</name>
			<value>3</value>
			<!-- <description> 副本策略,数据存几份,3份中有2份备份数据 </description>  -->
		</property>
	</configuration>


④、mapred-site.xml文件:
	vim /usr/local/hadoop/etc/hadoop/mapred-site.xml
	<configuration>
		<!-- Map-Reduce配置文件 -->
		<!-- http://hadoop.apache.org/docs/r2.7.7/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml 找对应参数 -->	
		<property>
			<name>mapreduce.framework.name</name>
			<value>yarn</value>
			<!-- <description> yarn表示集群管理,local表示本地管理 </description>  -->
		</property>
	</configuration>


⑤、yarn-site.xml文件:
	vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
	<configuration>
		<!-- Map-Reduce配置文件 -->
		<!-- http://hadoop.apache.org/docs/r2.7.7/hadoop-yarn/hadoop-yarn-common/yarn-default.xml 找对应参数 -->	
		<property>
			<name>yarn.resourcemanager.hostname</name>
			<value>nn01</value>
			<!-- <description> resourcemanager节点 </description>  -->
		</property>
	
		<property>
			<name>yarn.nodemanager.aux-services</name>
			<value>mapreduce_shuffle</value> 	<!-- 官方提供的框架 -->
			<!-- <description> nodemanager使用什么计算框架,计算框架的名称,问开发人员所使用的框架是什么 </description>  -->
		</property>
	</configuration>



5、将nn01上配置好的hadoop同步到其他主机
for i in node1 node2 node3
do
	scp -r /usr/local/hadoop $i:/usr/local
done



6、验证:
# 以下操作在nn01上执行:
	cd /usr/local/hadoop
	./bin/hdfs namenode -format		# 格式化namenode
	./sbin/start-dfs.sh				# 启动hdfs集群
	./sbin/start-yarn.sh			# 启动yarn
	(./sbin/start-all.sh)			# 启动所有

# 在nn01使用jps可以查看到 NameNode、ResourceManager、Jps、SecondaryNameNode

# 在所有node节点上使用jps都可以可以查看到 Jps、DataNode、NodeManager

# 在浏览器内访问如下地址:
http://192.168.1.60:50070/          # namenode web页面(nn01)
http://192.168.1.60:50090/        	# secondory namenode web页面(nn01)
http://192.168.1.61:50075/        	# datanode web页面(node1,node2,node3)
http://192.168.1.60:8088/        	# resourcemanager web页面(nn01)
http://192.168.1.61:8042/        	# nodemanager web页面(node1,node2,node3)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值