- 大数据系统对数据的处理仅限于查询、分析、转换,而不会改变,因为数据都是其他系统产生的,不如日志,修改他们没有什么意思。
- Hadoop由HDFS、Yarn、MapReduce组成:HDFS是分布式文件系统,解决了大量存储的问题;Yarn是分布式计算系统的节点资源管理和调度工具:MapReduce是数据计算框架,分为Map和Reduce两个阶段,其中Reduce又隐含了一个Shuffle过程。MapReduce与其他两个不是一个层面的,MapReduce是帮助我们编写运行Hadoop系统中的数据处理程序的库。
- DataNode用于存放文件 ,NameNode用于管理整个文件目录树。
- NameNode处理管理整个文件目录树,还要管理各DataNode主机,协调它们之间的配合,监视DataNode的生存情况,对长时间无反应的DataNode不再访问。
- 数据冗余,每个文件都会有多个副本分散在不同的DataNode上,NameNode时刻监视文件的副本量,如果小于设定的值,就找一台DataNode增加副本数。一般至少有三份副本才能保证数据安全,保证某个DataNode在死掉的情况下依然能供客户端及时获取文件数据。
- 分布式环境下的各种操作相当繁琐,所以请记住HDFS的一个特点(也可以说是一个缺点):不支持随机写(指定文件位置去写入内容的操作),但支持追加内容(明显这个操作的成本要比随机写低),总之它适合的访问方式是"一次写入,多次读取"。
- Hadoop系统的运行方式有三种:独立模式、伪分布模式、分布式模式。
- "容器"其实就是一台虚拟机,所以容器技术就是创建和管理虚拟机的技术。当前最流行的容器技术软件就是Docker。
- 其实Docker是一种更轻量的虚拟化技术,随着需求和业务模式的发展也一直在演进。
- 为什么人们喜欢用容器化技术呢?因为容器内的系统与宿主机无关,容器内配置好的软件环境不会随宿主机变化,这使得我们平时遇到的很多烦恼不复存在。
- 注意最后一行"[root@2b7fe07f4401]#",看到它就表示已经入容器内部。root表示Linux的当前账户,2b7fe07f4401是容器的id,/表示当前所在路径为根路径。
- Vi有三种模式,默认是命令模式,此时按下字符键,表示命令而不是输入字符。有很多命令可以将模式变为编辑模式,比如a、i、o。先按ESC键再按冒号键,进入另一种命令模式,此模式下可以退出vi,如果没有任何改动,输入"q"即可,输入"wq"会保存修改再退出,输入"q!"表示丢弃修改并退出。
- 在HDFS的根目录下创建user目录:dfs -mkdir /user
在/user目录下创建与操作Hadoop账户名相同的目录:dfs -mkdir /user/root
在/user/root目录下创建input目录:dfs -mkdir input
- 执行命令 sbin/start-all.sh。 注意观察日志输出是否报告异常,也可以通过jps命令产看程序是否运行。
- HDFS高可用涉及到的组件有NameNode、DataNode和edits共享组件。
- Zookeeper再每个节点上都有运行。注意,Zookeeper应配置为奇数个节点,因为n(n为奇数)个和n+1个节点对风险的抵抗能力相同,而且奇数个更容易选出Leader。所以。Zookeeper节点至少要有三个,用5个是没有问题的。
- Pom.xml是工程描述文件,Maven脚本根据它来构建目标结果(比如编译、打包)。
Src下是组件工程的文件夹。
Src/main下放的是用于构建目标结构的文件。
Src/test下放的是用于测试的文件
Src/main/java下放的是Java源码文件,src/test/java也是源码文件,不过用于测试;其下的com/niu/edu是一个Java包。
Src/main/resources下放的是资源文件(只要不是Java源码文件,都叫资源文件),这个目录看不到,当需要手动创建即可。Src/test/resources下放的也是资源文件,用于测试
- 必须放在<dependencies>元素中,每一个依赖项是一个<dependency>,每个<dependency>至少要包含三项内容:groupId、artifactId、version。
- 打jar包只需一条Maven命令,在VSCode的控制台(TERMINAL)窗口执行命令mvn package,打包成功后,在项目根目录下的target目录下出现一个jar文件。Hive被称为数据仓库工具,因为它适合做的事与关系型数据库是有差别的,它基于HDFS和MapReduce,适合做一些对数据进行抽取、转换、加载(ETL)的工作,而不适合做事务性的工作(修改这些数据)。
- HiveServer2的主要功能是接收客户端的连接,接收客户端发出的SQL语句,处理语句,转成MR作业,返回结果。
- 初始化HiveServer2。第一次运行HiveServer2也需要先执行初始化操作(主要是初始化Meta数据库),创建供Meta管理使用的表,命令为:/app/hive/chematool -dbType postgres -initSchema。 其中, dbType指明数据库的类型,对应PostgreSQL的必须是pstgres。
- 启动HiveServer2.执行/app/hive/bin/hiveServer2 & 命令,其中"&"表示在后台运行。启动后,如果没有错误,就会输出类似下面内容。
- 使用beeline连接HiveServer2,命令为/app/hive/bin/beeline -u jdbc:hive2://localhost:10000 -n hive 。 其中 -u 后面是URL, -n后面是账户名。
- OLTP要求数据处理必须满足原子性、一致性、隔离性、持久性四要素,否则无法保持稳定的业务状态。
- Hive适合OLAP,普通DBMS适合OLTP。
- Hive的组件包括HiveServer2、MetaStore、Meta database、beeline,可以任意组合,实现独立或嵌入式运行模式。
- HBase也是一主多从的主从架构。主组件叫做HMaster,从组件叫做HRegionServer。
- HBase对HMaster和HRegionServer的分工非常科学,HMaster不参与表的管理,不参与客户端对表的访问,其主要工作是故障恢复和负载平衡。