加入收藏 | 设为首页 | 会员中心 | 我要投稿 漯河站长网 (https://www.0395zz.cn/)- 云服务器、混合云存储、网络、内容创作、云渲染!
当前位置: 首页 > 大数据 > 正文

Hadoop,大数据的关键

发布时间:2021-06-03 14:00:14 所属栏目:大数据 来源:互联网
导读:搭建数仓,hadoop虽然有点落伍,但还是不可或缺的。本文描述下单机版的hadoop运作机制。 HDFS是Google GFS的开源实现,是一个分布式文件系统,是大数据技术的基石,直接上架构图: 主要包含Namenode和Datanodes,MapReduce主要就是在Datanodes进行并行计算。
搭建数仓,hadoop虽然有点落伍,但还是不可或缺的。本文描述下单机版的hadoop运作机制。
HDFS是Google GFS的开源实现,是一个分布式文件系统,是大数据技术的基石,直接上架构图:
 
主要包含Namenode和Datanodes,MapReduce主要就是在Datanodes进行并行计算。
core-site.xml:
<property> 
    <name>fs.defaultFS</name> 
    <value>hdfs://localhost:8001</value> 
</property> 
<property> 
    <name>hadoop.tmp.dir</name> 
    <value>/root/hadoop-3.2.2/tmp</value> 
</property> 
其中8001端口就代表hdfs的根路径,另外hdfs-site.xml配置参数也非常多。
比如dfs.replication表示hdfs副本集,单机版就设置1;dfs.namenode.http-address是NameNode web管理地址,可以查看hdfs的一些情况;dfs.datanode.address是DataNode的端口;dfs.namenode.name.dir和dfs.namenode.data.dir表示Namenode和Datanodes的存储目录,默认继承于hadoop.tmp.dir值。
如果修改目录相关的参数,需要格式化hdfs:
$ bin/hdfs namenode -format 
经验就是建议删除dfs.namenode.data.dir下的文件,再格式化。
一旦hdfs可用,操作它们就像操作本地文件一样:
#创建登陆用户的根目录,有了根目录,则不需要指定hdfs://前缀 
$ ./bin/hdfs dfs -mkdir  -p  "hdfs://localhost:8001/user/root" 
$ ./bin/hdfs dfs -mkdir  -p  test2 
 
$ ./bin/hdfs dfs -put ~/test.log hdfs://localhost:8001/test 
$ ./bin/hdfs dfs -put ~/test.log test2 
 
$ ./bin/hdfs dfs -ls test2 
$ ./bin/hdfs dfs -cat  test2/test.log 
接下去说说MapReduce,主要包含map和reduce过程,另外不能忘记shuffle,map相对于从hdfs dataNodes处理数据,然后shuffle将相关联的数据交给reduce进行处理。
运行MapReduce过程很简单:
$ bin/hdfs dfs -mkdir input 
$ bin/hdfs dfs -put etc/hadoop/*.xml input 
# 将mapreduce任务执行的结果放入 hdfs output 目录中 
$ bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.2.jar grep input output 'dfs[a-z.]+'  
bin/hdfs dfs -cat output/* 
早期的MapReduce即包含计算框架,又包含调度框架,比较臃肿,比如想在当前集群运行另外一种计算任务,就不方便了,所以后来从MapReduce中将调度框架抽取出来,命名为Yarn,这样不管是MapReduce还是Spark只要符合Yarn接口定义,就能被Yarn调度,MR和Spark专做做分布式运算,相当于解耦了。

(编辑:漯河站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读