目录

1. Hadoop是什么

2. Hadoop 的发展历史

3. 在Docker上运行Hadoop

3.1 使用官方镜像

3.2 安装验证 

 👑👑👑结束语👑👑👑


1. Hadoop是什么

作为当今大数据处理领域的经典分布式平台,Apache Hadoop主要基于Java语言实现,由三个核心子系统组成:HDFS、YARN、MapReduce,其中,HDFS是一套分布式文件系统;YARN是资源管理系统,MapReduce是运行在YARN上的应用,负责分布式处理管理。如果从操作系统的角度看,HDFS相当于Linux的 ext3/ext4文件系统,而Yarn相当于Linux的进程调度和内存分配模块

hadoop 分布式 hadoop 分布式应用_hadoop

2. Hadoop 的发展历史

1)Hadoop 创始人 Doug Cutting ,为 了实 现与 Google 类似的全文搜索功能,他在 Lucene 框架基础上进行优化升级,查询引擎和索引引擎。
2)2001 年年底 Lucene 成为 Apache 基金会的一个子项目。
3)对于海量数据的场景, Lucene 框 架面 对与 Google 同样的困难, 存 储海量数据困难,检 索海 量速度慢 。
4)学习和模仿 Google 解决这些问题的办法 :微型版 Nutch 。
5)可以说 Google 是 Hadoop 的思想之源( Google 在大数据方面的三篇论文)
        GFS --->HDFS
        Map-Reduce --->MR
        BigTable --->HBase
6) 2003-2004 年, Google 公开了部分 GFS 和 MapReduce 思想的细节,以此为基础 Doug Cutting 等人用
了 2 年业余时间 实现了 DFS 和 MapReduce 机制,使 Nutch 性能飙升。
7)2005 年 Hadoop 作为 Lucene 的子项目 Nutch 的一部分正式引入 Apache 基金会。
8)2006 年 3 月份, Map-Reduce 和 Nutch Distributed File System ( NDFS )分别被纳入到 Hadoop 项目
中, Hadoop 就此正式诞生,标志着大数据时代来临。
9)名字来源于 Doug Cutting 儿子的玩具大象

3. 在Docker上运行Hadoop

3.1 使用官方镜像

可以通过docker run指令运行镜像,同时打开bash命令行,如下所示:

$ docker run -it sequenceiq/hadoop-docker:2.7.0 /etc/bootstrap.sh -bash 
bash-4.1#

此时可以查看各种配置信息和执行操作,例如查看namenode日志等信息:

bash-4.1# cat /usr/local/hadoop/logs/hadoop-root-namenode-d4e1e9d8f24f.out 
ulimit -a for user root 
core file size (blocks, -c) 0 
data seg size (kbytes, -d) unlimited 
scheduling priority (-e) 0 
file size (blocks, -f) unlimited 
pending signals (-i) 7758 
max locked memory (kbytes, -l) 64 
max memory size (kbytes, -m) unlimited 
open files (-n) 1048576 
pipe size (512 bytes, -p) 8 
POSIX message queues (bytes, -q) 819200 
real-time priority (-r) 0 
stack size (kbytes, -s) 8192 
cpu time (seconds, -t) unlimited 
max user processes (-u) unlimited 
virtual memory (kbytes, -v) unlimited 
file locks (-x) unlimited

3.2 安装验证 

需要验证Hadoop环境是否安装成功。打开容器的bash命令行环境,进入Hadoop目录:

bash-4.1# cd $HADOOP_PREFIXbash-4.1# pwd/usr/local/hadoop

然后通过运行Hadoop内置的实例程序来进行测试:

bash-4.1# bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar grep input output 'dfs[a-z.]+' 
16/08/31 10:00:11 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032 
16/08/31 10:00:15 INFO input.FileInputFormat: Total input paths to process : 31 
16/08/31 10:00:16 INFO mapreduce.JobSubmitter: number of splits:31 
...

最后可以使用hdfs指令检查输出结果:

bash-4.1# bin/hdfs dfs -cat output/*

 👑👑👑结束语👑👑👑