day11.07

1.Hadoop集群可以运行的3个模式?

(1)单机(本地)模式:这种模式在一台单机上运行,没有分布式文件系统,而是直接读写本地操作系统的文件系统。在单机模式(standalone)中不会存在守护进程,所有东西都运行在一个JVM上。这里同样没有DFS,使用的是本地文件系统。单机模式适用于开发过程中运行MapReduce程序,这也是最少使用的一个模式。

(2)伪分布式模式:也是在一台单机上运行,但用不同的Java进程模仿分布式运行中的各类结点(NameNode,DataNode,JobTracker,TaskTracker,SecondaryNameNode),伪分布式(Pseudo)适用于开发和测试环境,在这个模式中,所有守护进程都在同一台机器上运行。

(3)全分布式模式:全分布模式通常被用于生产环境,使用N台主机组成一个Hadoop集群,Hadoop守护进程运行在每台主机之上。这里会存在Namenode运行的主机,Datanode运行的主机,以及tasktracker运行的主机。在分布式环境下,主节点和从节点会分开。

2.Hadoop的核心配置文件有哪些?

配置文件无非就这几个文件:
1、hadoop-env.sh:
只需设置jdk的安装路径,如:export JAVA_HOME=/usr/local/jdk
2、core-site.xml:
(1)fs.defaultFS:hdfs://cluster1(域名),这里的值指的是默认的HDFS路径
(2)hadoop.tmp.dir:/export/data/hadoop_tmp,这里的路径默认是NameNode、DataNode、JournalNode等存放数据的公共目录。用户也可以自己单独指定这三类节点的目录。
(3)ha.zookeeper.quorum:hadoop101:2181,hadoop102:2181,hadoop103:2181,这里是ZooKeeper集群的地址和端口。注意,数量一定是奇数,且不少于三个节点
(4)hadoop.proxyuser.erpmerge.hosts、hadoop.proxyuser.erpmerge.groups主要用来设置oozie的代理用户

3. “jps”命令的用处?

jps位于jdk的bin目录下,其作用是显示当前系统的java进程情况,及其id号。 jps相当于Solaris进程工具ps。不像”pgrep java”

或”ps -ef grep java”,jps并不使用应用程序名来查找JVM实例。因此,它查找所有的Java应用程序,包括即使没有使用java执行

体的那种(例如,定制的启动 器)。另外,jps仅查找当前用户的Java进程,而不是当前系统中的所有进程。

4.SSH工作的端口号是?

ssh工作的端口号是22

5.hdfs上传文件的流程。

  1. 客户端拿到一个文件,跟namenode说,我要上传这个文件,上传到哪个目录下。我们假设这个文件名为 cjk.avi,目录为 /hadoop/hdfs/

  2. namenode拿到这个文件后,获取文件名,然后去元数据中查找/hadoop/hdfs/中是否已经存在相同文件名的文件,如果没有,那么告诉客户端说你可以上传这个文件

  3. 客户端接到可以上传文件的命令后,会将文件进行切分(hadoop2.X是128M),切分成N(N>=1)块,如果切成n块,那么除去最后一个,其它块的大小都是一样的。

  4. 客户端拿到第一个块block01后,跟namenode说,我要上传block01,然后namenode去自身的datanode信息池中查找应该上传到哪几个datanode(备份数)中,然后将查询到的datanode的信息告诉客户端

  5. 客户端拿到datanode的信息后,开辟一个socket流将block01上传到namenode返回的datanode中最近的一个datanode节点,然后这个datanode节点会对block01进行水平备份,也就是将数据从datanode本地复制到其他指定的机器上。

  6. datanode将数据水平备份完成之后,会通知客户端,说block01上传成功

  7. 然后客户端会通知namenode说block01上传成功,此时namenode会将元数据(可以简单地理解为记录了block块存放到哪个datanode中)同步到内存中

  8. 其他的block块循环上面的过程

  9. 至此一个大文件就上传到hdfs中了

6.hdfs读取文件步骤

读取:

  1. 应用程序通过HDFS客户端向NameNode发生远程调用请求。
  2. NameNode收到请求之后,返回文件的块列表信息。块列表信息中包含每个block拷贝的datanode地址。
  3. HDFS 客户端会选择离自己最近的那个拷贝所在的datanode来读取数据。
  4. 数据读取完成以后,HDFS客户端关闭与当前的datanode的链接

7.请列出正常的hadoop集群中hadoop都分别需要启动 哪些进程,他们的作用分别都是什么启动的进程:

namenode

socondarynamenode

datanode

ResourceManager(JobTracker)JobTracker

NodeManager(TaskTracker)

DFSZKFailoverController

JournalNode

作用:

a) NameNode它是hadoop中的主服务器,管理文件系统名称空间和对集群中存储的文件的访问,保存有 metadate.

b).SecondaryNameNode它不是namenode的冗余守护进程,而是提供周期检查点和清理任务。帮助NN合并editslog,减少NN启动时间。

c)DataNode它负责管理连接到节点的存储(一个集群中可以有多个节点)。每个存储数据的节点运行一个datanode守护进程。

d)ResourceManager(JobTracker)JobTracker负责调度DataNode上的工作。每个DataNode有一个TaskTracker,它们执行实际工作。

e) NodeManager(TaskTracker)执行任务

f) DFSZKFailoverController高可用时它负责监控NN的状态,并及时的把状态信息写入ZK。它通过一个独立线程周期性的调用NN上的一个特定接口来获取NN的健康状态。FC也有选择谁作为Active NN的权利,因为最多只有两个节点,目前选择策略还比较简单(先到先得,轮换)。

g) JournalNode 高可用情况下存放namenode的editlog文件.

8.linux如何配置环境变量

一、java环境变量
tar -zxvf jdk-8u201-linux-x64.tar.gz -C /opt/module/
2、编辑系统变量:
vim /etc/profile

#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_201
export PATH= P A T H : PATH: PATH:JAVA_HOME/bin
3、使环境变量生效:
source /etc/profile
二、hadoop环境变量
1、解压tar包到指定目录:
tar -zxvf hadoop-3.2.0.tar.gz -C /opt/module/
2、编辑系统变量
vim /etc/profile

#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.2.0
export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin
export PATH= P A T H : PATH: PATH:HADOOP_HOME/sbin
3、使环境变量生效:
source /etc/profile
4、修改hadoop配置文件:
vim /opt/module/hadoop-3.2.0/etc/hadoop/hadoop-env.sh

export JAVA_HOME=/opt/module/jdk1.8.0_201

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值