一:虚拟机安装
- VMware 创建虚拟机,配置centos7镜像文件,使用命令行模式对虚拟机进行操作,进入到虚拟机之后,使用cd /etc/sysconfig/network-scripts/对网卡设置静态Ip 、网关、DNS、mac地址(桥接模式),重启网卡:systemctl restart network ,查看ip地址使用ip addr 查看 (配置图形化的时候可以使用 ifconfig查看ip,没有安装图形化 就不能使用,没搞懂)
- 如果要使用xshell连接虚拟机,需要将虚拟机防火墙关闭:systemctl stop firewalld。永久关闭防火墙:systemctl disable firewalld,第一次连上虚拟机之后 ,可能会出现第二次连接不上 ,只能在vm的虚拟网络编辑器里面还原vm8的配置 ,修改虚拟机的ip地址、网关。修改/ect/selinux/config 的SELINUX=disabled
- 安装jdk ,将jdk压缩包上传到虚拟机,解压,在/ect/profile里面配置JAVA_HOME,如果存在openjdk 就先把openjdk卸载 载安装jdk。
- 安装hadoop,将hadoop压缩包上传到虚拟机,解压,在/ect/profile里面配置HADOOP_HOME.
5.让修改后的文件生效source /etc/profile
二:Hadoop本地运行模式
- 创建在hadoop-2.5.0文件下面创建一个input文件夹
[lb@hadoop101 hadoop-2.5.0]$ mkdir input - 将Hadoop的xml配置文件复制到input
[lb@hadoop101 hadoop-2.5.0]$ cp etc/hadoop/*.xml input - 执行share目录下的MapReduce程序
[lb@hadoop101 hadoop-2.5.0]$ bin/hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output ‘dfs[a-z.]+’ - 查看输出结果
[lb@hadoop101 hadoop-2.5.0]$ cat output/*
三;伪分布式运行模式
- 分析
(1)配置集群
(2)启动、测试集群增、删、查
(3)执行WordCount案例 - 执行步骤
(1)配置集群
(a)配置:hadoop-env.sh
Linux系统中获取JDK的安装路径:
[lb@ hadoop101 ~]# echo $JAVA_HOME
/opt/module/jdk1.7.0_80
修改JAVA_HOME 路径:
export JAVA_HOME=/opt/module/jdk1.7.0_80
(b)配置:core-site.xml
指定HDFS中NameNode的地址
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop101:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.5.0/data/tmp</value>
</property>
(c)配置:hdfs-site.xml
指定HDFS副本的数量
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
(2)启动集群
(a)格式化NameNode(第一次启动时格式化)
[lb@hadoop101 hadoop-2.5.0]# bin/hdfs namenode -format
(b)启动NameNode
[lb@hadoop101 hadoop-2.5.0]# sbin/hadoop-daemon.sh start namenode
(c)启动DataNode
[lb@hadoop101 hadoop-2.5.0]$ sbin/hadoop-daemon.sh start datanode
(3)查看集群
(a)查看是否启动成功
[lb@hadoop101 hadoop-2.5.0]$ jps
13586 NameNode
13668 DataNode
13786 Jps
(b)web端查看HDFS文件系统
http://hadoop101:50070
(4)操作集群
(a)在HDFS文件系统上创建一个input文件夹
[lb@hadoop101 hadoop-2.5.0]# bin/hdfs dfs -mkdir -p /user/atguigu/input
(b)将测试文件内容上传到文件系统上
[lb@hadoop101 hadoop-2.5.0]# bin/hdfs dfs -put wcinput/wc.input /user/lb/input/
(c)查看上传的文件是否正确
[lb@hadoop101 hadoop-2.5.0]# bin/hdfs dfs -ls /user/atguigu/input/
[lb@hadoop101 hadoop-2.5.0]# bin/hdfs dfs -cat /user/lb/ input/wc.input
(d)运行MapReduce程序
[lb@hadoop101 hadoop-2.5.0]# bin/hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /user/lb/input/ /user/atguigu/output
(e)查看输出结果
[lb@hadoop101 hadoop-2.5.0]# bin/hdfs dfs -cat /user/lb/output/*
(f)删除输出结果
[lb@hadoop101 hadoop-2.5.0]# hdfs dfs -rm -r /user/lb/output
- 启动YARN并运行MapReduce程序
(1). 分析
(1)配置集群在YARN上运行MR
(2)启动、测试集群增、删、查
(3)在YARN上执行WordCount案例
(2). 执行步骤
(2.1)配置集群
(a)配置yarn-env.sh
配置JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.7.0_80
(b)配置yarn-site.xml
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop101</value>
</property>
(c)配置:mapred-env.sh
配置JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.7.0_80
(d)配置:mapred-site.xml
[lb@hadoop101 hadoop-2.5.0]# mv mapred-site.xml.template mapred-site.xml
[lb@hadoop101 hadoop-2.5.0]# vi mapred-site.xml
指定MR运行在YARN上
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
(2.2)启动集群
(a)启动前必须保证NameNode和DataNode已经启动
(b)启动ResourceManager
[lb@hadoop101 hadoop-2.5.0]# sbin/yarn-daemon.sh start resourcemanager
(c)启动NodeManager
[lb@hadoop101 hadoop-2.5.0]# sbin/yarn-daemon.sh start nodemanager
(2.3)集群操作
(a)删除文件系统上的output文件
[lb@hadoop101 hadoop-2.5.0]# bin/hdfs dfs -rm -R /user/atguigu/output
(b)执行MapReduce程序
[lb@hadoop101 hadoop-2.5.0]# bin/hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/lb/input /user/lb/output
(d)查看运行结果
[lb@hadoop101 hadoop-2.5.0]# bin/hdfs dfs -cat /user/atguigu/output/*