前言
Big Data and AI ’s age has coming!
面对海量的数据,传统方式已无法满足用户高效地使用和处理数据了。
hadoop 的意义非同一般,它赋予了人们面对bigdata的信心和能力,同时也开创了一个时代,
它是一个可靠的、可扩展的、分布式的计算框架,给予人们PB级的计算处理能力。
由Doug Cutting 根据谷歌公司发表的MapReduce和GFS的论文自行实现而成。
诞生历史:Lucene (1999) –> Nutch (2003) –> hadoop (2011)
配置
对hadoop的配置资料有很多,不再赘述。可参考它
主要关注的是配置中存在的问题
解决 错误: 找不到或无法加载主类 org.apache.hadoop.hdfs.server.namenode.NameNode
export HADOOP_HOME=/home/wuwenjie/hello/bigdata/hadoop-2.7.1
export PATH=“${HADOOP_HOME}:$PATH”
etc/hadoop/hadoop-env.sh 中配置JDK
export JAVA_HOME=“/usr/lib/jvm/java-7-openjdk-i386”
etc/hadoop 下的一些配置:
etc/hadoop/core-site.xml
1
2
3
4
5
6
7
8
9
10
<configuration>
<property>
<name> fs.defaultFS</name>
<value> hdfs://localhost:9000</value>
</property>
<property>
<name> hadoop.tmp.dir</name>
<value> /home/wuwenjie/hello/bigdata/hadoopTmpDir</value>
</property>
</configuration>
etc/hadoop/hdfs-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<configuration>
<property>
<name> dfs.replication</name>
<value> 1</value>
</property>
<property>
<name> dfs.name.dir</name>
<value> file:///home/wuwenjie/hello/bigdata/hdfs/name</value>
</property>
<property>
<name> dfs.data.dir</name>
<value> file:///home/wuwenjie/hello/bigdata/hdfs/data</value>
</property>
</configuration>
etc/hadoop/mapred-site.xml
1
2
3
4
5
6
7
8
9
10
11
<configuration>
<property>
<name> mapred.job.tracker</name>
<value> localhost:9001</value>
</property>
<property>
<name> mapreduce.framework.name</name>
<value> yarn</value>
</property>
</configuration>
etc/hadoop/yarn-site.xml
1
2
3
4
5
6
7
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name> yarn.nodemanager.aux-services</name>
<value> mapreduce_shuffle</value>
</property>
</configuration>
初始化及启动
启动hdsf:sbin/start-dfs.sh
格式化文件系统(只需一次):bin/hdfs namenode -format
启动yarn:sbin/start-yarn.sh
察看java进程:jps
jps命令结果
1
2
3
4
5
6
5600 ResourceManager
5987 Jps
5024 DataNode
5399 SecondaryNameNode
5890 NodeManager
4738 NameNode
解释
ResourceManager:处理客户端请求启动/监控、ApplicationMaster监控、NodeManager资源分配与调度。
DataNode:HDFS工作节点,根据namenode的调度存储和检索数据,定期发送存储的block列表。
SecondaryNameNode:帮助NameNode管理Metadata数据,减小在NameNode上的压力。
NodeManager:单个节点上的资源管理、处理来自ResourceManager、ApplicationMaster的命令。
NameNode:管理HDFS的Namespace,维护所有文件和文件夹的元数据(metadata)。
测试
1
2
3
4
bin/hdfs dfs -mkdir /hadoop
bin/hdfs dfs -mkdir /hadoop/test
bin/hdfs dfs -mkdir /hadoop/out
bin/hdfs dfs -put "/media/三国志.txt" /hadoop/test
1
2
3
bin/hadoop jar \
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar \
grep /hadoop/test /hadoop/out '漢.'
1
bin/hdfs dfs -cat /hadoop/out/part-r-00000
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
41 漢書
38 漢中
36 漢晉
34 漢,
30 漢之
29 漢室
23 漢紀
23 漢氏
16 漢末
16 漢高
14 漢朝
13 漢祖
12 漢文
12 漢祚
9 漢帝
8 漢家
7 漢水