Linux上搭建Hadoop集群

时间:2021-10-31 13:06:13

本文将为初学者的搭建简单的伪分布式集群,将搭建一台虚拟机,用于学习Hadoop

工具:vm虚拟机,centOS7,jdk-8,Hadoop2.7,xftp,xshell

用户:在虚拟机中创建一个hadoop用户并加入到root组中useradd -m hadoop -G root -s /bin/bash

准备好这些工具,用户,我们将开始搭建hadoop

1.让虚拟机链接同主机:(建议使用nat模式)

因为虚拟机默认就是nat链接,所以我们一路配置虚拟机便可。然后我们使用root用户登陆Linux(我的Linux叫bigdatas)

查看主角ip (ip a)比如我的IP是192.168.1.11.然后我们打开主机(真机不是虚拟机)打开网路编辑

Linux上搭建Hadoop集群

将里面的IP,网口全部改成和bigdatas里面相同的便可,如果在主机联网的情况下,进入bigdatas中 ping www.baidu.com

有返回值,便可修改hosts  vi /etc/ hosts添加如下:

192.168.1.111 bigdatas

2.配置ssh免密码登陆:

ssh-keygen -t rsa 生成公钥和私钥一路回车道yes,完成后便可登陆自己,要想登陆其他机器要

将生产的公钥拷贝给需要登录的目标主机 ssh-copy-id bigdatas

然后便可看道.ssh文件

cd ~
ll .ssh

这时我们便可测试ssh登陆了ssh bigdatas(1.先使用hadoop用户连接 2.连接成功后再次ssh free97zl 无需输入密码登录即测试成功!)

3配置环境

这时我拿xftp把下载好的jdk,hadoop传到bigdatas下hadoop文件夹下,并解压(tar -zxvf 。。。)

切换到hadoop用户,vi ~/.bashrc后

添加如下环境变量

export JAVA_HOME=/home/hadoop/opt/jdk-9.0.1
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/home/hadoop/opt/hadoop-2.9.0
export HADOOP_CONF_DIR=/home/hadoop/opt/hadoop-2.9.0/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

然后按下shift zz进行保存

然后输入source .bashrc让环境变量立刻生效

4配置Hadoop,想进入如下目录下

/home/hadoop/opt/hadoop-2.9.0/etc/hadoop 在/home/hadoop/opt/hadoop-2.9.0下建一个临时目录tmp

输入ll -a后修改如下几个配置文件:

core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdatas:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/opt/hadoop-2.9.0/tmp</value>
</property> fs:指定hadoop文件系统hdfs
dir:指定hadoop数据存放位置
hdfs-site.xml
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>bigdatas:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/opt/hadoop-2.9.0/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/opt/hadoop-2.9.0/tmp/dfs/data</value>
</property> host:port
dfs.replication 默认备份3 mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>free97zl:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>free97zl:19888</value>
</property> slaves(不需要vi slaves)
yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>free97zl</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

5启动hadoop集群

hadoop用户下:
hdfs namenode -format #第一次启动要执行格式化,之后启动不用执行这个
start-dfs.sh

6.

在free97zl 执行 jps
看到如下算成功
[root@bigdatas hadoop]# jps
2880 JobHistoryServer
2457 ResourceManager
2746 NodeManager
2922 Jps
2107 DataNode
2012 NameNode
2300 SecondaryNameNode