CentOS7下搭建Hadoop3.2.0完全分布式集群(亲娘级教程超详细)

Hadoop安装教程

1、准备工作
1.1 安装三台CentOS7虚拟机
hadoop-1是namenode,hadoop-2和hadoop-3都是datanode
使用:ip addr查看并记住三台虚拟机所对应IP

1.2 修改主机名(root 权限 操作三台)
[root@localhost ~]# hostname #查看当前的 hostnmae

localhost

[root@localhost ~]# hostnamectl set-hostname hadoop-1 #永久修改hostname(立即生效)

[root@localhost ~]# hostname # 检查修改

hadoop-1
1
2
3
4
5
6
7
8
9
其余两台以同样方式分别将主机名修改为:hadoop-2、hadoop-3

1.3 修改HOSTS(root权限 操作三台)
修改HOSTS的原因主要有两点:

1.Hadoop 内部机制需要通过主机名对主机进行访问。

2.使用主机名对 Hadoop 集群进行配置,看起来更加一目了然。
1
2
3
在CentOS7中修改HOSTS 操作命令如下:

[root@localhost ~]# vi /etc/hosts

#在文件中添加集群所有主机的IP和主机名的对应关系,IP 与主机名之间使用一个 TAB 键分隔

192.168.80.132 hadoop-1
192.168.80.133 hadoop-2
192.168.80.134 hadoop-3
1
2
3
4
5
6
7
1.4 关闭防火墙(root权限 操作三台)
Centos7 中使用 systemctl 命令来管理服务,命令如下:

[root@localhost ~]# firewall-cmd --state #查看状态
[root@localhost ~]# systemctl disable firewalld # 永久关闭防火墙(重启生效)
[root@localhost ~]# systemctl stop firewalld # 临时关闭防火墙(立即生效)
1
2
3
1.5 同步时间(root权限 操作三台)
CentOS7 网络同步时间命令如下:

yum install ntpdate #安装过程中,需要按提示输入两次Y或yes
ntpdate cn.pool.ntp.org #安装完毕后,执行该语句同步时间
1
2
1.6 配置SSH免密登录(root权限 操作三台)
给三台虚拟机生成密钥
以hadoop-1为例,执行命令,生成空字符串的秘钥(后面要使用公钥),命令是:

ssh-keygen -t rsa #安装过程中需要按四次Enter键
1


将公钥拷贝到要免密登录的目标机器上
在hadoop-1上执行以下命令:

ssh-copy-id hadoop-2
ssh-copy-id hadoop-3
1
2
在hadoop-2上执行以下命令:

ssh-copy-id hadoop-1
ssh-copy-id hadoop-3
1
2
在hadoop-3上执行以下命令:

ssh-copy-id hadoop-1
ssh-copy-id hadoop-2
1
2
测试免密登陆
在hadoop-2服务器执行命令

ssh hadoop-1
1

可以看到在没有输入密码的情况下从服务器hadoop-2成功登录到hadoop-1服务器,此时就可以在hadoop-2服务器操作hadoop-1服务器。三台机器互相ssh一下,第一次登录需要输入yes,之后就不需要了。出现上图表示成功。测试能连接后不要忘记执行 exit 退出登录


2、JDK环境安装(操作三台)
2.1 下载JDK
下载网址:JDK下载网址
选择图中红框版本


2.2 将JDK文件上传到Linux服务器上
这里使用root账号登录,安装到/usr/local/java目录下。上传及新建文件夹推荐使用XShell+Xftp

2.2 执行解压命令
cd /usr/local/java/
tar -zxvf jdk-8u261-linux-x64.tar.gz
1
2
2.3 配置环境变量
vi /etc/profile
1
在末尾加上:

JAVA_HOME=/usr/local/java/jdk1.8.0_261(这里 JAVA_HOME=你自己的jdk路径)
CLASSPATH=.:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
1
2
3
4
然后执行 source /etc/profile 命令使修改的配置文件生效。

2.4 测试
执行命令:

javac或者java -version
1
出现下图代表JDK安装成功


3、Hadoop安装
3.1 Hadoop下载
这里选择的版本是3.2.0
Hadoop3.2.0下载

3.2 将Hadoop文件上传到Linux服务器上
在opt目录下新建一个名为hadoop的目录,并将下载得到的hadoop-3.2.0.tar上载到该目录下

3.2 解压安装
tar -xvf hadoop-3.2.0.tar.gz
1
3.3 配置Hadoop环境变量
vi /etc/profile
1
在末尾加上:

export HADOOP_HOME=/opt/hadoop/hadoop-3.2.0
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
1
2
3
然后执行 source /etc/profile 命令使修改的配置文件生效。

3.4 测试
执行命令:

hadoop version
1
4、Hadoop配置文件修改
4.1 新建几个目录
在/root目录下新建几个目录,以此复制粘贴执行下面的命令:

mkdir /root/hadoop
mkdir /root/hadoop/tmp
mkdir /root/hadoop/var
mkdir /root/hadoop/dfs
mkdir /root/hadoop/dfs/name
mkdir /root/hadoop/dfs/data
1
2
3
4
5
6
4.2 修改etc/hadoop中的一系列配置文件
修改core-site.xm
vi /opt/hadoop/hadoop-3.2.0/etc/hadoop/core-site.xml
1
在节点内加入配置:

