Hadoop - 01 - 集群搭建

本文详细介绍了一种在虚拟机上搭建Hadoop集群的方法,包括环境配置、SSH信任设置、Hadoop核心配置文件详解等内容。

更新于2018-09-25

上周因为硬盘空间不够,准备迁移Hadoop集群测试虚拟机,结果Master节点误操作,网络被我搞坏了。

死活连接不上去,一气之下,重新装了一个Master机器。

单纯的重新安装Master节点,想继续使用这个集群,是不可取的,需要将整个集群全部卸载,重新配置才行。

各位童鞋,如果本地安装集群,一定要准备充足的硬盘空间。

 

------------------------------以下为原文-----------------------------------

 

之前搭建Hadoop集群花了很长时间,来回浪费了很多时间,记录分享给大家。

自己电脑是Win7的,内存16G(双通道8G),安装了VM虚拟机

在虚拟机上安装了Centos6.8 系统,然后安装了必要的工具,JDK、SSH、tree、unzip之类的工具。

一共准备了三台虚拟机,一台Master,两台slave。

废话不多说,上笔记...

 

这里默认服务器安装完成,JDK,SSH等工具全都安装完毕,下面主要记录配置信息。

机器列表:

IP

角色

192.168.137.160

master

192.168.137.161

slave

192.168.137.162

slave

 

 

Host配置

host配置不多说,多台服务器之间连接必须的..

这下面的配置中,全部使用ip地址,不使用主机名

 

SSH信任配置

在master机器下执行

生成密钥

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

保存到authorized_keys中

cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

发送给slave机器的authorized_keys中

cat /root/.ssh/id_rsa.pub | ssh 192.168.137.161 'cat >> .ssh/authorized_keys'

cat /root/.ssh/id_rsa.pub | ssh 192.168.137.162 'cat >> .ssh/authorized_keys'

上面一套执行下来,master --> slave 之间的ssh信任就配置好了

然后slave --> master 之间的反向信任也是这样子。

 

环境变量配置

vim /etc/profile

#HADOOP
export HADOOP_HOME=/home/hadoop/hadoop-2.8.1      #这个是hadoop解压缩后的路径(安装路径)
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME

source /etc/profile

验证,输入

hadoop version

注意:Master机器上配置好了之后,两台slave机器也要配置,反正hadoop安装路径都是一样的...

 

Hadoop配置信息

下面的配置信息,都是使用ip配置的,没有使用主机名

我这里用hadoop-2.8.1.tar.gz举例子

我的安装路径:/home/hadoop/hadoop-2.8.1

配置文件都在etc下面:/home/hadoop/hadoop-2.8.1/etc/hadoop

----------------------------------------------------------------------------------------------------

hadoop-env.sh

# The java implementation to use.
export JAVA_HOME=/home/tools/jdk/jdk1.8.0_40

yarn-env.sh

 

# some Java parameters
export JAVA_HOME=/home/tools/jdk/jdk1.8.0_40

slaves

 

192.168.137.160
192.168.137.161
192.168.137.162

这里将master和slave机器的ip全部配置上去

core-site.xml

<configuration>

	<!-- 指定hdfs的nameservice为ns1 -->
	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://192.168.137.160:9000</value>
	</property>

	<!-- Size of read/write buffer used in SequenceFiles. -->
	<property>
		<name>io.file.buffer.size</name>
		<value>131072</value>
	</property>

	<!-- 指定hadoop临时目录,自行创建 -->
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/home/hadoop/hadoop-2.8.1/tmp</value>
	</property>

</configuration>

hdfs-site.xm

<configuration>

	<property>
		<name>dfs.namenode.secondary.http-address</name>
		<value>192.168.137.160:50090</value>
	</property>

	<property>
		<name>dfs.replication</name>
		<value>3</value>
	</property>

	<property>
		<name>dfs.namenode.name.dir</name>
		<value>file:/home/hadoop/hadoop-2.8.1/hdfs/namenode/dfs/name</value>
	</property>

	<property>
		<name>dfs.datanode.data.dir</name>
		<value>file:/home/hadoop/hadoop-2.8.1/hdfs/datanode/dfs/data</value>
	</property>

	<property>
		<name>dfs.webhdfs.enabled</name>
		<value>true</value>
	</property>

</configuration>

mapred-site.xml

原目录下没有这个xml文件,我们复制一个

cp mapred-site.xml.template mapred-site.xml

<configuration>

	<property>
	  <name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>

	<property>
		<name>mapreduce.jobhistory.address</name>
		<value>192.168.137.160:10020</value>
	</property>

	<property>
		<name>mapreduce.jobhistory.webapp.address</name>
		<value>192.168.137.160:19888</value>
	</property>

