今日根据《hadoop权威指南》和炼数成金的黄志洪老师的视频,了解了hadoop的基本原理、基本构架和简单实现。
hadoop本身是一个分布式文件系统(HDFS)和计算框架(MapReduce);YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,不仅仅只能运行MapReduce。
为了实现伪分布hadoop,首先必须下载安装相应的JDK,一般放置在~/usr下;
其次下载最新的、稳定版本的hadoop,解压缩,依次编辑下面的文件:
1、hadoop-env.sh 指定jdk地址: export JAVA_HOME=/usr/java/jdk1.8.0_141;
2、core-site.xml 指定namenode监听的端口,临时文件存放地址
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/grid/hadoop2.7.3/tmp</value>
</property>
</configuration>
3、hdfs-site.xml:
configuration>
<property>
<name>dfs.replication</name>
<value>1</value> #因为单机,所以设置文件只要保存1份,系统默认是3份:
</property>
</configuration>
4、mapred-site.xml,mapreduce监听的端口
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
接下来,用命令bin/hdfs namenode -format 格式化HDFS,随即,用命令sbin/start-dfs.sh启动hadoop,如果成功,运行/usr/jdk1.8.0_141/bin/jps 会显示namenode进程。
在配置的过程中,回出现各种各样的错误,例如格式、拼写等低级错误,跟着报错一个个报过来;最后在普通用户权限下,无法创建localdomain.out等log文件,切换到root权限暂时解决。
上面是最基本、最简单的hadoop伪分布配置。接下来可逐步实现:配置ssh免密连接、完全分布集群。