Hadoop_HDFS_Install
Hadoop的核心组件:
- Common(基础组件)
- HDFS(Hadoop Distributed File System 分布式文件系统)
- MapReduce(分布式运算编程框架)
- YARN(Yet Another Resources N 资源调度与分配)
Linux环境准备:JDK的安装与SSH登录
- Java安装
1
2
3
4
5
6cd /root/software #进入JDK安装包所在目录
ls -l #列出当前文件夹下的所有文件
tar -zxvf jdk*.tar.gz #解压缩jdk的归档压缩包,打包压缩时使用-zcvf参数
echo -e 'export JAVA_HOME=/root/software/jdk1.8.0_221\nexport PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile #将JAVA路径加入环境变量
source /etc/profile #使环境变量生效
java -version - SSH登录
1
2
3
4
5
6sbin/sshd
netstat -tnulp
ssh-keygen
cp .ssh/id_rsa.pub .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
ssh localhost
HDFS伪分布式集群搭建
- HDFS集群:NameNode(Master),DataNode(多个,Slave),SecondaryNameNode(一个)。
- YARN集群:ResourceManger(Master),NodeManger(多个,Slave)。
Hadoop目录结构介绍
1 | cd /root/software |
各目录介绍如下:
- bin:存放HDFS,YARN脚本,是sbin目录下脚本的基础实现。(用的AliCDN,图片已炸)
- etc:存放Hadoop的配置文件与模板信息。(图片已炸)
- include:储存编程库的头文件,使用C++编写。
- lib:定义对外的动态链接库(.so)与静态链接库(.a)。
- libexec:服务对应配置文件所在目录,可配置日志输出与启动参数。
- sbin:存放Hadoop管理脚本,常用于管理各类服务。
- share:/hadoop目录存放模块jar包,/doc目录存放文档。
HDFS集群配置文件
- 只读的default默认配置文件,包括 core-default.xml、hdfs-default.xml、mapred-default.xml 和 yarn-default.xml。
- 可二次编辑的自定义配置文件,存放于etc/hadoop,包括hadoop-env. sh、yarn-env. sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 和 slaves,将会被优先使用。
配置文件 | 功能 |
---|---|
hadoop-env. sh | 配置 Hadoop 运行所需的环境变量 |
yarn-env. sh | 配置 YARN 运行所需的环境变量 |
core-site.xml | Hadoop 核心全局配置文件,可在其它配置文件中引用该文件 |
hdfs-site.xml | HDFS 配置文件,继承 core-site.xml 配置文件 |
mapred-site.xml | MapReduce 配置文件,继承 core-site.xml 配置文件 |
yarn-site.xml | YARN 配置文件,继承 core-site.xml 配置文件 |
slaves | Hadoop 集群所有从节点(DataNode 和 NodeManager)列表 |
需要配置如下文件:
- hadoop-env.sh来运行NameNode、SecondaryNameNode 和 DataNode。
- yarn-env.sh来运行 ResourceManager 和 NodeManager。
- slaves来储存当前集群的从节点列表。
编辑配置文件
配置JAVA的环境变量
1
2cd /root/software/hadoop-2.7.7/etc/hadoop/
echo "export JAVA_HOME=$JAVA_HOME" >> hadoop-env.sh #将JAVA_HOME环境变量写入hadoop_env编辑核心配置文件
使用vim core-site.xml
,在configuration中添加:1
2
3
4
5
6
7
8
9
10
11<!-- HDFS集群中NameNode的URI(包括协议、主机名称、端口号),默认为 file:/// -->
<property>
<name>fs.defaultFS</name>
<!-- 用于指定NameNode的地址 -->
<value>hdfs://localhost:9000</value>
</property>
<!-- Hadoop运行时产生文件的临时存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoopData/temp</value>
</property>- 配置文件系统
使用vim hdfs-site.xml
,在configuration中添加:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15<!-- NameNode在本地文件系统中持久存储命名空间和事务日志的路径 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/root/hadoopData/name</value>
</property>
<!-- DataNode在本地文件系统中存放块的路径 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/root/hadoopData/data</value>
</property>
<!-- 数据块副本的数量,默认为3 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property> - 配置slaves
我们采用伪分布式集群,使用vim slaves
查看配置内容为localhost。
配置Hadoop环境变量
1 | echo -e 'export HADOOP_HOME=/root/software/hadoop-2.7.7\nexport PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> /etc/profile #将环境变量输出到系统环境变量 |
HDFS集群测试
1 | hdfs namenode -format #格式化HDFS文件系统,切记只需要格式化一次,并且在Master上进行 |
部署完成后访问http://localhost:50070来查看集群状态。
一些问题
- 端口无法访问
需要关闭防护墙或者配置端口访问,在Ubuntu/Debian下使用ufw disable
即可,在Centos 7中使用:1
2systemctl stop firewalld.service
systemctl disable firewalld.service
本文标题:Hadoop_HDFS_Install
文章作者:Raincorn
发布时间:2020-06-08
最后更新:2020-07-28
原始链接:https://blog.raincorn.top/2020/06/08/Hadoop_HDFS_Install/
版权声明:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可