Hadoop - 01 - 集群搭建

xiaoxiao2021-02-28  104

更新于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

转载请注明原文地址: https://www.6miu.com/read-61036.html

最新回复(0)