14_hadoop
补充:
解决 linux 网卡丢失问题:
service NetworkManager stop
chkconfig NetworkManager off
重启网络
systemctl restart network
1.HDFS写流程 必会技能(面试可能会问)
操作:
hadoop fs -put ./wc.data /
hadoop fs -ls /
HDFS内部操作步骤:三大步
第一步:
client 调用FileSystem.crete(filepath)和老大进行【RPC】通信
nn会去检查这个路径的文件是否已经存在,是否有权限能够创建这个文件,
此时,任然没有写数据,不关联任何的block块
老大nn需要根据上传的文件的大小,块大小,和副本数
来计算要上传多少块和块存储在dn上的位置返回给客户端的【FSdataOutputStream】。
第二步:
客户端Client调用【FSdataOutputStream】对象
的write方法
将第一个代码块的第一个副本写在DN节点
写完去第二个DN节点写第二个副本
依次类推,当第三个副本写完就返回一个 ack package确认包给DN2节点,
当DN2节点接收到确认包再等自己写完,就返回一个ack package确认包给DN1
节点,DN1节点收到确认包,在等自己写完,就返回一个确认包给Client的【FSdataOutputStream对象】
表示三个副本都写完了
其他块依次类推。
第三步:
当所有的块写完调用Client的【FSdataOutputStrem对象】的close方法 告诉老大文件写完了
2.HDFS写流程:三大步
第一步:
Client客户端调用FS.open(filepath)
与老大NN进行【RPC】通讯,返回该文件的
部分或者全部block列表以【FSdataInputStream对象】输出
第二步:
Client调用【FSdataInputStream】对象的
read方法,去第一个块的最近的DN进行读取,待读取完成,会去check 如果都成功则关闭与DN的
通信,若读取失败则会记录当前节点及block信息,下次就不会从这个节点读取。那么九总第二个节
点读取 然后再去与第二个块的最近DN进行读取,依次类推
假如当block列表全部读取完成,文件还没有读完继续调用FS.open从NN获取下一批次的block列表
以此类推
第三步:
Client调用【FSdataInputStream】对象的close方法关闭输入流。
3.HDFS 副本放置策略 【面试,生产都会用到】
机架:rack
前提:副本数3,机架2
生产上读写操作,选择DN节点进行读取
第一副本:
1.放置在client上传的DN节点
2.Client 不一定在DN节点,随机选择一个DN
第二个副本:
放置在第一个副本的不同机架上的某个DN节点
第三个副本:
与第二个副本相同机架的不同节点上
补充:如果副本数更多,就随机放置
4.hdfs 安全模式
1.安全模式什么时候会打开?
1.启动hadoop时
2.hdfs故障时【eg:集群文件块带昂丢失,说明集群不稳定,会进入安全模式】
3.业务需要:集群维护
2.安全模式下的状态:
可读不可写
3.手动进入安全模式的命令
语法:hdfs dfsadmin -safemode <enter | leave | get | wait | forceExit>
补充:
linux:
1.app =》 pid
杀死进程:kill -9 pid 暴力杀死
补充:
kill -num pid
kill -15 pid 告诉进程运行完自动关闭
2.部署基础框架
mysql mysql用户
orcale orcale用户
hadoop 、hive hadoop用户
mysql:
1.每个查询命令 都有进程
命令:show processlist;
杀死进程 : kill id;
2.创建数据库
bigdata bigdata用户去管理
hive 创建一个hive用户
创建数据库流程:
create database dl2262;
grant all privileges on dl2262.* to dl2262 identified by '123456';
flush privileges;【刷新权限】
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)