Hadoop整理
-
一台服务器登录到另一台
a) Ssh + ip 例如ssh 192.168.56.100
b) 登录其他计算机,都要输入密码 免密的目的就是能够方便登录 -
Hadoop 分布式 启动的时候
a) 启动首先在namenode启动所有服务
b) 因为你datanode 是别的机器,不同服务器,必须有访问权限
c) 所以需要设置免密 否则在启动每台节点的时候,都会提示你输入密码 -
不超过十台配置,可以使用ssh-copyid命令去实现免密
-
如果集群超过十台,使用expect脚本去实现
-
ssh-copyid 命令
a) 首先要生成.ssh文件夹,这个文件夹在root下
b) Ssh-keygen -t rsa 其目的是生成 公钥和私钥文件 id_rsa.pub id.rsa
c) Ssh-copyid -i id_rsa.pub root@ip
d) 一般情况下,普通用户 useradd
e) 下ssh-keygen命令时,会生成一个图像
f) 实现自身免密 一般 cat id_rsa.pub>>authorized_keys(当前目录是/root/.ssh)
g) Chomod 600 authorized_keys
h) 第一个是属主 第二个属组 第三个其他用户
i) 所有用户免密 -
搭建hadoop
a) 1.jdk环境
b) 2.免密
c) 3.修改hosts文件
d) 4.修改配置文件
e) 5.启动hadoop集群 -
Jdk
a) 版本1.8
b) 环境变量 -
Hadoop文件(版本2.7.3)
a) 1.core-site.xml 核心文件
i. 指定NN位置
ii. 指定产生临时文件数据的文件夹
b) 2.hdfs-site.xml
i. 指定副本数量
ii. 进阶(配置多个NN)
iii. 进阶(配置SN节点)
c) 3.mapred-site.xml
i. 指定hadoop集群的资源管理框架为yarn
d) 4.yarn-site.xml
i. 指定ResourcesManage所在的节点
ii. 正常配置localhost 配置localhost 即代表 NN作为resourcesManage所在节点
e) 5.hadoop-env.sh
i. 指定jdk所在的目录
f) 6./etc/profile
i. 配置hadoop环境变量
ii. 其中包括hadoop common库所在的路径 Hadoop标准库所在路径
iii. Hadoop资源其他jar包所在路径
g) 7.slaves
i. 指定其他DN所在的ip
ii. 本身是localhost 需要修改 -
Hadoop文件系统基本命令
a) Hdfs dfs -mkdir -p /usr/soft 创建hdfs上的多级目录
b) Hdfs dfs -ls -R / 递归查看所有目录(一般不用)
c) Hdfs dfs -ls /usr/soft 查看具体的目录
d) Hdfs dfs get /usr/soft/aaa.txt 从hdfs上下载aaa.txt到linux本地
e) Hdfs dfs put /usr/soft/bbb.txt 将bbb.txt从linux本地上传到hdfs
f) Hdfs dfs -text /usr/soft/bbb.txt 查看bbb.txt 详细内容
g) Hdfs dfs -cat /usr/soft/aaa.txt 查看aaa.txt 内容
h) Hdfs dfs -rm /usr/soft/aaa.txt 删除命令
i) 注意:当hadoop集群非正常关闭时,可能会自动进入安全模式
i. 退出hadoop安全模式命令:
ii. Hdfs dfsadmin -safemode leave -
HDFS 上传文件过程
a) 1.客户端发送上传请求到NN
b) 2.NN识别 上传的文件是否在相应目录下,或者相应文件,目录是否存在
c) 3.NN发送可以写入文件的反馈给客户端
d) 4.客户端将请求发送到DN(根据客户端来定)DN是具体存放数据的位置
e) 5.DN将上传信息根据备份策略,发送到所有存放副本的DN
f) 6.加入我们又三台DN DN1通知DN2,DN2通知DN3,然后开始发送DN3确认后发送相应给DN2,DN2确认后,发送相应给DN1,然后DN1通知NN响应完毕,NN告知DN,开始写入,DN1写入完后,将副本发给DN2,然后依次发给DN3,当所有节点写完后,发送反馈给NN。
g) NN确认写完后,由SN配合NN进行数据操作日志文件的合并,该文件叫fsimage,当fsimage过大时,会合并成edit文件,并删除原有的fsimage文件,合并完成后,NN将目录写入自身元数据中。
h) PS:SN并不是NN的备份,而是协助NN生成数据操作的日志文件的节点。
i) 谈及文件恢复:
j) 当文件因不可控因素丢失时,可以通过fsimage或者edit文件 进行读写操作的恢复 -
HDFS 副本机制:
a) 一般 副本设置为3
b) 如果集群分为两台机架
c) 第一个副本,建立在同一机架的不同机器上
d) 第二个副本,建立在不同机架的不同机器上
e) 第三个副本,建立在与第二副本不同的机器上
f) 目的:保证HDFS分布式文件系统的高可用性 -
HDFS
a) 分布式文件系统
b) Hadoop1.x 块大小:64M
c) Hadoop2.x 块大小:128M -
Maven
a) 工程管理工具,能够方便的构建pom.xml工程配置文件
b) 在pom.xml下可以增加 我们需要的jar 也就是依赖
c)
d) https://mvnrepository.com/
e)
f)
g)
h) -
Hadoop jar wc.jar com.kgc.driver.WCDriver /输入文件目录 /输出目录
a) 输出目录必须不存在 -
MR maven wc
MR:
-
分布式计算框架
-
继承mapper reducer即可
Hive:搭建在hadoop上的壳 用于简化mapreduce操作
元数据:存放表结构的表
内部表,外部表
内部表:删除表 数据 表结构都删除
外部表:只删除表结构 不删除数据文件
内部表在加载数据文件时,只能加载hive维护目录下的文件
外部表可以任意加载hdfs上的文件