【Mac大数据开发】第四篇-Hadoop安装和配置(伪分布式集群)

1. Hadoop的安装

下载Hadoop安装包,通过scp(或其他指令方式)发送到虚拟机上,并进行解压安装。修改环境变量

vi /etc/profile
export JAVA_HOME="/opt/jdk1.8.0_211"
export HADOOP_HOME="/opt/hadoop-2.8.4" # hadoop安装目录
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile

使用hadoop命令检查是否安装成,如下则说明安装成功


hadoop安装成功

2. 伪集群配置

Hadoop正常工作必须启动两个基础的服务-hadoop和yarn。伪集群模式即在单机上启动这些服务。包括主动启动nn,dn,sn、rm、nm等

2.1 NameNode配置

修改etc目录下的core-site.xml文件,在configuration标签中添加

<!-- 指定NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://主机名1:9000</value>
</property>

<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.X.X/data/tmp</value>
</property>

其中9000时hadoop中namenode的通信端口,此前版本时8200;
对于文件目录,不指定时存放在用户的/tmp目录,系统会自动清理,影响使用

2.2 HDFS配置

修改同目录下的hdfs-site.xml,添加如下配置

<!--数据冗余数-->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--secondary的地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>主机名1:50090</value>
</property>
<!--关闭权限-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>

对于replication数据副本的数量,在伪集群模式下,因为datanode只有一个,所以复制数量填1即可;
关闭权限-一些非root用户在权限控制下无法提交文件到hdfs,便于学习,直接关闭

2.3 Map-Reduce配置

修改配置目录下mapred-site.xml文件(默认是template可自行创建)

<!-- 指定mr运行在yarn上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!--历史服务器的地址-->
<property>
<name>mapreduce.jobhistory.address</name>
<value>主机名1:10020</value>
</property>
<!--历史服务器页面的地址-->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>主机名1:19888</value>
</property>

该配置文件指定mr的获取任务的方式通过yarn调度

2.4 配置env脚本

Hadoop的脚本hadoop-env.sh、yarn-env.sh、mapred-env.sh中,都有使用到JAVA_HOME环境变量,但是很容易出现找不到的情况,因此要手动在其中添加配置

export JAVA_HOME=/opt/jdk1.8.11_201 # jdk安装目录

3. 启动测试

3.1 执行格式化

初次启动hdfs前,需要对nameNode进行格式化

hdfs namenode -format

为什么要格式化?

NameNode用来管理HDFS的命名空间元数据,同时加入了操作日志,初始启动时,需要添加执行格式化初始化这些操作

格式化执行了哪些操作?

格式化时会清空tmp目录下dfs目录中的所有文件,并重新创建新的目录信息

3.2 启动集群

# 启动NameNode主节点
sbin/start-dfs.sh
# 启动yarn
sbin/start-yarn.sh

完全启动后看到一下5个进程


进程列表

hdfs web控制台:http://host:50070

hdfs界面

yarn web控制台:http://host:8088

yarn界面

3.3 文件系统测试

使用指令

hadoop fs -ls / # 查看hdfs系统根目录
hadoop fs -mkdir /root # 创建root目录
hadoop fs -put test.txt /root # 上传文件

可以实现上传并查看文件,也可以通过web控制台查看


上传的txt文件

可以看到,hdfs中一个块的大小默认128M(理论最佳值,可配置),但文件实际大小只有35B。

“块”相当于一个袋子,容量最大128M,一个袋子只放一个文件。把文件放进去,不充满也不会重复使用。新的文件放在新的袋子里。
进入hdfs的文件目录,也可以看到块文件和meta文件

/opt/hadoop-2.8.4/data/tmp/dfs/data/current/BP-1797775247-192.168.56.101-1561479286518/current/finalized/subdir0/subdir0

4. 对于HDFS的目录说明

在core-site.xml中配置的hadoop.tmp.dir路径/dfs即为hdfs的根路径,其结构分为data、name、nameSecondary

/opt/hadoop-2.8.4/data/tmp/dfs
  • data目录是datanode创建,存放数据块和meta验证文件(验证数据完整性)


    block数据块
  • name目录是namenode创建,保存操作记录(edits),系统原属记录(fsimage)等


    namenode元数据
  • nameSecondary目录是secondarynamenode创建

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容