week7 day 4 5

一、本地运行Hadoop 案例
1、官方grep案例
1)在hadoop-2.8.2文件下面创建一个input文件夹
[victor@node1 hadoop-2.8.2]$ pwd
/opt/module/hadoop-2.8.2
[victor@node1 hadoop-2.8.2]$ mkdir input

2)将hadoop的xml配置文件复制到input
[victor@node1 hadoop-2.8.2]$ pwd
/opt/module/hadoop-2.8.2
[victor@node1 hadoop-2.8.2]$ cp -r etc/hadoop/*.xml input/

3)执行share目录下的mapreduce程序
[victor@node1 hadoop-2.8.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.2.jar grep input output ‘dfs[a-z.]+’
[victor@node1 hadoop-2.8.2]$ cat output/*
1 dfsadmin

注意:output 不存在,不用提前创建,而且output不能提前存在

2、官方wordcount案例
1)在hadoop-2.8.2文件下面创建一个wcinput文件夹
[victor@node1 hadoop-2.8.2]$ pwd
/opt/module/hadoop-2.8.2
[victor@node1 hadoop-2.8.2]$ mkdir wcinput

2)在wcinput文件下创建一个wc.input文件
[victor@node1 hadoop-2.8.2]$ cd wcinput/
[victor@node1 wcinput]$ > wc.input
[victor@node1 wcinput]$ ls
wc.input

3)编辑wc.input文件
[victor@node1 wcinput]$ vi wc.input
hadoop hdfs yarn mapreduce
dfs hdfs hdfs yarn English victor
Yinggu haha
ip id id nat ict mat cctv cctv
保存退出 :wq

4)执行案列
[victor@node1 wcinput]$ cd …/
[victor@node1 hadoop-2.8.2]$ pwd
/opt/module/hadoop-2.8.2
[victor@node1 hadoop-2.8.2]$ bin/hadoop jar
share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.2.jar
wordcount wcinput wcoutput

注意:wcoutput 不存在,不用提前创建,本地模式不用上传到hdfs上
标黄部分,在本地模式是不执行的
[victor@node1 hadoop-2.8.2]$ bin/hadoop fs -put wcinput/ /user/victor/wcinput

5)查看结果
[victor@node1 hadoop-2.8.2]$ cat wcoutput/*
English 1
Yinggu 1
cctv 2
dfs 1
hadoop 1
haha 1
hdfs 3
ict 1
id 2
ip 1
mapreduce 1
mat 1
nat 1
victor 1
yarn 2

二、伪分布式运行Hadoop案例
1、启动HDFS并运行MapReduce程序
1)分析与准备
(1)准备1台客户机
(2)安装jdk
(3)配置环境变量
(4)安装hadoop
(5)配置环境变量
(6)配置集群
(7)启动、测试集群增、删、查
(8)执行wordcount案例
2)执行步骤
(1)配置集群
(a) 配置hadoop-env.sh
获取jdk 的安装路径
[victor@node1 hadoop-2.8.2]$ echo $JAVA_HOME
/opt/module/jdk1.8.0_144

修改JAVA_HOME 路径
[victor@node1 hadoop-2.8.2]$ vim etc/hadoop/hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

(b) 配置:core-site.xml

fs.defaultFS hdfs://node1:9000 hadoop.tmp.dir /opt/module/hadoop-2.8.2/data/tmp

© 配置:hdfs-site.xml

dfs.replication 1 dfs.permissions.enabled false

(2)启动集群
(a) 格式化namenode(第一次启动时格式化,以后就不要总格式化)
[victor@node1 hadoop-2.8.2]$ bin/hdfs namenode -format

(b) 启动namenode
[victor@node1 hadoop-2.8.2]$ sbin/hadoop-daemon.sh start namenode

© 启动datanode
[victor@node1 hadoop-2.8.2]$ sbin/hadoop-daemon.sh start datanode

(3)查看集群
(a) 查看是否启动成功
[victor@node1 hadoop-2.8.2]$ jps
13256 NameNode
13278 DataNode
13645 Jps

(b) 查看产生的log日志
[victor@node1 hadoop-2.8.2]$ pwd
/opt/module/hadoop-2.8.2
[victor@node1 hadoop-2.8.2]$ ls logs/
hadoop-victor-datanode-hadoop.victor.com.log
hadoop-victor-datanode-hadoop.victor.com.out
hadoop-victor-namenode-hadoop.victor.com.log
hadoop-victor-namenode-hadoop.victor.com.out

© web端浏览器查看HDFS文件系统
http://node1:50070/dfshealth.html#tab-overview

(4)操作集群
(a) 在hdfs文件系统上创建一个input文件夹
[victor@node1 hadoop-2.8.2]$ bin/hdfs dfs -mkdir -p /user/victor/wordcount/input

(b) 将测试文件内容上传到文件系统上
[victor@node1 hadoop-2.8.2]$bin/hdfs dfs -put wcinput/wc.input /user/victor/wordcount/input/

© 查看上传的文件是否正确
[victor@node1 hadoop-2.8.2]$ bin/hdfs dfs -ls /user/victor/wordcount/input/
[victor@node1 hadoop-2.8.2]$ bin/hdfs dfs -cat /user/victor/wordcount/input/wc.input

(d) 运行mapreduce程序
[victor@node1 hadoop-2.8.2]$bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.2.jar wordcount /user/victor/wordcount/input/ /user/victor/wordcount/output

尖叫提示:使用的是hdfs上的数据,当启动hdfs服务后,使用的都是hdfs上的数据

(e) 查看输出结果
命令行查看
[victor@node1 hadoop-2.8.2]$ bin/hdfs dfs -cat /user/victor/wordcount/output/*

浏览器查看

(f) 将测试文件内容下载到本地
[victor@node1 hadoop-2.8.2]$ hadoop fs -get /user/victor/wordcount/output/part-r-00000 ./wcoutput/

(g) 删除HDFS上的输出结果
[victor@node1 hadoop-2.8.2]$ hdfs dfs -rmr /user/victor/wordcount/output

2、YARN上运行MapReduce 程序
1)分析与准备
(1)准备1台客户机
(2)安装jdk
(3)配置环境变量
(4)安装hadoop
(5)配置环境变量
(6)配置集群yarn上运行
(7)启动、测试集群增、删、查
(8)在yarn上执行wordcount案例
2)执行步骤
(1)配置集群
(a)配置yarn-env.sh
获取jdk 的安装路径
[victor@node1 hadoop-2.8.2]$ echo $JAVA_HOME
/opt/module/jdk1.8.0_144

修改JAVA_HOME 路径
[victor@node1 hadoop-2.8.2]$ vim etc/hadoop/yarn-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

(b)配置yarn-site.xml

yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname node1 yarn.resourcemanager.nodes.include-path /opt/module/hadoop-2.8.2/etc/hadoop/dnrm

[victor@node1 hadoop]$ vim dnrm
node1
node2
node3

尖叫提示:可以先不配置,可以直接配置slaves

(c)配置mapred-env.sh
修改JAVA_HOME 路径
[victor@node1 hadoop-2.8.2]$ vim etc/hadoop/mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

(d)配置mapred-site.xml (对mapred-site.xml.template重命名为mapred-site.xml )
重命名mapred-site.xml文件
[victor@node1 hadoop-2.8.2]$ cd etc/hadoop/
[victor@node1 hadoop-2.8.2]$ pwd
/opt/module/hadoop-2.8.2/etc/hadoop
[victor@node1 hadoop]$ mv mapred-site.xml.template mapred-site.xml

添加配置

mapreduce.framework.name yarn

(2)启动集群
(a)启动resourcemanager
[victor@node1 hadoop-2.8.2]$ sbin/yarn-daemon.sh start resourcemanager

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页