13.1 hadoop

本文详细介绍了Hadoop非安全模式下的核心配置文件参数及其作用,包括core-site.xml、hdfs-site.xml、yarn-site.xml等,并提供了配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hadoop学习(一) Hadoop是什么

Hadoop是什么?

Hadoop是一个开发和运行处理大规模数据的软件平台,是Appach的一个用Java语言实现开源软件框架,实现在大量计算机组成的集群中对海量数据进行分布式计算.
Hadoop框架中最核心设计就是:HDFS和MapReduce.HDFS提供了海量数据的存储,MapReduce提供了对数据的计算.

Hadoop核心架构

        Hadoop 由许多元素构成。其最底部是 Hadoop Distributed File System(HDFS),它存储 Hadoop 集群中所有存储节点上的文件。HDFS的上一层是MapReduce 引擎,该引擎由 JobTrackers 和 TaskTrackers 组成。通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖了Hadoop分布式平台的所有技术核心。

HDFS

   对外部客户机而言,HDFS就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。但是 HDFS 的架构是基于一组特定的节点构建的(参见图 1),这是由它自身的特点决定的。这些节点包括 NameNode(仅一个),它在 HDFS 内部提供元数据服务;DataNode,它为 HDFS 提供存储块。由于仅存在一个 NameNode,因此这是 HDFS 的一个缺点(单点失败)。
        存储在 HDFS 中的文件被分成块,然后将这些块复制到多个计算机中(DataNode)。这与传统的 RAID 架构大不相同。块的大小(通常为 64MB)和复制的块数量在创建文件时由客户机决定。NameNode 可以控制所有文件操作。HDFS 内部的所有通信都基于标准的 TCP/IP 协议。












Hadoop学习(二) Hadoop配置文件参数详解

Hadoop运行模式分为安全模式和非安全模式,在这里,我将讲述非安全模式下,主要配置文件的重要参数功能及作用,本文所使用的Hadoop版本为2.6.4。

etc/hadoop/core-site.xml

参数属性值解释
fs.defaultFSNameNode URIhdfs://host:port/
io.file.buffer.size131072SequenceFiles文件中.读写缓存size设定
范例:
复制代码
 1 <configuration>
 2     <property>
 3         <name>fs.defaultFS</name>
 4         <value>hdfs://192.168.1.100:900</value>
 5         <description>192.168.1.100为服务器IP地址,其实也可以使用主机名</description>
 6     </property>
 7     <property>
 8         <name>io.file.buffer.size</name>
 9         <value>131072</value>
10         <description>该属性值单位为KB,131072KB即为默认的64M</description>
11     </property>
12 </configuration>    

etc/hadoop/hdfs-site.xml

  • 配置NameNode
参数属性值解释
dfs.namenode.name.dir在本地文件系统所在的NameNode的存储空间和持续化处理日志如果这是一个以逗号分隔的目录列表,然 后将名称表被复制的所有目录,以备不时 需。
dfs.namenode.hosts/
dfs.namenode.hosts.exclude
Datanodespermitted/excluded列表如有必要,可以使用这些文件来控制允许数据节点的列表
dfs.blocksize268435456大型的文件系统HDFS块大小为256MB
dfs.namenode.handler.count100设置更多的namenode线程,处理从datanode发出的大量RPC请求
范例:
复制代码
 1 <configuration>
 2     <property>
 3         <name>dfs.replication</name>
 4         <value>1</value>
 5         <description>分片数量,伪分布式将其配置成1即可</description>
 6     </property>
 7     <property>
 8         <name>dfs.namenode.name.dir</name>
 9         <value>file:/usr/local/hadoop/tmp/namenode</value>
10         <description>命名空间和事务在本地文件系统永久存储的路径</description>
11     </property>
12     <property>
13         <name>dfs.namenode.hosts</name>
14         <value>datanode1, datanode2</value>
15         <description>datanode1, datanode2分别对应DataNode所在服务器主机名</description>
16     </property>
17     <property>
18         <name>dfs.blocksize</name>
19         <value>268435456</value>
20         <description>大文件系统HDFS块大小为256M,默认值为64M</description>
21     </property>
22     <property>
23         <name>dfs.namenode.handler.count</name>
24         <value>100</value>
25         <description>更多的NameNode服务器线程处理来自DataNodes的RPCS</description>
26     </property>
27 </configuration>
  • 配置DataNode
