年3月份,Map-Reduce和NutchDistributedFileSystem(NDFS)分别被纳入到Hadoop项目中,Hadoop就此正式诞生,标志着大数据时代来临。

**HDFS**对外部客户机而言,HDFS就像一个传统的分级文件系统。

假设如果没有指定范围,则不适用umask。

它拥有一个繁荣的开源社区,并且是目前最活跃的Apache项目。

Hadoop原本来自于谷歌一款名为MapReduce的编程模型包。

Reduce阶段:输入当然是shuffle的输出。

年2月–ApacheHadoop项目正式启动以支持MapReduce和HDFS的独立发展。

这是通过HDFSFederation实现的,它允许一个HDFS集群中存在多个NameNode,每个NameNode分管一部分目录,而不同NameNode之间彼此独立,共享所有DataNode的存储资源,注意,NameNodeFederation中的每个NameNode仍存在单点问题,需为每个NameNode提供一个backup以解决单点故障问题。

这比派一个人以连续的方式清点全国中的每一个人效率高得多。

它很擅长存储大量的半结构化的数据集。

官网地址http://hadoop.apache.org/,Logo如下

0.23.x:非稳定版2.x:最新版是2.8.0,建议使用2.7.3稳定版。

HDFS的优点:3.2分布式计算(MapReduce)MapReduce为海量的数据提供了计算。

它的目标就是封装好复杂、易出错的相关服务,将简单、易用的系统提供给用户。

实际的I/O事务并没有经过NameNode,只有表示DataNode和块的文件映射的元数据经过NameNode。

**MapReduce:Hadoop编程模型,用于大规模数据集(大于1TB)的并行计算******MapReduce是一个离线处理框架,由编程模型(新旧API)、运行时环境(JobTracker和TaskTracker)和数据处理引擎(MapTask和ReduceTask)三部分组成。

main函数将作业控制和文件输入/输出结合起来。

|**du**显示磁盘使用率,以字节为单位,对所有的文件,这些文件匹配的路径;文件名报告使用完整HDFS协议前缀。

datanodes删除它们以前版本的工作目录,然后namenode执行相同的操作。

请注意并不是map数越多吞吐量越大-i忽略失败-log记录日志到-update当目标集群上的文件不存在或文件不一致时,才会从源集群拷贝-overwrite覆盖目标集群上的文件-filter过滤不需要复制的文件-delete删除目标文件存在,但不存在source中的文件**6、fs**与hdfsdfs同用查看帮助:hadoopfs-help详细查看:http://hadoop.apache.org/docs/r2.7.0/hadoop-project-dist/hadoop-common/FileSystemShell.html包括如下一些子命令:appendToFile,cat,checksum,chgrp,chmod,chown,copyFromLocal,copyToLocal,count,cp,createSnapshot,deleteSnapshot,df,du,expunge,find,get,getfacl,getfattr,getmerge,help,ls,mkdir,moveFromLocal,moveToLocal,mv,put,renameSnapshot,rm,rmdir,setfacl,setfattr,setrep,stat,tail,test,text,touchz在这里我想各位都应该比较熟悉linux的基本操作命令了,所以这些命令用起来比较简单6.1、appendToFileappendToFile追加一下本地文件到分布式文件系统Usage:hadoopfs-appendToFileexample:hadoopfs-appendToFilelocalfile1localfile2/user/hadoop/hadoopfilehadoopfs-appendToFile-hdfs://nn.example.com/hadoop/hadoopfile表示从标准输入输入数据到hadoopfile中,ctrl+d结束输入6.2、catcat查看文件内容Usage:hadoopfs-catURIURI…example:hadoopfs-cathdfs://nn1.example.com/file1hdfs://nn2.example.com/file2hadoopfs-catfile:///file3/user/hadoop/file46.3、checksumchecksum返回被检查文件的格式Usage:hadoopfs-checksumURIexample:hive@mwpl003~$hadoopfs-checksum/tmp/test/test.txt/tmp/test/test.txtMD5-of-0MD5-of-512CRC32C000002000000000000000000fde199c1517b7b26b0565ff6b0f46acc6.4、chgrpchgrp变更文件目录的所属组Usage:hadoopfs-chgrp-RGROUPURIURI…6.5、chmodchmod修改文件或者目录的权限Usage:hadoopfs-chmod-RURIURI…6.6、chownchown修改目录或者文件的拥有者和所属组Usage:hadoopfs-chown-ROWNER:GROUPURIURI6.7、copyFromLocalcopyFromLocal从本地复制文件或者文件夹到hdfs,类似put命令Usage:hadoopfs-copyFromLocal-fURI其中-f选项会覆盖与原文件一样的目标路径文件example:hadoopfs-copyFromLocalstart-hadoop.sh/tmp6.8、copyToLocalcopyToLocal类似get命令,从hdfs获取文件到本地Usage:hadoopfs-copyToLocal-ignorecrc-crcURI6.9、countcount计算目录,文件,字节数Usage:hadoopfs-count-q-h-v6.10、cpcp复制源文件到目标文件Usage:hadoopfs-cp-f-p|-ptopaxURIURI…Example:hadoopfs-cp/user/hadoop/file1/user/hadoop/file2hadoopfs-cp/user/hadoop/file1/user/hadoop/file2/user/hadoop/dir6.11、Snapshot相关createSnapshot创建快照deleteSnapshot删除快照详细见:http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-hdfs/HdfsSnapshots.htmlHDFS快照是文件系统的只读时间点副本。

它主要有以下几个优点:Hadoop带有用Java语言编写的框架,因此运行在Linux生产平台上是非常理想的。

这个过程中映射的结果将会进一步缩略成可获取的统计结果。

大数据我们知道了,那么Hadoop是什么你知道吗?**Hadoop是什么?****Hadoop**是一种分析和处理大数据的软件平台,是一个由Apache基金会所开发的分布式系统基础架构,在大量计算机组成的集群当中实现了对于海量的数据进行的分布式计算。

创建Hadoop单机容器现在以之前保存的java_ssh镜像创建容器hadoop_single:dockerrun-d–name=hadoop_single–privilegedjava_ssh/usr/sbin/init将下载好的hadoop压缩包拷贝到容器中的/root目录下:dockercp<你存放hadoop压缩包的路径>hadoop_single:/root/进入容器:dockerexec-ithadoop_singlebash进入/root目录:cd/root这里应该存放着刚刚拷贝过来的hadoop-x.x.x.tar.gz文件,现在解压它:tar-zxfhadoop-3.1.4.tar.gz解压后将得到一个文件夹hadoop-3.1.4,现在把它拷贝到一个常用的地方:mvhadoop-3.1.4/usr/local/hadoop然后配置环境变量:echo”exportHADOOP_HOME=/usr/local/hadoop”>>/etc/bashrcecho”exportPATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin”>>/etc/bashrc然后退出docker容器并重新进入。

您可以轻松地从MySQL或Oracle表中的记录、HBASE中的行、本地磁盘上的JSON文件、ElasticSearch中的索引数据以及许多其他的数据中创建数据。

**3、编写map/reduce程序**通过集成开发工具(例如eclipse)导入Hadoop相关的jar包,编写map/reduce程序,将程序打成jar包扔在集群上执行,运行后出计算结果。

这些数据通常是成千上万的文件(叫做shards),这些shards被当做一个逻辑输入源。

Hadoop也非常擅長分散式計算——快速地跨多台機器處理大型數據集合。

*⾼扩展性:Hadoop是在可⽤的计算机集群间分配数据并完成计算任务,这些集群可以⽅便地扩展到数以千计的节点中。

NameNode将以DataNode标识和目标块响应客户机。