hadoop是什么?
解决的问题:
海量数据的存储(HDFS):供hbase,mapreduce进行处理
海量数据的分析(MapReduce)
资源管理调度(YARN)
搜索引擎:
爬虫系统+站内搜索
爬虫对html网页进行抓取,数据量较大,需要进行海量数据存储,传统存储手段已经无法满足需求
hadoop具体能干什么
1.擅长海量日志分析
海量数据存储的解决方案:
程序执行相关命令:
向hdfs中上传文件至根目录:hadoop fs -put filename hdfs://hostname:port/
从hdfs中下载文件:hadoop fs -get hdfs://hostname:port/filename
创建目录:hadoop fs -mkdir hdfs://hostname:port/wordcount
查看目录下的类容: -ls
查看某个文件的类容: -cat
执行mapreduce程序:
hadoop jar filename.jar pi 5 5
2.hdfs的实现机制
hdfs通过分布式集群来存储文件,为客户端提供了一个便捷的访问方式,就是一个虚拟的工作目录
文件存储到hdfs集群中去的时候是被切分成block的
文件的block存放在若干台datanode节点上
hdfs文件系统中的文件与真实的block之间有映射关系,由namenode管理
namenode记录每个文件在datanode所存放的位置
每个block在集群中会存储多个副本,好处是可以提高数据的可靠性和访问的吞吐量
3.mapreduce
hadoop fs -mkdir hdfs://hostname:9000/wordcount
hadoop fs -mkdir /wordcount/input
hadoop fs -mkdir /wordcount/output
hadoop fs -put test.txt /wordcount/input 将文件放到hdfs中
hadoop jar filename.jar wordcount /wordcount/input /wordcount/output
4.hdfs实现机制
将文件分块放置于不同的DataNode下:DataNode的路径如下/hadoop/data/dfs/data/,每个block在集群中会存储多个副本
NameNode中记录了元数据所存放的位置,客户端通过namenode对分布式的数据进行操作
hdfs文件的内容不能修改