大数据期末复习重点
1.Hadoop平台:
1.理论概念:结构组成: 1. HDFS分布式文统.2.MapReduce计算大数据. 3Yarn任务调度与资源管理.
- 伪分布式环境搭建: 网络配置:
配置网卡信息: vi /etc/sysconfig/network
配置主机的虚拟域名: vi /etc/hosts
系统上安装 jdk环境.
-
先上传 jdk到服务器上.
-
基于/usr/local/ 目录下解压安装.注: 可检查目录大小: df-h/usr/local/
-
解压压缩包tar -zxvf jdk-7u80-linux.tar.gz 改名: mv jdk-7u80-linux jdk7(解压hadoop同)
-
配置环境变量: vi /etc/profile
结尾增加:
export JAVA_ HOME=/usr/local/jdk7
export PATH=.:\(HADOOP\_HOME/bin:\)HADOOP_HOME/sbin:\(JAVA\_HOME/bin:\)PATH
保存退出并激活配置: source/etc/profile
测试 jdk环境变量: java -version
hadoop步骤:
5. 修改配置文件:参考配置文件或直接覆盖 hadoop-2.6/etc/hadoop/中.
覆盖使用时切记:
1. 需要动态创建提供日志的存储目hadoop_repo,因为配置文件中使
用的是该目录.
2. 其中配置文件中使用的全部是主机名: hfxt1.
3. 指定的jdk的位置需要调整为自己当前主机中的Java_home的位置.
6. 格式化 hdfs: hdfs namenode -format
7. 方式一:启动: start-all.sh( 提示过时了)
8.测试 hadoop环境.
方式一:注:最终通过 jps查看 Java进程. 应该能看到5个动的进程(
NodeManager
ResourseManager
DataNode
SecondaryNameNode
NameNode).
方式二:在宿主机上, 可通过浏览器访问: http://192.168.131.130:50070测试访问 hdfs.
http: //192. 168. 131.130: 8088测试访问hadoop.
9. 关闭: stop-all.sh
Hdfs的 shell 操作(重点)
提前启动 hdfs: start dfs.sh 测试查看进程: jps
Hadoop-2.6/bin/ hdfs 该命令可直接回车查看用法.
用法一 格式: hdfs dfs 直接回车可查看 hdfs中的 dfs的命令用法. 后边可追加更多.
例: hdfs dfs -appendToFile<src...>
hdfs-dfs -chgrp/ -chmod/ -chown
hdf sdfs -get : 下载 hdfs上文件到本地
hdfs-dfs ( /-p/-f)-put
将本地文件上传到hdf s根目录中保留上传文件的属性信息
-p将上传到 hdfs中后, 文件属性信息会更新为最新状态.
-f将本地文件上传到 hdf s根目录中覆盖原
hdf dfs -rm/-rmdir
hdfs-dfs -text
hdfs-dfs -help
hdfs dfs -ls 注: 以上命令不知如何使用, 可hdfs-dfs -help ls查看 ls的帮助用法.
示例: 查看内容: hdfs dfs -ls hdfs: //hfxt1: 9000/
上传内容到 hdfs中:
/usr/local/hadoop_ repo/目录下新建测试文档 hello
上传: hdfs dfs -put hello hdfs:// hfxt1:9000/
查看: hdfs dfs -ls hdfs://hfxt1:9000/即可.
优化:以上写法可优化为:hdfs dfs -ls/(/ 代替 hdfs://hfxt1:9000/.)
Hdfs存储结构:
NameNode详解:
概念:整个文件系统的管理节点.维护着整个文件系统的文件目录树(hdfs dfs-ls/) .
文件或目录的元信息和每个文件的 数 据块列表.负责接收用户的请求操作.
DataNode详解:Block:文件块. 最基本的存储单位.
hdfs中默认一个块的大小为 128m( 最大) .
块从0位置开始标记.
Hadoop集群:
集群环境的结构:
Hfxt0 namenode , datanode ,nodemanager
Hfxt2 resourcemanager,datanode,nodemanager
Hfxt3 secondarynamenode , datanode , nodemanager
Ha集群环境:
FAILOVER(失败转移)原理分析:
HDFS的HA一个集群中,两个NameNode.一个Active状态(该节点负责客户端的操作) .一个Standby状态( 该节点用来同步Active节点的状态信息. 提供快速恢复故障的能力) .
HA的实现原理: 为了保证两个节点状态同步. DataNode需要向两个NameNode发送 Block位置信息, 还有一个JournalNodes进程, 用来同步 FSEdits信息.Active节点上, 有关修改时, 都将持久化到一半以上的JN上, 而StandbyNameNode节点负责观察JN的变化.读取发送来的FsEdit信息.一旦Active节点错误,StandbyNameNode节点需要保证从 JN上读取所有的FsEdit信息.并且切换状态为 Active.
HA自动环境搭建:
- 需要依赖 zookeeper组件.先安装zk集群.
上传zk安装包.解压.
将 zk/conf/ zoo_sample.cfg修改为 zoo.cfg
vi zoo.cfg:
dataDir=/usr/local/zookeeper-3.4.6/ data
server.1=hfxt1:2888: 3888
server.2=hfxt2:2888:3888
server.3=hfxt3:2888:3888
mkdir zookeeper-3.4.6/ data
vi myid 注:输入1
远程复制到其他服务器上.
Scp -rq zookeeper-3.4.6 hfxt2:/usr/local/
Scp -rq zookeeper-3.4.6 hfxt 3:/usr/local/
其他服务器 vi myid 注: 输入2和3
启动 zk集群:
Hfxt1,2,3分别启动:
zookeeper-3.4.6/ bin/zkServer.sh start
查看启动状态: zookeeper-3.4.6/bin/zkServer.sh status
测试进入客户端: zookeeper-3.4.6/bin/zkCli.sh
ls/ 查看根目录下是否为 zookeeper一个目录