写在前面
hadoop的部署分为本地模式、伪集群模式、完全分布式部署,本小节主要介绍本地模式、伪集群模式。

本地模式

上一节安装完成之后,默认就是本地模式,下面我们在从测试环境下运行一个demo。

1.第一个示例

进入hadoop安装目录,执行如下命令。

  1. mkdir input
  2. cp etc/hadoop/*.xml input
  3. bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.0.jar grep input output 'dfs[a-z.]+'
  4. cat output/*

该demo主要是统计一个文件中单词的个数,下面截图是输出。
image.png

2.第二个示例

进入hadoop安装目录,执行如下命令。

  1. mkdir wcinput
  2. cd wcinput/
  3. vim wc.input
  4. cd ..
  5. bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.0.jar wordcount wcinput wcoutput
  6. cat wcinput/wc.input

其中文件wc.input内容如下,

  1. aaa bbb ccc
  2. bbb
  3. ddd
  4. test
  5. test
  6. aaa
  7. aaa

该demo中用户自定义个了一个输入,统计了输入的各个单词的数量。结果输出如下。
image.png

伪集群模式

1.配置hadoop-env.sh

Hadoop配置Jdk安装目录,进入到Hadoop的安装目录,找到文件 etc/hadoop/hadoop-env.sh

2.配置core-site.xml

image.png

  1. <configuration>
  2. <!-- 指定HDFS的namenode地址 -->
  3. <property>
  4. <name>fs.defaultFS</name>
  5. <value>hdfs://localhost:9000</value>
  6. </property>
  7. <!-- 指定hadoop运行时产生文件的存储目录 -->
  8. <property>
  9. <name>hadoop.tmp.dir</name>
  10. <value>/opt/module/hadoop-2.10.0/data/tmp</value>
  11. </property>
  12. </configuration>

3.配置hsfs-site.xml

  1. <configuration>
  2. <!-- 制定hdfs副本的数量 -->
  3. <property>
  4. <name>dfs.replication</name>
  5. <value>1</value>
  6. </property>
  7. </configuration>

4.启动集群

1)格式化namenode(第一次启动时格式化,以后就不要总格式化),格式化命令: bin/hdfs namenode -format,执行日志如下。
image.png
2)启动namenode
image.png
3)启动datanode
image.png
4)查看产生的日志
image.png
5)为什么只能第一次启动时进行格式化
格式化namenode会产生新的集群id,导致namenode和datanode的集群id不一致,最后集群启动不起来。所以格式化之前,需要删除掉data和log。

6)启动完成之后,可以访问地址 http://127.0.0.1:50070/dfshealth.html#tab-overview
image.png

5.配置yarn-env.sh

image.png

6.配置yarn-site.xml

  1. <configuration>
  2. <property>
  3. <name>yarn.nodemanager.aux-services</name>
  4. <value>mapreduce_shuffle</value>
  5. </property>
  6. <property>
  7. <name>yarn.nodemanager.env-whitelist</name>
  8. <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
  9. </property>
  10. </configuration>

7.配置mapred-env.sh

image.png

8.配置mapred-site.xml

  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. <property>
  7. <name>mapreduce.application.classpath</name>
  8. <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
  9. </property>
  10. </configuration>

9.启动集群

1)保证namenode和datanode已经启动
2)启动resourcemanger
image.png
3)启动nodemanager
image.png

4)集群监控,地址 http://127.0.0.1:8088/cluster
image.png

10.集群测试

1)创建一个测试文件
命令

  1. mkdir wcinput
  2. vim wcinput/wc.input

文件wc.input内容

  1. aaa bbb ccc
  2. bbb
  3. ddd
  4. test
  5. test
  6. aaa
  7. aaa

2)上传文件到hdfs
命令

  1. bin/hadoop fs -put wcinput /

效果
image.png

3)执行demo
命令
image.png

效果
image.png
image.png