赞
踩
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
NameNode(master)
1)负责客户端请求的响应
2)负责元数据(文件的名称、副本系数、Block存放的DataNodes)的管理
DataNodes(slave)
1)存储用户的文件对应的数据块(Block)
2)要定期向NameNode发送心跳信息,汇报本身及其所有的block信息,健康状况
副本系数
http://archive.cloudera.com/cdh5/cdh/5/
2.6.0-cdh5.7.0
wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.0.tar.gz
2)安装jdk
下载
解压到app目录:tar -zxvf jdk-7u51-linux-x64.tar.gz -C ~/app/
验证安装是否成功:~/app/jdk1.7.0_51/bin ./java -version
建议把bin目录配置到系统环境变量(~/.bash_profile)中
export JAVA_HOME=/home/hadoop/app/jdk1.7.0_51
export PATH=$JAVA_HOME/bin:$PATH
3)机器参数设置
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop001
vi /etc/hosts
192.168.199.200 hadoop001
127.0.0.1 localhost
ssh-keygen -t rsa
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
4)Hadoop配置文件修改:~/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop
配置Java目录export JAVA_HOME=/home/hadoop/app/jdk1.7.0_51
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop001:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/app/tmp</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
5)格式化HDFS
注意:这一步操作,只是在第一次时执行 ,每次如果都格式化的话,那么HDFS上的数据就会被清空
~/app/hadoop-2.6.0-cdh5.7.0/bin/hdfs namenode -format
看到下面日志表示成功
X X X X Xhas been successfully formatted.
6)启动HDFS
~/app/hadoop-2.6.0-cdh5.7.0/sbin/start-dfs.sh
验证是否启动成功:
jps
DataNode
SecondaryNameNode
NameNode
浏览器
http://hadoop001:50070/
7)停止HDFS
sbin/stop-dfs.sh
[hadoop@hadoop000 bin]$ ./hadoop Usage: hadoop [--config confdir] COMMAND where COMMAND is one of: fs run a generic filesystem user client version print the version jar <jar> run a jar file checknative [-a|-h] check native hadoop and compression libraries availability distcp <srcurl> <desturl> copy file or directories recursively archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive classpath prints the class path needed to get the credential interact with credential providers Hadoop jar and the required libraries daemonlog get/set the log level for each daemon s3guard manage data on S3 trace view and modify Hadoop tracing settings or CLASSNAME run the class named CLASSNAME Most commands print help when invoked w/o parameters. [hadoop@hadoop000 bin]$ ./hadoop fs Usage: hadoop fs [generic options] [-appendToFile <localsrc> ... <dst>] [-cat [-ignoreCrc] <src> ...] [-chgrp [-R] GROUP PATH...] [-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...] [-chown [-R] [OWNER][:[GROUP]] PATH...] [-copyFromLocal [-f] [-p] [-l] <localsrc> ... <dst>] [-copyToLocal [-p] [-ignoreCrc] [-crc] <src> ... <localdst>] [-count [-q] [-h] [-v] [-x] <path> ...] [-cp [-f] [-p | -p[topax]] <src> ... <dst>] [-df [-h] [<path> ...]] [-du [-s] [-h] [-x] <path> ...] [-find <path> ... <expression> ...] [-get [-p] [-ignoreCrc] [-crc] <src> ... <localdst>] [-getfacl [-R] <path>] [-getfattr [-R] {-n name | -d} [-e en] <path>] [-getmerge [-nl] <src> <localdst>] [-help [cmd ...]] [-ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] [<path> ...]] [-mkdir [-p] <path> ...] [-moveFromLocal <localsrc> ... <dst>] [-moveToLocal <src> <localdst>] [-mv <src> ... <dst>] [-put [-f] [-p] [-l] <localsrc> ... <dst>] [-rm [-f] [-r|-R] [-skipTrash] <src> ...] [-rmdir [--ignore-fail-on-non-empty] <dir> ...] [-test -[defsz] <path>] [-text [-ignoreCrc] <src> ...] [-touchz <path> ...] [-usage [cmd ...]]
hadoop fs -ls /
hadoop fs -cat /``hadoop fs -text /
hadoop fs -put /``hadoop fs -copyFromLocal /
hadoop fs -get /README.txt ./
hadoop fs -mkdir /hdfs-test
hadoop fs -mv
hadoop fs -rm
hadoop fs -rmdir
hadoop fs -rmr
==hadoop fs -rm -r
hadoop fs -getmerge
hadoop fs -mkdir /hdfs-test
### MapReduce
MapReduce
性能远低于Spark
并且只适合做离线处理不适合做实时处理和流式处理
Apache YARN (Yet Another Resource Negotiator) 是 hadoop 2.0 引入的集群资源管理系统。用户可以将各种服务框架部署在 YARN 上,由 YARN 进行统一地管理和资源分配。
The fundamental idea of MRv2 is to split up the two major functionalities of the JobTracker, resource management and job scheduling /monitoring, into separate daemons. The idea is to have a global ResourceManager (RM) and per-application ApplicationMaster (AM). An application is either a single job in the classical sense of Map-Reduce jobs or a DAG of jobs.
1 RM(ResourceManager) + N NM(NodeManager)
RM
提交任务ResourceManager
通常在独立的机器上以后台进程的形式运行,一个集群active状态的`ResourceManager`只有一个 ,它是整个 集群资源的主要协调者和管理者 。整个集群中有N个,负责单个节点的资源管理和使用以及task的运行情况
NodeManager
是 YARN 集群中的每个具体 节点的管理者 。
主要 负责该单个节点内所有容器的生命周期的管理,监视资源和跟踪节点健康 。具体如下:
ResourceManager
注册并定时发送心跳消息,等待 ResourceManager
的指令;Container
的生命周期,监控 Container
的资源使用情况和启停的各种命令;ApplicationMaster
的需要,在启动 Container
之前将需要的程序及其依赖拷贝到本地。每个应用/作业对应一个,负责应用程序的管理
在用户提交一个应用程序时,YARN 会启动一个轻量级的 进程 ApplicationMaster
。
ApplicationMaster
负责协调来自 ResourceManager
的资源,并通过 NodeManager
监视容器内资源的使用情况,同时还负责任务的监控与容错。具体如下:
ResourceManager
申请资源,为应用程序向RM申请资源(container),并分配给内部任务Container
是 YARN 中的 资源抽象 ,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。Container
表示的。Container
,该任务只能使用该 Container
中描述的资源。ApplicationMaster
可在 Container
内运行任何类型的任务。例如,MapReduce ApplicationMaster
请求一个容器来启动 map 或 reduce 任务client
向yarn集群
提交作业 , 首先①向ResourceManager
申请分配资源Resource Manager
会为作业分配一个Container(Application manager)
,Container
里面运行这(Application Manager)Resource Manager
会找一个对应的NodeManager
通信②,要求NodeManager
在这个container
上启动应用程序Application Master
③Application Master
向Resource Manager
申请资源④(采用轮询的方式通过RPC
协议),Resource scheduler
将资源封装发给Application master
④,Application Master
将获取到的资源分配给各个Node Manager
,并监控运行情况⑤Node Manage
得到任务和资源开始执行作业⑥Map Task
,结束后在执行Reduce Task
最后再将结果返回給Application Master
等依次往上层递交⑦[hadoop@hadoop001 hadoop]$ pwd
/home/hadoop/app/hadoop-2.6.0-cdh5.7.0/etc/hadoop
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
启动yarn:sbin/start-yarn.sh
验证是否启动成功
jps
ResourceManager
NodeManager
web: http://hadoop001:8088
停止yarn: sbin/stop-yarn.sh
提交mr作业到yarn上运行: wc
hadoop jar /home/hadoop/app/hadoop-2.6.0-cdh5.7.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0-cdh5.7.0.jar wordcount /input/wc/hello.txt /output/wc/
[hadoop@hadoop001 sbin]$ hadoop fs -ls /output/wc
20/10/16 05:17:27 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Found 2 items
-rw-r--r-- 1 hadoop supergroup 0 2020-10-16 04:54 /output/wc/_SUCCESS
-rw-r--r-- 1 hadoop supergroup 26 2020-10-16 04:54 /output/wc/part-r-00000
[hadoop@hadoop001 sbin]$ hadoop fs -cat /output/wc/part-r-00000
20/10/16 05:17:52 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
hello 2
welcome 2
world 1
Hive | RDBMS | |
---|---|---|
查询语言 | Hive SQL | SQL |
数据储存 | HDFS | Raw Device or Local FS |
索引 | 无(支持比较弱) | 有 |
执行 | MapReduce、 Tez | Excutor |
执行时延 | 高,离线 | 低 , 在线 |
数据规模 | 非常大, 大 | 小 |
Hive底层的执行引擎有:MapReduce、Tez、Spark
Hive on MapReduce
Hive on Tez
Hive on Spark
1)Hive下载:http://archive.cloudera.com/cdh5/cdh/5/
wget http://archive.cloudera.com/cdh5/cdh/5/hive-1.1.0-cdh5.7.0.tar.gz
2)解压
tar -zxvf hive-1.1.0-cdh5.7.0.tar.gz -C ~/app/
3)配置
系统环境变量(~/.bahs_profile)
export HIVE_HOME=/home/hadoop/app/hive-1.1.0-cdh5.7.0   **网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。** **[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618545628)** **一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!** -1.1.0-cdh5.7.0.tar.gz -C ~/app/` 3)配置 系统环境变量(~/.bahs\_profile)
export HIVE_HOME=/home/hadoop/app/hive-1.1.0-cdh5.7.0
[外链图片转存中…(img-Yu9AhKu8-1715100346159)]
[外链图片转存中…(img-lEJk38fR-1715100346159)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。