伪分布式运行Hadoop 案例-03

本地文件运行Hadoop 案例-02

https://blog.csdn.net/kxj19980524/article/details/88935171

HDFS上运行MapReduce 程序

notpad++连接虚拟机修改配置文件https://blog.csdn.net/kxj19980524/article/details/88655985

修改hadoop-env.sh文件,env结尾的文件都是修改里面的java路径

修改core-site.xml,指定Namenode路径

下面这是用的notpad++的ftp功能,这个属性官网上查到默认是在本地的file:///三个斜杠表示本地的意思.修改成自己的ip地址.因为现在是为分布式,都在一台电脑上,所以配一个地址就可以了.hadoop101是我在/etc/hosts文件里配置过的.

<!-- 指定HDFS中NameNode的地址 -->
<property>
	<name>fs.defaultFS</name>
    <value>hdfs://hadoop101:8020</value>
</property>

修改hdfs-site.xml,指定副本数个数

dfs副本数默认是3个,因为现在就一个节点,所以配置为1

第一次启动伪分布式集群,先格式化namenode

hdfs namenode -format 格式化namenode ,注意,以后所有操作都在自己创建的那个用户权限下执行命令

ps表示查看进程,jps表示查看java的进程,现在是什么都没有的

sbin/hadoop-daemon.sh start namenode 启动namenode进程

启动datanode   sbin/hadoop-daemon.sh start datanode

启动失败的话,这里有启动的日志可以查看错误.这种以log结尾的文件就是启动日志文件

hadoop还提供了一个hdfs的web页面端口为50070,红框框的点一下进去就是hdfs的存放路径,这页面只能查看,不能修改

在hdfs上创建文件夹hadoop fs 和 bin/hdfs dfs是等价的,-p表示创建多级目录

hadoop fs -mkdir -p /user/kxj/input

bin/hdfs dfs -mkdir -p /user/kxj/input

-R表示递归查询/目录下的所有文件

hadoop fs -put wcinput/wc* /user/kxj/input把测试文件上传到hdfs上去

在hdfs上执行程序,只需要把后面的输入输出路径改为hdfs上的路径就可以了

 hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/kxj/input /user/kxj/output 

可以下载下来进行查看

hadoop fs -cat /user/kxj/output/part-r-00000使用操作命令进行查看,一般后面跟的都和linux命令相似

hadoop fs -rmr /user/kxj/output 删除hdfs上的文件夹,rmr表示递归删除

在yarn上运行wordcount程序

修改这两个文件里的java路径yarn-env.sh     mapred-env.sh

修改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>

对mapred-site.xml.template重新命名为 mapred-site.xml,然后编辑它,指定mapreduce运行在yarn上.默认是在本地运行.

 mv mapred-site.xml.template mapred-site.xml 

<!-- 指定mr运行在yarn上 -->
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>

然后启动集群,先启动namenode,datanode,再启动resourcemanager,nodemanager

sbin/yarn-daemon.sh start resourcemanager   

sbin/yarn-daemon.sh start nodemanager    

8088端口就是运行mapreduce程序进度

然后进行测试,首先把上面测试完后生成的output文件删掉

然后还是执行上面的那个执行命令,就会发现在yarn上运行的时候就会有进度条了,这就是yarn在资源管理.

hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/kxj/input /user/kxj/output

猜你喜欢

转载自blog.csdn.net/kxj19980524/article/details/88940888