一、Hadoop运行环境搭建
把java和hadoop的压缩文件拷贝到服务器,路径是:
解压java和hadoop,解压命令以及路径
1 2 3
| 解压路径以及解压的位置 tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/ tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/
|
配置java和hadoop的环境变量
1 2 3 4 5 6 7 8 9 10 11 12 13
| # 在 /etc/profile 文件末尾添加JDK和hadoop路径 #JAVA_HOME export JAVA_HOME=/opt/module/jdk1.8.0_144 export PATH=$PATH:$JAVA_HOME/bin
##HADOOP_HOME export HADOOP_HOME=/opt/module/hadoop-2.7.2 export PATH=$PATH:$HADOOP_HOME/bin export PATH=$PATH:$HADOOP_HOME/sbin
# 重新载入配置文件 source /etc/profile
|
配置本地的hosts和hostname
1 2 3 4 5 6 7 8 9 10 11
| 本地虚拟机的外网地址是192.168.1.111,给本机起名为:hadoop111 配置 /etc/hostname 文件里面就写一行: hadoop111
配置 /etc/hosts 里面写多个机器地址: 192.168.1.111 hadoop111 hadoop111.com 192.168.1.112 hadoop112 hadoop112.com 192.168.1.113 hadoop113 hadoop113.com
|
二、本地运行模式-官方WordCount案例
1
| [atguigu@hadoop101 hadoop-2.7.2]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput wcoutput
|
三、分布式运行模式
1)、启动HDFS并运行MapReduce
第一步、配置集群
1. 把JAVA_HOME改成绝对路径
1 2 3 4 5
| [atguigu@ hadoop101 ~]# echo $JAVA_HOME /opt/module/jdk1.8.0_144
修改/etc/profile中的JAVA_HOME 路径: export JAVA_HOME=/opt/module/jdk1.8.0_144
|
2.修改core-site.xml
把输入输出文件地址从本地改成HDFS上去,同时指定日志文件路径。
1 2 3 4 5 6 7 8 9 10 11
| <property> <name>fs.defaultFS</name> <value>hdfs://hadoop111:9000</value> </property>
<property> <name>hadoop.tmp.dir</name> <value>/opt/module/hadoop-2.7.2/data/tmp</value> </property>
|
3.配置:hdfs-site.xml
指定HDFS文件的备份数量,原来默认的值是3,改成1
1 2 3 4 5
| <property> <name>dfs.replication</name> <value>1</value> </property>
|
第二步、启动集群
1.格式化namenode
1 2 3 4 5
| [atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs namenode -format # 第一次直接格式化,之后格式的时候要分几步操作 # 1.先停掉jps里面的程序 # 2.删除 data和tmp文件夹 # 3.再执行格式化命令
|
2.启动namenode和datanode
1 2 3 4 5 6
| [atguigu@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start namenode [atguigu@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start datanode
# 停止命令 [atguigu@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh stop namenode [atguigu@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh stop datanode
|
3.查看集群启动情况和日志
1 2 3 4 5 6 7 8 9 10 11
| # 1.查看是否启动成功 [atguigu@hadoop101 hadoop-2.7.2]$ jps 13586 NameNode 13668 DataNode 13786 Jps
# 2.web端查看HDFS文件系统 http://hadoop101:50070/dfshealth.html#tab-overview
# 3.查看产生的Log日志 /opt/module/hadoop-2.7.2/logs
|
第三步、操作集群
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| #1.在HDFS文件系统上创建一个input文件夹 [atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -mkdir -p /user/atguigu/input
#2.将测试文件内容上传到文件系统上 [atguigu@hadoop101 hadoop-2.7.2]$bin/hdfs dfs -put wcinput/wc.input /user/atguigu/input/
#3.查看上传的文件是否正确 [atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -ls /user/atguigu/input/ [atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /user/atguigu/ input/wc.input
#4.运行MapReduce程序 [atguigu@hadoop101 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/atguigu/input/ /user/atguigu/output
#5.查看输出结果 [atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /user/atguigu/output/*
#6.将测试文件内容下载到本地 [atguigu@hadoop101 hadoop-2.7.2]$ hdfs dfs -get /user/atguigu/output/part-r-00000 ./wcoutput/
#7.删除输出结果 [atguigu@hadoop101 hadoop-2.7.2]$ hdfs dfs -rm -r /user/atguigu/output
|
2)、启动YARN并运行MapReduce程序
第一步、配置集群
配置yarn-env.sh中的JAVAHOME的绝对路径
1 2 3 4
| [atguigu@ hadoop101 ~]# echo $JAVA_HOME /opt/module/jdk1.8.0_144
export JAVA_HOME=/opt/module/jdk1.8.0_144
|
配置:yarn-site.xml
1 2 3 4 5 6 7 8 9 10 11 12
| <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property>
<property> <name>yarn.resourcemanager.hostname</name> <value>hadoop111</value> </property>
|
配置:mapred-env.sh中的JAVAHOME
配置:mapred-site.xml
(对mapred-site.xml.template重新命名为mapred-site.xml)
1 2 3 4 5 6 7 8 9
| [atguigu@hadoop101 hadoop]$ mv mapred-site.xml.template mapred-site.xml [atguigu@hadoop101 hadoop]$ vi mapred-site.xml
<!-- 指定MR运行在YARN上 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
|
第二步、启动集群
1 2 3 4 5 6 7 8
| 1.初次启动一定先格式化每个机器,并且删除 data/和 logs/文件夹 bin/hdfs namenode -format
2.在namenode节点启动hdfs sbin/start-dfs.sh
3.在yarn节点启动yarn sbin/start-yarn.sh
|