<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop-1:9000</value>
</property>
1
2
3
4
5
6
7
8
9
修改hadoop-env.sh
vi /opt/hadoop/hadoop-3.2.0/etc/hadoop/hadoop-env.sh
1
将 export JAVA_HOME=${JAVA_HOME}
修改为: export JAVA_HOME=/usr/local/java/jdk1.8.0_261
说明:修改为自己的JDK路径
1
2
3
修改hdfs-site.xml
vi /opt/hadoop/hadoop-3.2.0/etc/hadoop/hdfs-site.xml
1
在节点内加入配置::

<property>
<name>dfs.name.dir</name>
<value>/root/hadoop/dfs/name</value>
<description>Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently. </description>
</property>

<property>
<name>dfs.data.dir</name>
<value>/root/hadoop/dfs/data</value>
<description>Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks.</description>
</property>

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

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

<property>
<name>dfs.permissions</name>
<value>false</value>
<description>need not permissions</description>
</property>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
新建并且修改mapred-site.xml
vi /opt/hadoop/hadoop-3.2.0/etc/hadoop/mapred-site.xml
1
在节点内加入配置:

<!-- 配置mapReduce在Yarn上运行(默认本地运行) -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
1
2
3
4
5
修改workers文件
vi /opt/hadoop/hadoop-3.2.0/etc/hadoop/workers
1
将里面的localhost删除,添加以下内容:

hadoop-1
hadoop-2
hadoop-3
1
2
3
修改yarn-site.xml文件
vi /opt/hadoop/hadoop-3.2.0/etc/hadoop/yarn-site.xml
1
在节点内加入配置

<property>
<description>指定YARN的老大(ResourceManager)的地址</description>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop-1</value>
</property>

<!-- NodeManager上运行的附属服务。需要配置成mapreduce_shfffle,才可运行MapReduce程序默认值 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

<property>
<discription>每个节点可用内存,单位MB,默认8182MB</discription>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
</property>

<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
配置hadoop-3.2.0/sbin/目录下start-dfs.sh、start-yarn.sh、stop-dfs.sh、stop-yarn.sh文件
在start-dfs.sh、stop-dfs.sh开始第一行加上

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
1
2
3
4
在start-yarn.sh、stop-yarn.sh开始第一行加上

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
1
2
3
配置好后,将 hadoop-1上的 /opt/hadoop/hadoop-3.2.0 文件夹传递复制到从节点
scp -r /opt/hadoop/hadoop-3.2.0 root@hadoop-2:/opt/hadoop/
scp -r /opt/hadoop/hadoop-3.2.0 root@hadoop-3:/opt/hadoop/

scp /etc/profile root@hadoop-2:/etc/ #copy配置文件到各个节点
scp /etc/profile root@hadoop-3:/etc/
1
2
3
4
5
5、启动Hadoop
5.1 格式化namenode
因为hadoop-1是namenode,hadoop-2和hadoop-3都是datanode,所以只需要对hadoop-1进行初始化操作,也就是对hdfs进行格式化。
进入到hadoop-1这台机器/opt/hadoop/hadoop-3.2.0/bin目录:

cd /opt/hadoop/hadoop-3.2.0/bin
1
执行初始化脚本

./hadoop namenode -format
1
5.2 启动Hadoop
从hadoop-1开始,在三台分别运行:

start-all.sh
1
5.2 运行结果
hadoop-1是我们的namenode,该机器的IP是192.168.217.128,在本地电脑访问如下地址:

http://192.168.80.132:9870/

自动跳转到了overview页面

在本地浏览器里访问如下地址:
http://192.168.217.128:8088/
自动跳转到cluster页面


在hadoop-1中输入

jps
1
出现结果如图:


在hadoop-2中输入

jps
1
出现结果如图:

在hadoop-3中输入

jps
1
出现结果如图:

————————————————
版权声明:本文为CSDN博主「only-1-bug」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Toddr/article/details/109181107

 

 

四、Hadoop HDFS 基本操作
# 查看目录
hdfs dfs -ls /
# 创建目录
hdfs dfs -mkdir /hadoop
# 上传文件
hdfs dfs -put /opt/text.txt /hadoop
# 删除目录
hdfs dfs -rm -r /hadoop
1:创建目录;2:创建文件并上传 hdfs

 

查看启动状态

[root@master ~]# netstat -lntp


浏览器查看 HDFS

浏览器 地址栏 录入 http://192.168.11.21:9870/ 说明:192.168.11.21 是我 master 节点的IP地址

 

 

至此,Centos7.x 安装部署 Hadoop 3.x HDFS基础环境(非高可用集群)操作完毕,希望能够对您有所帮助!
————————————————
版权声明:本文为CSDN博主「一花一世界~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/llwy1428/article/details/111144524

CentOS7下搭建Hadoop3.2.0完全分布式集群(亲娘级教程超详细)

上一篇:【LeetCode】136. 只出现一次的数字


下一篇:【LabVIEW】波形图表(Chart)、波形图(Graph)