博客 【Hadoop】下载安装及伪分布式集群搭建教程

【Hadoop】下载安装及伪分布式集群搭建教程

   数栈君   发表于 2024-04-15 18:06  49  0

1.概述
hadoop有三种安装模式

单机模式,只在一台机器上运行,存储用的本地文件系统而不是HDFS。

伪分布式模式,存储采用HDFS,名称节点和数据节点在同一台机器上。

分布式模式,标准的分布式集群。

做实验或者学习阶段选择伪分布式就好,本文将详细讲解在Linux搭建起一个伪分布式的hadoop集群。

2.环境准备
1.安装JDK

略,这一步应该就不用多赘述了吧,作者用的Oracle版的JDK8

2.配置ssh免密登录

由于名称节点要通过ssh来拉起数据节点的守护进程(用来上报信息),所以要先配置一下节点间的ssh免密登录,不然的话集群根本就起不来。

Ubuntu默认安装了ssh client,除此之外还要安装ssh server

apt-get install openssh-server

cd ~/.ssh

ssh-keygen -t rsa



3.hadoop安装
3.1.下载安装配置
下载地址:

Index of /dist/hadoop/common

版本:

3.1.3

下载后直接解压即可。

用version参数看看解压是否正确:



测试一下单机模式是否能正常运行:

测试可以使用自带的demo来看运行是否正常,通过一个正则表达式去匹配指定格式的字符串,然后去查看output中存放的统计结果。

mkdir ./input
cp /etc/*.xml ./input
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep ./input/ ./output 'dfs[a-z.]+'
cat ./output/*
搭建伪分布式集群:

hadoop的配置文件所在路径:

<安装路径>/etc/hadoop

core-site.xml:

<configuration
<property>
<name>hadoop.tmp.version</name>
<value>file:/usr/local/hadoop/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml:

<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
配置好配置文件后,下一步是什么?当然是格式化namenode了,这一步会根据配置文件去初始化好namenode节点:

./bin/hdfs namenode -format
格式化成功后的提示:



配置环境:

按道理说配置完配置文件后直接启动即可了对吧,但是在hadoop 3.1.3这个版本有个hadoop的环境配置文件etc/hadoop/hadoop-env.sh。这个配置里面要指定JAVA_HOME的路径已经可以启动Hadoop的用户,不然的话启动会报用户没有启动权限或者JAVA_HOME找不到。这是一个小坑以下是作者的配置:

JAVA_HOME=/jdk/jdk8/

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
启动:

./sbin/start-dfs.sh
启动完成后:



3.2.伪分布式集群
HDFS做了资源隔离,要使用HDFS的前提是先在HDFS中为用户创建用户目录。

./bin/hdfs dfs -mkdir -p /user/root
在/user/root/下创建一个input目录:

./bin/hdfs dfs -mkdir input
把测试数据拷贝过去:

./bin/hdfs dfs -put ./etc/hadoop/*.xml input
这不是报错,不用管:



跑计算任务的demo:

跑demo的jar包的时候可以指定输入输出路径和一个正则表达式来指定匹配规则,下面的正则表达式会匹配dfs开头后面是a-z的字符的所有单词。

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep input output 'dfs[a-z.]+'
查看结果:



3.3.注意事项
下次再进行测试的时候一定要将output文件夹删掉,不然冲突会报错。

4.Hadoop集群的组成
伪分布式的hadoop集群其实就两大核心组件构成:

HDFS

MapReduce

回顾一下上面启动hadoop后我们用JDK的JPS命令看到的JAVA进程:



可以看到一共有三个东西:

secondNameNode

DataNode

NameNode

这三个东西是属于HDFS的,dataNode是具体存放数据的节点,nameNode用来记录所有dataNode的信息,secondNameNode是nameNode的备份:



以上是节点在HDFS维度扮演的角色,除此之外节点还在MapReduce维度扮演有角色,MapReduce在跑一个大的任务的时候会把节点分为两类:

jobTracker,负责总的来协调位于不同节点的小任务,将多个小任务的计算结果汇成最终的结果。


免责申明:
本文系转载,版权归原作者所有,如若侵权请联系我们进行删除!


《数据治理行业实践白皮书》下载地址:https://fs80.cn/4w2atu
《数栈V6.0产品白皮书》下载地址:https://fs80.cn/cw0iw1
想了解或咨询更多有关袋鼠云大数据产品、行业解决方案、客户案例的朋友,浏览袋鼠云官网:https://www.dtstack.com/?src=bbs
同时,欢迎对大数据开源项目有兴趣的同学加入「袋鼠云开源框架钉钉技术群」,交流最新开源技术信息,群号码:30537511,项目地址:https://github.com/DTStack

0条评论
社区公告
  • 大数据领域最专业的产品&技术交流社区,专注于探讨与分享大数据领域有趣又火热的信息,专业又专注的数据人园地

最新活动更多
微信扫码获取数字化转型资料
钉钉扫码加入技术交流群