目录
一、大数据及Hadoop入门
1.1 单节点、分布式、集群
1.1.1 大数据的概念
大数据的5v特点
Volume:大量
Velocity:高速
Variety:多样
Value:价值
Veracity:真实性
1.1.2 大数据的本质
大数据的本质就是利用计算机集群来处理大批量的数据,大数据的技术关注点在于如何将数据分发给不同的计算机进行存储和处理。
✳ 1)单台计算机存储这些数据都是很困难的,那怎么办?
答:分发到不同的计算机存储。
✳ 2)只存储有没有意义?
答:无意义,存储是需要投入场地,投入服务器硬件设施,都需要钱维护。
✳ 3)那存储后需要什么?怎么样让存储变得有意义?
答:认真分析,真正地把数据转换成有价值的虚拟产品。
二、HDFS Shell命令
2.1、常用相关命令
hdfs dfs-cat //查看
hdfs dfs-copyFromLocal //从本地复制
hdfs dfs-copyToLocal //复制至本地
hdfs dfs-cp //复制
hdfs dfs-get //获取
hdfs dfs-ls //查看
hdfs dfs-mkdir //创建文件
hdfs dfs-put //传输
hdfs dfs-rm //删除
2.2、上传文件
2.2.1、上传文件介绍
(1)全称形式
hdfs dfs-put ./file hdfs://hadoop1:9000/
hdfs dfs-copyfromlocal ./file hdfs://hadoop1:9000/
(2)省略写法
hdfs dfs-put ./file /
hdfs dfs-copyfromlocal ./file /
问题:为什么能够省略具体hdfs对应ip地址呢?
答:配置了core-site.xml
2.2.2上传文件操作
-put方式上传
[root@hadoop1 ~]# cd /home/java
[root@hadoop1 java]# ls
jdk jdk_1.8.0_131.tar.gz
[root@hadoop1 java]# hdfs dfs -put ./jdk_1.8.0_131.tar.gz hdfs://hadoop1:9000/
-copyFromLocal方式上传
[root@hadoop1 ~]# cd /home/java
[root@hadoop1 java]# ls
jdk jdk_1.8.0_131.tar.gz
[root@hadoop1 java]# hdfs dfs -put ./jdk_1.8.0_131.tar.gz hdfs://hadoop1:9000/
2.3、下载文件
hdfs dfs -get HDFS的根路径下的文件 本地的文件系统
hdfs dfs -get hdfs://hadoop1:9000/hadoop-2.6.1.tar.gz ./
hdfs dfs -copyToLocal /jdk_1.8.0_131.tar.gz ./
前面一个/代表HDFS的根路径,后面一个/代表Linux的根路径
2.4、删除文件
rm -rf dir 删除Linux本地文件系统中对应目录
hdfs dfs -rm /hadoop-2.6.1.tar.gz 删除hdfs文件系统中的内容
hdfs dfs -rm -r /dir 删除目录和子目录
2.5、创建目录
hdfs dfs -mkdir /dir 一个目录,不是递归目录
hdfs dfs -mkdir -p /dir1/dir2 递归目录
2.6、查看文件系统
hdfs dfs -ls /
2.7、拷贝文件
cp jdk_1.8.0_131.tar.gz jdk_1 将后者拷贝到前者所在的文件夹中 Linux本地执行
hdfs dfs -cp /jdk_1.8.0_131.tar.gz /jdk1 HDFS文件系统中
三、分布式系统原理
3.1、数据块
把数据切分成一个个固定大小的块(物理切分,不是逻辑切分),将这些块存储到分布式文件系统上
四、HDFS架构
HDFS的文件是在物理上分块存储的 (hadoop2.x版本它的默认blocksize大小128M)
五、Datanode服役(上线)和退役(下线)
5.1分发到其他节点
scp /home/hadoop/hadoop-2.6.1/etc/hadoop/slaves hadoop2:/home/hadoop/hadoop-2.6.1/etc/hadoop/ 分发到其他节点
5.2、格式化并启动HDFS
hdfs namenode -format
start-dfs.sh
格式化,并启动HDFS
5.3、更新hdfs
hdfs dfsadmin -refreshNodes
六、Centos权限管理
6.1、权限介绍
每一组信息如“rwx”,每一个字符都有它自己的特定含义且先后位置是固定的,其中r是读权限、w是写权限、x是可执行权限、-没有对应字符的权限
Linux里面对这些字符设置对应的数值,r是4,w是2,x是1,-是0。“rwx”则是7(=4+2+1)
6.2、修改权限
修改文件夹及子文件夹所有文件
chown 或 chomd -R “权限”或“名:组” 文件夹名称
七、HDFS进程启动流程
DataNode:负责数据块的存储,它是HDFS的小弟
Namenode:负责元数据的存储,接收客户端的请求,维护整个HDFS集群的目录树
Secondary:辅助namenode管理,分担namenode压力
八、Hadoop配置文件解释
8.1 hadoop内核和环境配置
(1)hadoop-env.sh:配置JDK的路径
(2)core-site.xml:配置Hadoop集群的元数据存储路径,配置主节点在哪一台机器上
<configuration><property><name>fs.defaultFS</name><value>hdfs://hadoop1:9000</value>指定namenode将来在哪一台节点启动,通信端口是9000,是fileSystem默认的端口号</property><property><name>hadoop.tmp.dir </name><value>/usr/hadoop-2.6.1/hdpdata</value>指定元数据存储的路径,hdpdata是在执行 hdfs namenode -format后才会自动生成</property></configuration>
8.2、mapreduce配置
主要配置mapred-site.xml
MR资源调度用Yarn
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property></configuration>
8.3、yarn配置
配置yarn-site.xml
<configuration><property><name>yarn.resourceManager.hostname</name><value> hadoop1 </value>配置Yarn老大【resourceManager】将来在哪一台节点启动,注意是自己的master</property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>yarn的子服务,必须使用mapreduce_shuffle</property></configuration
8.4、slaves配置
[root@hadoop1 hadoop]# cat /home/hadoop/hadoop-2.6.1/etc/hadoop/slaveshadoop1hadoop2hadoop3指定datanode将来在哪台节点启动
注:在一台节点上的相关配置修改,要分发到全部集群上
例:
[root@hadoop1 hadoop]#scp mapred-site.xml hadoop2:/home/hadoop/hadoop-2.6.1/etc/hadoop
九、hdfs及yarn启动验证:进程启动命令
namenode -format
格式化HDFS的作用是初始化集群
(1)HDFS的相关进程:
Namenode(老大)
Datanode(小弟)
SecondaryNameNode(checkpoint节点)
(2)Yarn相关进程
Resourcemanager(老大)
Nodemanager(小弟)
hdfs和yarn相关进程都启动后,hdfs集群管理页面和yarn管理界面才可访问成功
start-dfs.sh
start-yarn.sh
这两个命令等效于start-all.sh
kill - 9
强制杀死该进程
hadoop-daemon.sh start namenode
单独启动HDFS相关的进程