参数属性值解释
dfs.datanode.data.dir逗号分隔的一个DataNode上,它应该保存它的块的本地文件系统的路径列表如果这是一个以逗号分隔的目录列表,那么数据将被存储在所有命名的目录,通常在不同的设备。
范例:
复制代码
1 <configuration>
2     <property>
3         <name>dfs.datanode.data.dir</name>
4         <value>file:/usr/local/hadoop/tmp/datanode</value>
5         <description>DataNode在本地文件系统中存放块的路径</description>
6     </property>
7 </configuration>

etc/hadoop/yarn-site.xml

  • 配置ResourceManager 和 NodeManager:
参数属性值解释
yarn.resourcemanager.address客户端对ResourceManager主机通过 host:port 提交作业host:port
yarn.resourcemanager.scheduler.addressApplicationMasters 通过ResourceManager主机访问host:port跟踪调度程序获资源host:port
yarn.resourcemanager.resource-tracker.addressNodeManagers通过ResourceManager主机访问host:porthost:port
yarn.resourcemanager.admin.address管理命令通过ResourceManager主机访问host:porthost:port
yarn.resourcemanager.webapp.addressResourceManager web页面host:port.host:port
yarn.resourcemanager.scheduler.classResourceManager 调度类(Scheduler class)CapacityScheduler(推荐),FairScheduler(也推荐),orFifoScheduler
yarn.scheduler.minimum-allocation-mb每个容器内存最低限额分配到的资源管理器要求以MB为单位
yarn.scheduler.maximum-allocation-mb资源管理器分配给每个容器的内存最大限制以MB为单位
yarn.resourcemanager.nodes.include-path/
yarn.resourcemanager.nodes.exclude-path
NodeManagers的permitted/excluded列表如有必要,可使用这些文件来控制允许NodeManagers列表
范例:
复制代码
 1 <configuration>
 2     <property>
 3         <name>yarn.resourcemanager.address</name>
 4         <value>192.168.1.100:8081</value>
 5         <description>IP地址192.168.1.100也可替换为主机名</description>
 6     </property>
 7     <property>
 8         <name>yarn.resourcemanager.scheduler.address</name>
 9         <value>192.168.1.100:8082</value>
10         <description>IP地址192.168.1.100也可替换为主机名</description>
11     </property>
12     <property>
13         <name>yarn.resourcemanager.resource-tracker.address</name>
14         <value>192.168.1.100:8083</value>
15         <description>IP地址192.168.1.100也可替换为主机名</description>
16     </property>
17     <property>
18         <name>yarn.resourcemanager.admin.address</name>
19         <value>192.168.1.100:8084</value>
20         <description>IP地址192.168.1.100也可替换为主机名</description>
21     </property>
22     <property>
23         <name>yarn.resourcemanager.webapp.address</name>
24         <value>192.168.1.100:8085</value>
25         <description>IP地址192.168.1.100也可替换为主机名</description>
26     </property>
27     <property>
28         <name>yarn.resourcemanager.scheduler.class</name>
29         <value>FairScheduler</value>
30         <description>常用类:CapacityScheduler、FairScheduler、orFifoScheduler</description>
31     </property>
32     <property>
33         <name>yarn.scheduler.minimum</name>
34         <value>100</value>
35         <description>单位:MB</description>
36     </property>
37     <property>
38         <name>yarn.scheduler.maximum</name>
39         <value>256</value>
40         <description>单位:MB</description>
41     </property>
42     <property>
43         <name>yarn.resourcemanager.nodes.include-path</name>
44         <value>nodeManager1, nodeManager2</value>
45         <description>nodeManager1, nodeManager2分别对应服务器主机名</description>
46     </property>
47 </configuration>
  • 配置NodeManager
