数据1:hadoop,hdfs,yarn,linux命令,shell脚本讲解
1.描述一下hadoop的三大核心和四大模块
hadoop三大核心:HDFS,MapReduce,yarn
hadoop四大模块:
1.hadoop common:为其他hadoop模块提供基础设施
2·hadoop hdfs:一个高可靠,高吞吐量的分布式文件系统
3.hadoop mapreduce:一个分布式的离线并行计算框架
4.hadoop yarn:一个新的mapreduce框架,任务调度与资 源管理
2.table
1.自动补全命令或目录
2.在某个目录下只有一个目录时无需输入首字母敲tab自动补全目录
3双击tab:显示所有命令
列出某个目录下的所有文件
3.各种命令复习?
关机:init 0
shutdown -h now//把now改成数字对应的分钟数
重启:init 6 或 reboot
ctrl+c:强制退出
ctrl+Alt:退出虚拟机界面
ctrl+G:进入虚拟机界面
clear:清空
cd ./当前目录
cd ../ 返回上一级目录
cd - 返回上一次操作目录
cd~ 回到root用户下的家目录
ls 列出当前目录下的所有目录
pwd 显示当前目录
4.创建用户
#useradd 用户名
#passwd 用户名
查看用户名:cat /etc/passwd
查看用户密码:cat /etc/shadow
#id 用户名 查看用户信息
#groups 用户名 查看用户所属组
5.修改密码的三种方式
1.#passwd 用户名 回车,然后输入新密码
2.echo "123" | passwd --stdin 用户名
3.暴力破解:
1.先进入虚拟机界面后,再3秒内按回车,进入
2.选项菜单按e进入编辑模式
3.编辑kernel那行 输入空格1 或者 single
4.按B重启
5.进入后执行下列命令
root@passwd root
Enter new Unix passwd :输入新密码
6. 执行命令 root@init 6或 reboot
6.删除用户
userdel 用户名
只删除用户信息不删除文件
7.用户切换
su 普通用户用户名
su -等于 su root
输入root用户密码
8.用户组
1.添加
groupadd组名
2.删除groupdel 组名
3.添加用户组到指定用户组
useradd -g 组名 -d 路径 用户名
添加用户组
useradd -g 组名 用户名
4.修改用户到指定用户组
usermod -g 组名 -d 路径 用户名
修改用户组
usermod -g 组名 用户名
5.查看用户组
#cat /etc/group
6.查看用户
who am i//显示用户名,组名,时间
whoami //只显示用户名
who//用户连接方式
7给普通用户执行root用户
添加权限
chmod 777 /etc/sudoers
chmod u+w /etc/sudoers
u用户;g同组用户;o其他用户;a所有用户
例子vi /etc/sudoers
按i修改
enter换行
aa All=(root)NOPASSWD:ALL
保存退出:按ESC :wq
q!强制退出
生效方法
1.source /etc/sudoers //使修改操作生效
2.重启虚拟机:init 6或reboot
9.创建文件和目录
建目录:mkdir 目录名
touch 文件名
2.复制文件
cp 源文件名 改后文件名
3.复制目录
cp -r 源文件的名 改后文件的名
4.移动、剪切、重命名
mv 源文件名 改后文件名
5.删除
#rm 文件名//删除文件
#rm -rf 文件名//删除文件且不可恢复
6.查看文件内容
#cat -n 文件名//有行号显示文件内容
#cat 文件名 //无行号显示文件内容
7.显示文件前。。行,后。。行(不常用)
head 文件名//默认查看前10行
tail 文件名//默认查看后10行
8.head -3:显示开头前3行
tail -3:显示结尾后3行
9.追加文本内容
echo "aaa">chen 追加覆盖原来内容
echo "mmm">>chen 追加不覆盖原来内容
10.vim文件名和vi文件名
vim是高级文本编译器,可以带颜色
vi是低级文本编辑器,不带颜色
相同点:命令行模式一样,功能一样
11.打包
1.打包多个文件和目录
tar -zcvf b.tar chen.txt a b
2.解包
不指定解包位置
tar -xvf a.tar
指定解包位置
tar -xvf a.tar -c /home/aa
12.查询命令,locate、which、find的区别?
locate 和which 功能一样,locate的查询效率比which快
find的运行效率最低
13.给shell命令起别名
vi /etc/bashrc
alias hk=`clear`
ESC :wq
14.linux网络安全
装完vmware之后把ip改成自己习惯的,必须确保本机与虚拟机在同一网段
,这样才能联通机子,不然无法联通
虚拟机和本机通过vmware NET1连接
字节码:255.255.255.0等于24
15.hadoop集群的三种模式
1.单机
一个节点一台机子
2.伪分布
一个节点模拟多个节点
3.全分部
真是集群,有多个节点组成
16.什么是linux???
linux是一套免费使用和自由传播的类Unix操作系统,是一
个基于 POSIX和UNIX的多用户、多任务、支持多线程和多CPU的
操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。
它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思
想,是一个性能稳定的多用户网络操作系统。
17…hadoop的三个版本?
Apache Hadoop
CDH
HDP
18.hadoop的环境支持?
jdk
hadoop
19.安装hadoop??
1.查看防火墙状态
service iptables status
2.修改主机名
vi /etc/syconfig/netork//修改主机名
改MAC地址,UUID(改1-2位,16进制),
改:ONBOOT=yes //默认是开机不启动,改成开机启动
改: BOOTPROTO=none //是否启动PROTO协议 dhcp表示通过路 由器动态获取地址,没有路由就把它先关了,再写IP地址
(添加下面所有内容)
IPADDR=192.168.10.10
PREFIX=24 或255.255.255.0 //子网掩码 24代表三个网段255
GATEWAY=192.168.10.254 //网关,是VMware1的IP,它将通过 这个机子与其他任何机子互连
DEFROUTE=yes //是否开启默认路由
NAME="System eth0" //给网卡起名(为了其他软件对此网卡进 行管理)
4. vi /etc/hosts修改映射文件
192.168.10.31 beicai01
192.168.10.32 beicai02
192.168.10.33 beicai03
5.重启网卡或重启虚拟机
#service network restart
init 6或reboot
6.ping 名或ip
7.用wsc导入所需要的包
mv 包名
8.解包
9.修改系统环境变量
#vi /etc/profile
把pathmunge (){那行往下移
然后插入
export JAVA_HOME=/opt/bigdata/jdk/
export HADOOP_HOME=/opt/bigdata/hadoop/
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:
# source /etc/profile //使修改后的系统生效
10.校验
#java //检测jdk是否安装成功
#hadoop //检测hadoop是否安装成功
20.集群
快照:对虚拟机的当前状态进行拍照,保存现在的状态
注意:写注释
克隆:一对一,一对多
分类:连接克隆:
仅仅是克隆出一个虚拟机的地址
完整克隆
克隆原来虚拟机的所有信息
21.hadoop三大核心
hdfs集群
yarn集群:分布式资源管理系统,yarn是一个通用的计算框架
mapredouce:适合计算机组成的分布式文件的大量数据计算
hadoop的四大模块
common:是hadoop的基础设施,为其他模块提供服务
hdfs;hadoop的分布式存储系统
mapredouce:hadoop的计算框架
yarn:一个分布式资源广利系统
22.测试hadoop
测试hadoop
1.hdfs hadoop分布式文件存储系统测试
上传文件到hdfs:
hdfs dfs -put 要上传问文件存储系统的路径
hdfs dfs -put /home/opt/bigdata/chen.txt
查看文件是否上传成功
hdfs dfs -ls/ /显示当前hdfs文件系统下的文件
从hdfs下载到本地:
hdfs dfs -get 上传文件的路径 hdfs存储系统存储文件的路径
2.验证yarn
yarn jar /opt/hadoop-2.7.2/share/hadoop/mapreduce/hadoop- mapreduce-exampls-2.7.2.jar wordcount /wc.txt/out/1
(来源:/mr/input/redhat.txt 目的:/mr/output/out1)
# hadoop fs -lsr / 复制/mr/output/out1/part-r-00000
# hadoop fs -text /mr/output/out1/part-r-00000
3.查看web系统
查看hdfs
h1:50070
查看yarn
h1:8088
查看集群历史服务
h1:19888
23.集群的启动方式
1.start-dfs.sh
2.start-yarn.sh
24.启动yarn的协议
yarn-daemon.sh start proxyserver
25.单进程启动
1.先启动dfs进程:
启动namenode
datanode
ResourceManager
NodeManager
组件:1.datanode
2.namenode
3.secondarynamenode
sbin/hadoop-daemon.sh start datanode//启动datanode的jps进程
hadoop-daemon.sh start namenode
hadoop-daemon.sh start secondarnamenode
再启动yarn进程:
yarn-daemon.sh start nodemanager
yarn-daemon.sh start resourcemanager
26.如何启动历史服务?
#mr-jobhistory-daemon.sh start historyserver
27.启动proxyserver服务?
yarn-daemon.sh start proxyserver
28.hadoop的特点
优点:
1.高可靠:
按位存储,数据就近原则
2.高扩展:
集群节点可以根据业务需求随时扩展和缩减
3.高效性
可以在各个集群节点之间动态的移动数据,并保证集群间的各个系欸但动态平衡
4.高容错
hadoop能自动保存多个副本
缺点:
1.不适合高校存储文件大小
2.不适合低延迟数据访问
3.不支持多用户的写入和修改操作
29.hadoop能够干什么?
数据挖掘,收集数据,计算,数据展现
30.hdfs的底层架构-分布式文件存储系统
基于物理层存储的分布式
基于客户端/服务器
31.hdfs基本概念
hdfs是一个分布式文件存储系统
hdfs是用java语言来实现分布式的,可扩展文件系统
hdfs是hadoop的三大核心四大模块之一
hdfs主要用于海量数据存储
hdfs基本存储单位:块(是最小的数据读写单位)
块的默认单位是:byte
块的好处:
有个文件的大小可以大于集群的任意磁盘容量
适合用于数据备份们提供了容错能力和可用性
32.namenode:主节点集群老大,存放元数据信息
元数据:命名空间,块的生成空间,大小,文件目录
记录每个数据块在datanode的位置和副本信息
协调客户端对文件访问
更新影像文件
33.secondaryNameNode()
合并namenode的edit logs到fsimage文件中
datanode:
小弟,负责存储数据
一次写入,多次读取
数据文件以块存储
33.hdfs的读操作
1.客户端与namenode通讯获取文件的快位置信息,其中包括了块的 所有冗余备份的的位置信息:Datanode的列表
2.客户端获取文件位置信息后直接同有文件块的datanode通讯,读取文件
3.如果第一个datanode无法连接,客户端将自动连接下一个datanode
4.如果块数据的校验值出错,则客户端需要向namenode报告,并自动连接下一个datanode
34.hdfs的写如操作
客户端访问namenode,获取元数据信息,namenode判断文件是否存在
如果存在,返回客户端不可写入
如果不存在,返回客户端,datanode信息
缓存第一个块到本地
缓存块成功后,namenode会给客户端返回一个datanode的列表
列表中是改块可以存放的位置,包括冗余备份
客户端随机连接到datanode,把第一个块存放起来并备份
后续读取文件所有的块重复以上操作,知道文件所有块的写入完成
删除本地缓存
记录文件信息到edits文件中,并更新到namenode的元数据到内存中
知道所有的操作完成,写操作完成
35.hdfs高可靠
按位存储,就近原则
hdfs的机架策略:
集群节点放在不同机架上
机架宽带比机架内宽带要小(传输速度块)
一个机架存放两个副本:防止数据丢失
0.17版本之前存放三个副本
1.副本放在与客户端同一个机架距离最近的机器上
2·副本放在同一个机架激励第一个副本最近的设备中
3·副本放在不同机架的某一个设备中
0.17之后存放三个副本
副本放在客户端同一个机架设备中
副本放在不同机架的某一个设备中
副本放到与第二副本同一个机架不同设备中
36.心跳机制
心跳三秒一次
块报告 五分钟一次
完整性报告 一小时一次
判断datanode是否死亡
10*3+2*5*60=630秒
namenode周期性从datanode接受心跳报告和快报告来监控集群
namenode根据块报告验证元数据信息
没有按时发送会被datanode标记死亡状态,不会给datanode分配io请求
如果datanode死亡,在namenode检测这些数据快丢失后在合适的时间自动修复
自动修复原因:
1·数据副本损坏
2·磁盘故障
3·断电
37.安全模式
1.namenode启动安全模式
不支持操作,支持读取
2.安全模式下:
只能查询
3.如何进入安全模式
hdfs dfsadmin -safsemode enter 进入
hdfs dfsadmin -safsemode leave 离开
hdfs dfsadmin -safsemode gat 下载
38.hdfs的命令
hadoop/hdf/yarn fs -cmd
1.列出hdfs文件系统中根目录下的目录和文件
hdfs dfs -ls/ 列出hdfs二级目录
hdfs dfs -ls -R / 列出hdfs的所有文件信息
2.上传文件
hadoop/hdfs/yarn dfs -put ./test
3.文件复制
hdfs dfs -copyFormLocal 原路径 路径
hdfs dfa -moveFromLocal <hdfs src> <local src>
4.将hdfs下载到本地并重命名
hdfs dfs -get in getin
5.copyToLocal
hdfs dfs -cpyTpLocal <hdfs src> <local src>
和get一样
6.删除文档
hdfs dfs -rmr <hdfs src>
hdfs dfs -rm <hdfs src>
hdfs dsf -rm -r <hdfs src>
7.查看文件内容
hdfs dfs -cat 文件名
8.建目录
hdfs dfs -mkdir/input
9.合并多个文件
hdfs dfs -getmerge 多个文件的hdfs路径之间用空格隔开 合并之后的 文件名
10.执行基本信息
hdfs dfsadmin -report
11.进入/查看/退出安全模式
hdfs dfsadmin -safemode enter|leave|get
12.添加节点
start-all.sh
13负载均衡
start-balancer.sh
39.什么是yarn
新的计算框架,负责整个集群的资源管理和分配
2.yarn的组件
调度器和应用程序管理器
调度器:
负责对各个应用程序资源进行分配
2.应用程序管理器
与调度器协商启动应用程序管理器的进程
3.container:(容器)
负责对各个应用程序资源进行分配
4.nodemanager slaver
是每个节点上的资源和任务管理器
5.resourcemanager master
负责整个集群资源管理与分配
6.jobhistoryserver
记录mapreduce的历史信息
什么的zookeeper?
hadoop是一个动物园,zookeeper就是一个管理员,hive蜂巢
zookeeper是一个分布式集群的协调服务,为分布式提供高可用,高效性的分布式协调服务
应用于:hadoop集群,hbase,kafka
46.zookeeper运行模式
单机,伪分布,全分布
47.leader/follwer选举机制:
集群必须启动一半或一半以上,而leader只有一个
follower可以有多个
48.ha
1.启动每台节点的zookeerper,再查看状态,jps- QuperumMain
2.格式化第一台:namenode:hdfs -format
启动:hadoop-daemon.sh start namenode
格式化namenode:hdfs namenode -bootstorpStandby
把普通集群变高可用:
hdfs -initializaShareEdits
把namenode换成hdfs hssdmin -failover -forcractive ha1 ha2
查看hdfs haadmin:
hdfs haadmin(会显示haadmin的命令列表)
hdfs haadmin -help或-list
3.启动HA集群:
启动journalnode:
hadoop-daemon.sh start journalnode
启动namenode:
hadoop-daemon.sh start namenode
4.进入web页面查看状态:
ha1:50070
ha2:50070
如果两台机子namenode都是standBy状态,执行下面操作
转换namenode为active状态:
hdfs haadmin -transitionToActive(transactionToActive)
5.查看进程:jps
6.启动datanode:
hadoop-daemon.sh start datanode(每台)
7.启动resourcemanager:
yarn-daemon.sh start resourcemanager
8.启动nodemanager:
yarn-daemon.sh start nodemanager
9.格式化zkfc:
hdfs zkfc -format
10启动HA:
start-dfs.sh
start-yarn.sh
11. 停止HA:dfs,yarn,resourcemanager,zkserver
50.大数据和云计算的区别?
云计算是硬件资源的虚拟化,而大数据是海量数据的高效处理。
云计算相当于我们的计算机和操作系统,将大量的硬件资源虚拟化后再进行分配使用。
51面试的重点
什么是linux?
1991年(第一次正式对外公布)
Linux是一套免费使用和自由传播的类Unix的操作系统
C语言编写
以网络为核心
应用:
Linux可以安装在各个计算机和别的硬件设备中:
例如:手机,平板,台式机,大型机,超级计算机
52.linux的主要特征
基本思想
一切皆文件
每个软件都有固定的用途
免费开源
多用户,多任务
良好的界面 字符界面和图面界面
字符界面--可以输入命令进行操作
图面界面--类似于windows的界面,可以说是一个Linux版的windows
(4)支持运行在多种平台
(eg:手机,平板,台式机,大型机,超级计算机、视屏游戏控制台)
53.常用的linux版本
Red Hat:
商业版(收费),企业级的LInux (80-110元)
Fedora Core:
由原来的Red Hat桌面版发展而来,免费版本(家用)
Centos:Red Hat社区克隆版本,免费
Debian:经常应用于服务器,性能稳定
Ubuntu:Debian衍生而来的,比较流行的桌面系统
Fedora:急于尝试新技术,等不及稳定版本,一个测试平台
54.linux的根目录介绍??
/bin和/usr/bin :二进制文件,包括root用户和普通用户的操作命令, shell解析器
/sbin:系统管理员root才能使用的命令
/boot:系统引导和内核目录,存放引导装载文件(启动分区 启动程序和内核)
/dev:设备目录,eg:cpu,input,disk
/home:所有用户的家目录
/lib:系统使用的函数库的目录
media:媒体目录,多媒体文件夹
/lost+found:系统崩溃时的信息存储位置
/opt:给主机额外安装软件存放目录
/tmp:存放程序产生的临时文件(关机重启信息清空)
/var:系统一般运行时需要改变的数据存储位置
/sys:系统的相关文件存放目录
/usr:存放应用程序相关的目录命令、函数库、共享包、内核源码
/proc:重要的需要存放在内存中的数据
55.用户操作
1、创建用户
# useradd 用户名
# passwd 用户名
查看用户名:cat /etc/passwd
查看用户密码:cat /etc/shadow
# id 用户名//查看用户信息
1-499管理员 >=500普通用户
# groups 用户名 //查看用户所属组
2、修改密码
方法一:
# passwd 用户名 回车,然后输入新密码
方法二:
# echo "wef"
把双引号里的字符打印到显示屏上
密码
# echo "1234" | passwd --stdin 用户名 //修改用户密码
# groups 用户名 //查看用户所属组
# id 用户名 //查看用户信息
1-500 管理员 >=500普通用户
方法三: linux 不进去系统更改root密码 (linix暴力的破解密码)
先将输入定向到该虚拟机,即在虚拟机内部单击或是按Ctrl+G
1.进入grub界面后,在3秒内按回车,进入
2.选项菜单按e进入编辑模式
3.编辑kernel那行 输入” 1”(空格1)或者” single”
4.按B重启存的
5.进入后执行下列命令
root@#passwd root (配置root用户的密码)
Enter new unix password:输入新的密码
6、执行命令 root@# init 6 或 reboot