今天,对hadoop分布式环境进行一些基本操作练习。
1,文件操作:
// 上传文件到hdfs
hdfs dfs -mkdir -p /user/hadoop
cd ~
touch test001.java
hdfs dfs -put test001.java
// 从hdfs下载文件
hdfs dfs -ls /user/hadoop
hdfs dfs -get test002.java
// 查看文件
hdfs dfs -cat test.py
// 删除文件
hdfs dfs -rm test.py
hdfs dfs -ls
2,运行Hadoop示例程序:
hdfs dfs -mkdir test
hdfs dfs -put ${HADOOP_HOME}/etc/hadoop/core-site.xml test/core-site.xml
hdfs dfs -ls test
hadoop jar ${HADOOP_HOME}/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.2.jar wordcount test/core-site.xml test/output
// 查看运行结果:
hdfs dfs -cat test/output/part-r-00000
3,hadoop理解:
•资源:在 YARN 的语境下,资源特指计算资源,包括CPU 和内存。计算机的每个进程都会占用一定的CPU 和内存,任务需要先向RM 申请到资源后才能获准在NM 上启动自己的进程。
•队列:YARN 将整个集群的资源划分为队列,每个用户的任务必须提交到指定队列。同时限制每个队列的大小,防止某个用户的任务占用整个集群,影响了其他用户的使用。
•Vcore& Mem:逻辑 CPU 和逻辑内存,每个NM 会向 RM汇报自己有多少 vcore和内存可用,具体数值由集群管理员配置。比如一台48核,128G内存的机器,可以配置40vcore,120G内存,意为可以对外提供这么多资源。具体数值可能根据实际情况有所调整。每个NM 的逻辑资源加起来,就是整个集群的总资源量。
•MinResources& MaxResources:为了使每个队列都能得到一定的资源,同时又不浪费集群的空闲资源,队列的资源设置都是“弹性”的。每个队列都有min 和 max两个资源值,min 表示只要需求能达到,集群一定会提供这么多资源;如果资源需求超过了min 值而同时集群仍有空闲资源,则仍然可以满足;但又限制了资源不能无限申请以免影响其他任务,资源的分配不会超过max 值。
•Container:任务申请到资源后在NM 上启动的进程统称Container。比如在MapReduce 中可以是Mapper 或Reducer,在Spark 中可以是 Driver或 Executor。
本文分享自 MiningAlgorithms 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!