参数属性值解释
yarn.nodemanager.resource.memory-mbgivenNodeManager即资源的可用物理内存,以MB为单位定义在节点管理器总的可用资源,以提供给运行容器
yarn.nodemanager.vmem-pmem-ratio最大比率为一些任务的虚拟内存使用量可能会超过物理内存率每个任务的虚拟内存的使用可以通过这个比例超过了物理内存的限制。虚拟内存的使用上的节点管理器任务的总量可以通过这个比率超过其物理内存的使用
yarn.nodemanager.local-dirs数据写入本地文件系统路径的列表用逗号分隔多条存储路径可以提高磁盘的读写速度
yarn.nodemanager.log-dirs本地文件系统日志路径的列表逗号分隔多条存储路径可以提高磁盘的读写速度
yarn.nodemanager.log.retain-seconds10800如果日志聚合被禁用。默认的时间(以秒为单位)保留在节点管理器只适用日志文件
yarn.nodemanager.remote-app-log-dirlogsHDFS目录下的应用程序日志移动应用上完成。需要设置相应的权限。仅适用日志聚合功能
yarn.nodemanager.remote-app-log-dir-suffixlogs后缀追加到远程日志目录。日志将被汇总到yarn.nodemanager.remote­app­logdir/
{user}/${thisParam} 仅适用日志聚合功能。
yarn.nodemanager.aux-servicesmapreduce-shuffleShuffle service 需要加以设置的Map Reduce的应用程序服务
范例:
复制代码
 1 <configuration>
 2     <property>
 3         <name>yarn.nodemanager.resource.memory-mb</name>
 4         <value>256</value>
 5         <description>单位为MB</description>
 6     </property>
 7     <property>
 8         <name>yarn.nodemanager.vmem-pmem-ratio</name>
 9         <value>90</value>
10         <description>百分比</description>
11     </property>
12     <property>
13         <name>yarn.nodemanager.local-dirs</name>
14         <value>/usr/local/hadoop/tmp/nodemanager</value>
15         <description>列表用逗号分隔</description>
16     </property>
17     <property>
18         <name>yarn.nodemanager.log-dirs</name>
19         <value>/usr/local/hadoop/tmp/nodemanager/logs</value>
20         <description>列表用逗号分隔</description>
21     </property>
22     <property>
23         <name>yarn.nodemanager.log.retain-seconds</name>
24         <value>10800</value>
25         <description>单位为S</description>
26     </property>
27     <property>
28         <name>yarn.nodemanager.aux-services</name>
29         <value>mapreduce-shuffle</value>
30         <description>Shuffle service 需要加以设置的MapReduce的应用程序服务</description>
31     </property>
32 </configuration>

etc/hadoop/mapred-site.xml

  • 配置mapreduce
参数属性值解释
mapreduce.framework.nameyarn执行框架设置为 Hadoop YARN.
mapreduce.map.memory.mb1536对maps更大的资源限制的.
mapreduce.map.java.opts-Xmx2014Mmaps中对jvm child设置更大的堆大小
mapreduce.reduce.memory.mb3072设置 reduces对于较大的资源限制
mapreduce.reduce.java.opts-Xmx2560Mreduces对 jvm child设置更大的堆大小
mapreduce.task.io.sort.mb512更高的内存限制,而对数据进行排序的效率
mapreduce.task.io.sort.factor100在文件排序中更多的流合并为一次
mapreduce.reduce.shuffle.parallelcopies50通过reduces从很多的map中读取较多的平行 副本
范例:
复制代码
 1 <configuration>
 2     <property>
 3         <name> mapreduce.framework.name</name>
 4         <value>yarn</value>
 5         <description>执行框架设置为Hadoop YARN</description>
 6     </property>
 7     <property>
 8         <name>mapreduce.map.memory.mb</name>
 9         <value>1536</value>
