大数据,机器学习,人工智能Mac学习大数据玩转大数据

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

2019-06-26  本文已影响0人  irving_yuan

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
上一篇 下一篇

猜你喜欢

热点阅读