python⼤数据基础知识点
(Hadoop+HDFS+MapReduce+Hive+Hbase)                                                                          python⼤数据基础知识点
***概述
起源:Google 3篇论⽂  GFS ,MapReduce ,BigTable
Doug Cutting 写 Hadoop
HDFS - GFS,
MapReduce -- MapReduce,
HBase--- BigTable
hadoop主要分类:
1. apache组织的 开源版  互联⽹
2. cloudera CDH
雇佣 Doug Cutting  4000美⾦
3,Hortonworks 最初apache组织 hadoop的开发⼈员 创⽴12000美元 (10个)
⼀,⼤数据基础:
1,4v特点:⼤量的;多样性(结构化-数据库,半结构化json,⾮结构化-⾳视频)
快速的-处理数据快;价值-在海量没有价值的低价值的数据中获取有价值的
2,数据怎么存?
HDFS,hadoop分布式⽂件存储系统hadoop distributed file system
主从式架构:nameNode,dataNode
nameNode:维护⽬录结构;记录⽂件相关信息-权限⼤⼩所属组;DataNode与⽂件块对应关系 副本集。
DataNode:以块的形式128M存储数据;存储副本集保证数据的安全;校验和,检验⽂件是否损坏。
3,怎么运算,处理数据?
移动代码,以MapReduce⽅式移动
yarn集机制来监控Map和Reduce处理数据,并调度计算机cpu内存⽹络等资源
⼆,搭建hadoop集单节点:(伪分布式集)
1,设置⽹络、主机名和主机映射,关闭防⽕墙和selinux
2,安装JDK
3,上传并解压hadoop安装版:⼀般放置在/etc/opt/install/hadoop
tar -zxvf -C /opt/install
4,配置⽂件:hadoop环境jdk,hadoop四⼤模块配置
hadoop-env.sh  :export JAVA_HOME =/usr/java/jdk1.8xxx
hadoop_home/etc/l
5,启动单集单节点:
先初始化hadoop_home:bin/hdfs namenode -format
启动nameNone,dataNode,yarn-resourcemanager-nodemanager                    jps查看进程
通过⽹络访问:
三,HDFS系统的访问和操作:
主从式架构,namenode对外client提供访问;
访问和操作:存储、读取数据、删除数据、创建⽬录;
客户端通过shell命令⾏和python代码来访问HDFS.
1,常⽤shell命令:在hadoop_home下:
bin/hdfs dfs -ls /
bin/hdfs dfs -mkdir -p /xiaoming/daming
bin/hdfs dfs -put 本地⽬录 /jun远程⽬录
bin/hdfs dfs -text/-cat /jun  查看⽂本⽂件
bin/hdfs dfs -get hdfs⽬录  本地⽬录:下载
bin/hdfs dfs -rm -r /jun/text :删除
bin/hdfs dfs -cp 原始位置 ⽬标位置  复制
bin/hdfs dfs -mv 原始位置 ⽬标位置  移动
2,垃圾箱保存时间:
<name&ash.interval
<value>10    0-不保存
3,HDFS权限问题:客户端要上传⽂件需要
<name>abled
<value>false
4,python访问:
pip install hdfs
from hdfs import Client
client = Client(":50070")
files = client.list('/')
upload('/',‘text’); download('/jun','ce')
delete('/jun',True);makedirs('jun');
rename('')改名
5,ssh免密登录:
⽣成公私秘钥:ssh-keygen -t rsa
(⽣成在~/.ssh⽬录下id_rsa是私,id_rsa.pub公)
发送到远端主机:ssh-copy-id root@ip
(会添加到远端主机的authorized_keys⽂件中)
四,HDFS集搭建:
1,设置⽹络、主机名和主机映射,关闭防⽕墙和selinux
2,安装JDK
3,所有节点安装相同版本hadoop安装版:⼀般放置在/etc/opt/install/hadoop                    tar -zxvf -C /opt/install
4,进⾏ssh免密登录
5,修改4⼤配置⽂件与hadoop-env.sh
6,修改hadoop-home/etc/hadoop/slaves⽂件为集所有节点机器名称:
hadoop1    hadoop2
7,删除data/temp⽬录
8,启动集:
python怎么读取txt先格式化:bin/hdfs namenode -format
sbin/star-dfs.sh
sbin/stop-dfs.sh
五,HDFS⾼级理论:
1,NameNode的持久化:由于NameNode所使⽤的数据,存储在内存,那么如果进程出现问题,内存中的重要数据就会丢失,
为了解决上述问题,HDFS通过FSImage和EditsLog ⼀起配合进⾏ NameNode数据的持久化。
FSImage记录NameNode格式化时和重启namenode时的数据镜像(格式化时是新建空的FSImage,重启时namenode把Editlog数据写⼊FSimage, 再重新⽣成新的EditsLog)
*FSImage是⼆进制⽂件,占⽤空间少。
FSImage和EditsLog默认存储位置?
/opt/install/hadoop-2.5.2/data/tmp/dfs/name/current,可在l配置修改路径
2,安全模式,safemode
重启Namenode时hdfs要合并EditsLog与FSImage,此时禁⽌写操作,会进⼊安全模式。⼿动进⼊安全模式:#进⼊安全模式
bin/hdfs dfsadmin -safemode enter
#获得安全模式状态
bin/hdfs dfsadmin -safemode get
#关闭安全模式
bin/hdfs dfsadmin -safemode leave
3,SecondaryNameNode
SecondaryNameNode会定期的获取NameNode的FSImage和EditsLog,并⽣成⼀个新的EditsLog为NameNode对外提供服务,后续SecondaryNameNode会合并之前的FSImage和EditsLog,并把合并后新的FSImage还给NameNode. 定期:
时间 默认 1⼩时;事务数 默认 1万
可以部分还原数据;NameNode与SecondaryNameNode尽量不放在同⼀节点,避免同时损坏数据不可还原。
4,热添加热删除:
增加:
1. 保证新加的机器 (hosts配置 域名设置 iptables  selinux关闭 配置主机到从机 SSH免密码登陆 hadoop安装(l slaves))
# clone 删除新机器中的  data/tmp 内容
2. 启动新机器的datanode
sbin/hadoop-daemon.sh start datanode
# namenode
3. 平衡处理sbin/start-balancer.sh
# 为了⽇后重启集 不要丢了新加⼊的节点
4. 修改集中所有的slave配置⽂件 把新加⼊的节点配置进去
热删除:
1. 在namenode主机器中,创建⼀个新的⽂件 位置 名字 随便
hadoop3.baizhiedu
2. 配置 l
lude ⽂件的位置 (不加 file://)
<property>
<name>lude</name>
<value>/opt/install/hadoop-2.5.2/</value>
</property>
3. 通过命令刷新集,在namenode节点:执⾏:
bin/hdfs dfsadmin -refreshNodes
4. 把删除的节点 从slaves 删除
5. 把l
lude 的信息删除
6. kill 掉 被删除的DataNode
5,HA⾼可⽤集:
HA架构的NameNode,由⼀个主节点对外提供服务,同时通过Zookeeper把主节点中的内容,⾃动的同步到备机中,保证主,备数据的⼀致。如果主机出现问题,备机会通过zookeeper⾃动升级主节点。
⾸先,搭建zookeeper集,为了保证集裂变后尽量保证节点数多的⼀⽅继续对外服务,要求奇数节点;
然后,Hadoop基本环境 还原:删除 hadoop_home/data/tmp 内容
再然后,各配置⽂件,保证各主从节点都做了ssh免密登录;
最后依次启动:各节点服务
启动服务后,⽇程启动停⽌:sbin/start-dfs.sh
sbin/stop-dfs.sh
六,MapReduce:hadoop分布式计算模型

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。