一、规划目录结构
1.规划目录 /opt
sudo mkdir software
sudo mkdir modules
sudo mkdir datas
sudo mkdir tools
2.改变所有者和所有组
sudo chown -R beifeng:beifeng *
3.安装RZ工具
sudo yum -y install lrzsz
4.解压
tar -zxf hadoop-2.5.0.tar.gz -C /opt/modules/
tar -zxf jdk-8u144-linux-x64.tar.gz -C /opt/modules/
5.删除不用文件
$ cd /opt/modules/hadoop-2.5.0/share
$ rm -rf doc/
二、配置环境变量
1.位置:/etc/profile
#JAVA_HOME
export JAVA_HOME=/opt/modules/jdk1.8.0_144
export PATH=$JAVA_HOME/bin:$PATH
2.刷新
# source /etc/profile #刷新
3.查看版本
java -version
三、配置/opt/modules/hadoop-2.5.0/内置环境
说明:$ bin
,$ sbin
都是在/opt/modules/hadoop-2.5.0/
执行
1. etc/hadoop/hadoop-env.sh
export JAVA_HOME=/opt/modules/jdk1.8.0_144
2. etc/hadoop/mapred-env.sh
export JAVA_HOME=/opt/modules/jdk1.8.0_144
3. etc/hadoop/yarn-env.sh
export JAVA_HOME=/opt/modules/jdk1.8.0_144
4. etc/hadoop/core-site.xml
说明:主节点NameNode位置及交互端口
<configuration>
<!--- fs.defaultFS表示默认文件系统 --->
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop-senior02.ibeifeng.com:8020</value>
</property>
<!--- 运行时产生文件存储目录 --->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/modules/hadoop-2.5.0/data/tmp</value>
</property>
</configuration>
5. etc/hadoop/hdfs-site.xml
说明:系统中文件块的数据副本个数,是所有datanode总和,每个datanode上只能存放1个副本
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
6. etc/hadoop/salves
说明:配置在从节点DataNode的位置,直接添加主机名
hadoop-senior02.ibeifeng.com
7. 格式化HDFS文件系统
$ bin/hdfs namenode -format
8. 启动HDFS文件系统测试读写文件
$ sbin/hadoop-daemon.sh start namenode
$ sbin/hadoop-daemon.sh start datanode
(1)jps查看进程
$ jps
3348 DataNode
3494 Jps
3274 NameNode
(2)关闭防火墙
# firewall-cmd --state #查看防火墙状态
# systemctl stop firewalld.service #关闭防火墙
# systemctl disable firewalld.service #禁止防火墙开机启动
(3)登陆HDFS管理界面,windows界面
http://hadoop-senior02.ibeifeng.com:50070/explorer.html#/
(4)创建目录
$ bin/hdfs dfs -mkdir -p /user/hello/
(5)上传文件
$ bin/hdfs dfs -put etc/hadoop/core-site.xml /user/hello/
(6)读取文件
$ bin/hdfs dfs -cat /user/hello/core-site.xml
9.etc/hadoop/yarn-site.xml:
<configuration>
<!-- reduce获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定ResourceManager的位置 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop-senior02.ibeifeng.com</value>
</property>
</configuration>
10.etc/hadoop/mapred-site.xml
<configuration>
<!-- 指定MapReduce运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 配置历史服务器端口 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>hadoop-senior02.ibeifeng.com:10020</value>
</property>
<!-- 开历史服务器的WEB UI界面 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>hadoop-senior02.ibeifeng.com:19888</value>
</property>
</configuration>
11.启动yarn并开启历史服务器
$ sbin/yarn-daemon.sh start nodemanager
$ sbin/yarn-daemon.sh start resourcemanager
$ sbin/mr-jobhistory-daemon.sh start historyserver #启动历史服务器
12.yarn管理界面
http://hadoop-senior02.ibeifeng.com:8088/cluster
13.运行MapReduce WordCount程序
(1)创建wc.input
$ touch /opt/datas/wc.input
word shanghai
word newyork
word london
word japan
hello word
(2)创建测试目录(输入路径)
$ bin/hdfs dfs -mkdir -p /user/mapreduce/wordcount/input
(3)上传文件
$ bin/hdfs dfs -put /opt/datas/wc.input /user/mapreduce/wordcount/input
(4)运行程序
$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /user/mapreduce/wordcount/input /user/mapreduce/wordcount/output
(5)查看结果
$ bin/hdfs dfs -text /user/mapreduce/wordcount/output/part-r-00000
hello 1
japan 1
london 1
newyork 1
shanghai 1
word 5
MapReduce 会针对key进行排序