10         <description>对maps更大的资源限制的</description>
11     </property>
12     <property>
13         <name>mapreduce.map.java.opts</name>
14         <value>-Xmx2014M</value>
15         <description>maps中对jvm child设置更大的堆大小</description>
16     </property>
17     <property>
18         <name>mapreduce.reduce.memory.mb</name>
19         <value>3072</value>
20         <description>设置 reduces对于较大的资源限制</description>
21     </property>
22     <property>
23         <name>mapreduce.reduce.java.opts</name>
24         <value>-Xmx2560M</value>
25         <description>reduces对 jvm child设置更大的堆大小</description>
26     </property>
27     <property>
28         <name>mapreduce.task.io.sort</name>
29         <value>512</value>
30         <description>更高的内存限制,而对数据进行排序的效率</description>
31     </property>
32     <property>
33         <name>mapreduce.task.io.sort.factor</name>
34         <value>100</value>
35         <description>在文件排序中更多的流合并为一次</description>
36     </property>
37     <property>
38         <name>mapreduce.reduce.shuffle.parallelcopies</name>
39         <value>50</value>
40         <description>通过reduces从很多的map中读取较多的平行副本</description>
41     </property>
42 </configuration>
复制代码
  • 配置mapreduce的JobHistory服务器
参数属性值解释
maprecude.jobhistory.addressMapReduce JobHistory Server host:port默认端口号 10020
mapreduce.jobhistory.webapp.addressMapReduce JobHistory Server Web UIhost:port默认端口号 19888
mapreduce.jobhistory.intermediate-done-dir/mr­history/tmp在历史文件被写入由MapReduce作业
mapreduce.jobhistory.done-dir/mr­history/done目录中的历史文件是由MR JobHistory Server管理
范例:
复制代码
 1 <configuration>
 2     <property>
 3         <name> mapreduce.jobhistory.address</name>
 4         <value>192.168.1.100:10200</value>
 5         <description>IP地址192.168.1.100可替换为主机名</description>
 6     </property>
 7     <property>
 8         <name>mapreduce.jobhistory.webapp.address</name>
 9         <value>192.168.1.100:19888</value>
10         <description>IP地址192.168.1.100可替换为主机名</description>
11     </property>
12     <property>
13         <name>mapreduce.jobhistory.intermediate-done-dir</name>
14         <value>/usr/local/hadoop/mr­history/tmp</value>
15         <description>在历史文件被写入由MapReduce作业</description>
16     </property>
17     <property>
18         <name>mapreduce.jobhistory.done-dir</name>
19         <value>/usr/local/hadoop/mr­history/done</value>
20         <description>目录中的历史文件是由MR JobHistoryServer管理</description>
21     </property>
22 </configuration>
复制代码

Web Interface

DaemonWeb InterfaceNotes
NameNodehttp://nn_host:port/默认端口号50070
ResourceManagerhttp://rm_host:port/默认端口号8088
MapReduce JobHistory Serverhttp://jhs_host:port/默认端口号19888



内容概要:本文详细探讨了基于MATLAB/SIMULINK的多载波无线通信系统仿真及性能分析,重点研究了以OFDM为代表的多载波技术。文章首先介绍了OFDM的基本原理和系统组成,随后通过仿真平台分析了不同调制方式的抗干扰性能、信道估计算法对系统性能的影响以及同步技术的实现与分析。文中提供了详细的MATLAB代码实现,涵盖OFDM系统的基本仿真、信道估计算法比较、同步算法实现和不同调制方式的性能比较。此外,还讨论了信道特征、OFDM关键技术、信道估计、同步技术和系统级仿真架构,并提出了未来的改进方向,如深度学习增强、混合波形设计和硬件加速方案。; 适合人群:具备无线通信基础知识,尤其是对OFDM技术有一定了解的研究人员和技术人员;从事无线通信系统设计与开发的工程师;高校通信工程专业的高年级本科生和研究生。; 使用场景及目标:①理解OFDM系统的工作原理及其在多径信道环境下的性能表现;②掌握MATLAB/SIMULINK在无线通信系统仿真中的应用;③评估不同调制方式、信道估计算法和同步算法的优劣;④为实际OFDM系统的设计和优化提供理论依据和技术支持。; 其他说明:本文不仅提供了详细的理论分析,还附带了大量的MATLAB代码示例,便于读者动手实践。建议读者在学习过程中结合代码进行调试和实验,以加深对OFDM技术的理解。此外,文中还涉及了一些最新的研究方向和技术趋势,如AI增强和毫米波通信,为读者提供了更广阔的视野。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值