</configuration>

yarn-site.xml

<configuration>

	<!-- Site specific YARN configuration properties -->

	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>

	<property>
		<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
		<value>org.apache.hadoop.mapred.ShuffleHandler</value>
	</property>

	<property>
	   <name>yarn.resourcemanager.address</name>
	   <value>192.168.137.160:8032</value>
	</property>

	<property>
	   <name>yarn.resourcemanager.scheduler.address</name>
	   <value>192.168.137.160:8030</value>
	</property>

	<property>
	<name>yarn.resourcemanager.resource-tracker.address</name>
	 <value>192.168.137.160:8031</value>
	</property>

	<property>
	  <name>yarn.resourcemanager.admin.address</name>
	   <value>192.168.137.160:8033</value>
	</property>

	<property>
	   <name>yarn.resourcemanager.webapp.address</name>
	   <value>192.168.137.160:8088</value>
	</property>

</configuration>

上面的配置好了之后,将/home/hadoop/hadoop-2.8.1 整个目录发送到slave机器的固定目录下

(建议master 和 slave hadoop安装的目录保持一致,方便配置)

scp -r hadoop-2.8.1 root@192.168.137.161:/home/hadoop/

scp -r hadoop-2.8.1 root@192.168.137.162:/home/hadoop/

 

hadoop启动

(配置环境变量之后,可以直接使用格式化命令)

hdfs namenode -format

start-all.sh

stop-all.sh

sh mr-jobhistory-daemon.sh start historyserver

hadoop job -list

 

验证

master节点

slave节点

http://192.168.137.160:8088/cluster/nodes

http://192.168.137.160:50070/dfshealth.html

 

参考资料:

http://www.thebigdata.cn/Hadoop/33037.html

基于遗传算法的新的异构分布式系统任务调度算法研究(Matlab代码实现)内容概要:本文档围绕基于遗传算法的异构分布式系统任务调度算法展开研究,重点介绍了一种结合遗传算法的新颖优化方法,并通过Matlab代码实现验证其在复杂调度问题中的有效性。文中还涵盖了多种智能优化算法在生产调度、经济调度、车间调度、无人机路径规划、微电网优化等领域的应用案例,展示了从理论建模到仿真实现的完整流程。此外,文档系统梳理了智能优化、机器学习、路径规划、电力系统管理等多个科研方向的技术体系与实际应用场景,强调“借力”工具与创新思维在科研中的重要性。; 适合人群:具备一定Matlab编程基础,从事智能优化、自动化、电力系统、控制工程等相关领域研究的研究生及科研人员,尤其适合正在开展调度优化、路径规划或算法改进类课题的研究者; 使用场景及目标:①学习遗传算法及其他智能优化算法(如粒子群、蜣螂优化、NSGA等)在任务调度中的设计与实现;②掌握Matlab/Simulink在科研仿真中的综合应用;③获取多领域(如微电网、无人机、车间调度)的算法复现与创新思路; 阅读建议:建议按目录顺序系统浏览,重点关注算法原理与代码实现的对应关系,结合提供的网盘资源下载完整代码进行调试与复现,同时注重从已有案例中提炼可迁移的科研方法与创新路径。
【微电网】【创新点】基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度研究(Matlab代码实现)内容概要:本文提出了一种基于非支配排序的蜣螂优化算法(NSDBO),用于求解微电网多目标优化调度问题。该方法结合非支配排序机制,提升了传统蜣螂优化算法在处理多目标问题时的收敛性和分布性,有效解决了微电网调度中经济成本、碳排放、能源利用率等多个相互冲突目标的优化难题。研究构建了包含风、光、储能等多种分布式能源的微电网模型,并通过Matlab代码实现算法仿真,验证了NSDBO在寻找帕累托最优解集方面的优越性能,相较于其他多目标优化算法表现出更强的搜索能力和稳定性。; 适合人群:具备一定电力系统或优化算法基础,从事新能源、微电网、智能优化等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于微电网能量管理系统的多目标优化调度设计;②作为新型智能优化算法的研究与改进基础,用于解决复杂的多目标工程优化问题;③帮助理解非支配排序机制在进化算法中的集成方法及其在实际系统中的仿真实现。; 阅读建议:建议读者结合Matlab代码深入理解算法实现细节,重点关注非支配排序、拥挤度计算和蜣螂行为模拟的结合方式,并可通过替换目标函数或系统参数进行扩展实验,以掌握算法的适应性与调参技巧。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值