大数据概念(2021年1月18日)

对于“大数据”(Big data)研究机构Gartner给出了这样的定义。“大数据”是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力来适应海量、高增长率和多样化的信息资产。

麦肯锡全球研究所给出的定义是:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。

大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。换而言之,如果把大数据比作一种产业,那么这种产业实现盈利的关键,在于提高对数据的“加工能力”,通过“加工”实现数据的“增值”。

从技术上看,大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据必然无法用单台的计算机进行处理,必须采用分布式架构。它的特色在于对海量数据进行分布式数据挖掘。但它必须依托云计算的分布式处理、分布式数据库和云存储、虚拟化技术。

随着云时代的来临,大数据(Big data)也吸引了越来越多的关注。分析师团队认为,大数据(Big data)通常用来形容一个公司创造的大量非结构化数据和半结构化数据,这些数据在下载到关系型数据库用于分析时会花费过多时间和金钱。大数据分析常和云计算联系到一起,因为实时的大型数据集分析需要像MapReduce一样的框架来向数十、数百或甚至数千的电脑分配工作。

大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理(MPP)数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。

Linux 基础(2021年1月18日)

1. 由林纳斯-托瓦斯在大学期间仿造Unix系统编写的一套免费的操作系统

a. 是一套类Unix的操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统

b. 能运行主要的Unix的工具软件、应用程序和网络协议、支持32位和64位硬件,继承以Unix以网络为核心的设计思想

2. 特点:开源、多用户、多任务、良好的界面、支持多平台

3. 发行版本: Redhat、centos、Ubuntu、kylin

4. 基础命令

a. 命令操作权限

b. 命令的书写格式: 命令  [选项]  [参数]

c. 常见的基础命令: pwd、mkdir、cd、ls、cp、touch、rm、mv

5.vim文本编辑器

一个类vi的编辑器,可以理解为是vi的加强版智能文本编辑器,会自动为字体添加上颜色,有简单的代码语法正确性检查。

一般模式(默认模式)、编辑模式、命令模式

a. 通常在一般模式,使用键盘上的某些符号对文件的内容进行定位、查找、复制、删除

b. 从一般模式进入到编辑模式、从一般模式进入到命令模式

c. /正向查找、?反向查找、:命令

d. 常用命令:w、 q、 wq、noh、 !Command

6. 免密登录

免除在登录时需要使用密码

a. 非对称加密算法在生成证书的时候会成对的公钥和私钥证书文件,当公钥证书对某个文件或者服务器进行加密,只有配对生成的私钥文件才能解密

明文密码123--公钥加密--》acdgdfsre

b. 证书生成:ssh-keygen

c. ssh-copy-id 远程服务器的用户名@远程服务器的地址

7. 软件包管理

a. 压缩、b. 打包、c. RPM、 d. yum

Hadoop安装与配置(2021年1月19日)

1. hadoop是apache基金会提供的一套开源、可伸缩、可靠的用于分布式存储和计算的框架

2. hadoop的发展历程

a. Doug Cutting

3. hadoop的版本和组件

a. hadoop1.0:common、HDFS、MR(java程序:内存和CPU)

b. hadoop2.0:common、HDFS、MR、YARN(资源管理器和调度者:封装CPU和内存)

c. hadoop3.0:Common、HDFS、MR、YARN、Ozone(较高版本的 对象存储)、

d. 组件:submarine(机器学习引擎 2019.3)

hadoop生态圈:flume、HDFS、MapReduce、Hive、Sqoop

3. Hadoop的安装与配置

hadoop的三种搭建形式

1. 独立的本地运行模式

2. 伪分布式模式(教学):hdfs\mr\yarn的进程

3. 完全分布式模式

4. 注意事项

1. 如果namenode format  ,建议重启linux: reboot

2. 少HDFS或者yarn相关的进程,比如namenode、datanode

a. 解决方案:可以去Hadoop的log目录下,查看缺少的那个进程所对应的日志文件,根据报错信息修改配置

i. 修改完成之后,先停止HDFS相关的进程stop-all.sh ;

ii. 然后删除此时的数据目录 tmp;

iii. 重新格式化

iv. 再次启动

HDFS分布式文件系统(2021年1月19日)

1. 为Hadoop服务的分布式文件系统,主要包含三个进程:

a. NameNode:名字节点,用于记录元数据和管理DataNode

b. DataNode:数据节点,用于存储数据

c. SecondaryNameNode:辅助namenode做元数据的滚动,无法达到热备的效果,在2.0之后通过配置namenode主从,取消了secondary

2. HDFS指令

hadoop fs -mkdir /park01

在hdfs上创建一个park01目录

hadoop  fs -ls /

查看根目录下的文件和文件夹

hadoop fs -lsr /

递归查看  等同于-ls -R

hadoop fs -put  NOTICE.txt  /park01

上传:将linux中的文件上传到hdfs的park01目录下

hadoop fs  -get  /park01/NOTICE.txt  /home

下载:将hdfs上的文件下载到linux的指定目录

hadoop fs -rm /park01/NOTICE.txt

删除文件

hadoop fs -rmdir /park

删除文件夹,并且此文件夹需要是空文件夹

hadoop fs -rmr /park01

删除非空文件夹 等同于 -rm -R

hadoop dfsadmin -safemode enter

进入安全模式

hadoop dfsadmin -safemode leave

离开安全模式

hadoop dfsadmin -rollEdits

手动执行合并edits和fsimage

hadoop dfsadmin -report

查看存活的DataNode节点信息

3. HDFS API

MapReduce分布式计算框架(2021年1月20日)

1.概述:Hadoop的分布式计算框架,将数据的计算分成了map和reduce两个部分;用于解决海量数据的计算问题。

2.入门案例:wordcount单词计数

a. 模拟一个数据:words.txt

b. 上传数据到HDFS的/txt目录下

hadoop fs -mkdir /txt

hadoop fs -put words.txt /txt

3. Hadoop集群在工作的过程中,一般都是RPC方式进行集群节点之间的通信,要求MapReduce所处理的对象都要可以序列化和反序列化

4. MapReduce的shuffle中,包含分区操作,作用:将map的输出结果按照一定的规则来输出到不同的分区,以供ReduceTask来获取。

5. 默认的分区规则:HashPartitioner

publicintgetPartition(K2key,V2value,intnumReduceTasks){

return(key.hashCode()&2147483647)%numReduceTasks;

}

将key均匀的分布到ReduceTask上

6. 默认的ReduceTask就是1个

7. 需要自定义分区规则,继承Partitioner基类,重写其中的getPartition方法:

8. 改造流量统计的案例:

a. 按照不同的地区来统计每个用户的流量总数

i. 根据业务中的地址设置分区:

判断地址==bj | hz | fj  |sh

Flume日志收集框架(2021年1月20日)

1. 概述:用于收集、传输、汇总数据到指定的存储系统(文件、HDFS、HBase等等);Flume是一个高可用、高可靠、分布式的易于定制的海量日志收集、聚合和传输的框架

2. Flume核心组件

1. flume运行的核心是agent引擎

2. agent中包含了三个核心组件:source\channel\sink

3. source数据源:

a. 专门用来收集数据,指定收集的数据的类型,例如netcat,需要指定监听的ip和端口;例如file,需要指定监听的文件夹;例如http协议等等

b. 收集的是一行一行的数据

4. channel数据通道

a. 当source将数据收集以后,临时存放在channel,分为了内存和文件

b. 内存型的channel是暂时缓存了数据,file型的channel会将数据持久化

5. sink数据汇聚点

a. 用于消费channel通道中的数据,根据不同的需求将数据发往不同的目的地:file\hdfs

6. 在三个组件之间,数据是以event形式流动的

Event: { headers:{} body: 64 65 6D 6F  demo }

可以对event进行简单的处理,例如添加请求头:时间戳、主机名、自定义(静态)

3. 不同种类的S-C-S:NetCat Source、Spool Directory Source、Avro Source

4. Flume的组件:Channel 通道、Sink 汇聚点、Interceptor 拦截器

Hive数据仓库(2021年1月21日)

通过sql语句开发,但是计算底层依然是MR,存储底层是HDFS;

1. 概述:hive是基于Hadoop的数据仓库框架,提供了一种SQL方言,可以查询存储在HDFS上的数据;底层将SQL查询或插入转换为MR 的job程序在Hadoop集群上运行

2. hive将数据组织成数据库表,通过数据库表来操作来为数据赋予结构

3. hive中的sql,通过sql语句对数据进行提取转换和加载

4. 数据库和数据仓库的区别

数据库

数据仓库

用于实时查询数据

为离线分析去存储数据

具有CRUD的功能

支持一次写入多次查询,不支持行级别的增删改;行级别查询是抽样查询 tablesample(1 rows)

具有事务

没有事务的特性:hive操作的文件可能不归自己管

尽量避免冗余,提高存储和处理的效率

人为的制造冗余,为查询和分析服务

数据来源单一

数据丰富

5. Hive安装与配置

6. hive中数据实际上是管理hdfs上的文件,数据是在hdfs,hive中以表的形式来管理文件数据,hive自身是存储的是表的信息:表名、表字段、字段类型、表管理是哪个数据文件等

7. MySQL和HDFS的双向数据导入

8. hive的数据库指令和数据库表

9. 存储格式:

a. hive中对表的管理,从行格式(row format)和文件格式

b. 行格式:序列化和反序列化机制、可以指定行格式

10. 表的类型

内部表(管理表)、外部表、分区表(内部分区表、外部分区表)

Sqoop数据转移(2021年1月22日)

1. 概述:SQL-TO-HADOOP工具,允许用户将数据从结构化存储器MySQL抽取到Hadoop中,用于后续作进一步的处理,以供MR、hive来使用;也可以使用将数据从Hadoop、hive导出到结构化存储器,给其他的客户端:企业级开发的应用使用。

2. sqoop安装与配置

3. sqoop命令单独执行没有任何意义,需要使用sqoop提供的一系列的工具以供执行相应的操作

a. export      Export an HDFS directory to a database table :将HDFS上的目录中的文件导出到数据库中

执行导出

概述:将HDFS作为数据源,将远程数据库作为目标,将数据导出到远程数据库中

a. 远程数据库是一定要先声明好接收数据的目标表

b. hive:int \string :其中string类型对应着char\varchar;

c. 底层实际上就是执行了MR

b. import      Import a table from a database to HDFS:将数据库表的数据导入到HDFS指定的文件

a. 将sqo_demo.demo表数据导入到HDFS上

b. 执行:

sqoop import --connect jdbc:mysql://localhost:3306/sqo_demo --username root --password root --table demo -m 1

zebra项目设计与开发(2021年1月22日)

1. zebra概述

1. 如图所示,电信运营商的用户通过连接到互联网中的各种网络设备访问一个网站时,其访问信息会通过基站在网络中传递,基站可以收集所有用户的访问日志数据

2. zebra是对电信运营商收集的用户上网数据进行分析的一个应用程序。通过分析得到的结果可以展现不同小区的上网详情

3. 注:zebra本意为斑马,命名类似hadoop的方式,并无特殊含义

2. zebra实现

一、利用flume收集数据,将收集的数据落地到HDFS的文件系统中,

1. flume在收集日志数据的时候,按天为单位进行收集

2. 将数据上传到/home/zebradata目录

3. 启动flume,收集数据

二、通过hive处理数据,外部表来指向已有数据

1. 使用hive创建zebra数据库

2. 为要处理的数据,创建一张外部表:

3. 修复外部表的分区:

4. 清洗数据,提取有用的数据(23个字段)

5. 创建事实表 f_http_app_host

四、在mysql中创建出需要的表

五、导出数据

1. 将hive上f_http_app_host表的数据导出到mysql的f_http_app_host表中

2. sql语句:向mysql中的所有表插入数据

六、使用tomcat服务器测试应用是否能正常启动

1. 连接上虚拟机上的mysql服务器,修改此文件的配置

2. 启动tomcat服务器,访问测试

参考文章

《生产实习》实习日志——JAVA大数据工程师相关推荐

  1. Java大数据工程师面试宝典

    Q:你觉得你有什么有点? 1,工作经验丰富:8年大数据开发经验: 2,项目经验丰富:多个大中型项目开发经验: 3,学习能力强:从小学到大学,学习成绩都是排名Top5 4,Troubleshoot能力 ...

  2. python大数据和java大数据的区别-从事大数据工程师 Java和Python哪个编程语言好

    大数据工程师可以选择多种语言学习,其中,Java和Python是做大数据平台开发最常见的两种编程语言,也是当下较为火热的两种语言,Java与Python在做大数据开发时各有优缺点,究竟选择哪种语言好呢 ...

  3. python和java哪个更适合大数据-要做大数据工程师,Java和Python哪个更有优势?

    目前Java和Python是做大数据平台开发最常见的两种编程语言,当然还有Scala和R,下面千锋广州老师简单的分析一下Java与Python在做大数据开发时的优缺点,具体选择哪个可以根据实际情况来判 ...

  4. 大数据工程师培训,需要学习的课程有哪些?

    大数据工程师培训课程有哪些?目前大数据基础课程需要学习Web标准化网页制作,必备的HTML标记和属性.HTML表格.表单的设计与制作.学习CSS.丰富HTML网页的样式.通过CSS布局和定位的学习.让 ...

  5. 大数据工程师培训课程有哪些,主要包括哪几个部分?

    在不久的将来,多智时代一定会彻底走入我们的生活,多智时代该平台,专注于人工智能.大数据.云计算和物联网的入门学习和科谱资讯,让我们一起携手,引领人工智能的未来 大数据工程师培训课程有哪些?目前大数据基 ...

  6. JAVA大数据需要学什么

    大数据时代,Java开发的需求量越来越大 大数据已经成为了企业竞争的核心力量.而Java是企业大数据技术的主要支撑语言,Hadoop本身就是用Java编写的.当你需要在运行MapReduce的服务器集 ...

  7. Java和Java大数据有什么区别?

    单单提起java或者大数据,很多人对此都一目了然,但对于Java大数据这样一个新鲜名词,多少有些疑惑.那java和java大数据学习的内容是一样的吗?两者有什么区别呢?今天就从java和java大数据 ...

  8. 选择java大数据开发方向学习,应该怎么规划学习路线

    Java是目前使用广泛的编程语言之一,具有的众多特性,特别适合作为大数据应用的开发语言.Java语言功能强大和简单易用,不仅吸收了C++语言的各种优点还摒弃了C++里难以理解的多继承.指针等概念. J ...

  9. 越来越多的Java程序员转行Java大数据...

    JAVA的精密,强大,拥有其它语言不可替代的性能和可维护性,早已经是成为最受欢迎的编程语言之一,很多人想进入IT行业,首选的第一门语言就是JAVA. 但是,在未来肯定是大数据的天下,人工智能的爆发,将 ...

  10. 一直在说的Java和Java大数据,你能搞清楚吗?

    提起Java或大数据,很多人对此都一目了然,但对于Java大数据这样一个新鲜名词,多少有些疑惑. 那Java和Java大数据学习的内容是一样的吗?两者有什么区别呢?今天就从Java和Java大数据的以 ...

最新文章

  1. 谁是“艾灵”?是腾讯的真国风 AI 虚拟人!
  2. linux boost filesystem程序链接,在Linux中链接Boost库
  3. Linux进程间通信中的文件和文件锁
  4. java 内部类怎么new_[转]【Java】内部类(Inner Class)如何创建(new)
  5. Android开发入门教程--Android应用程序结构分析
  6. 微信小程序云开发不完全指北
  7. hashmap移除元素_Java HashMap 如何正确遍历并删除元素的方法小结
  8. 前端vue适配不同的分辨率_前端面试时,被问到项目中的难点有哪些?
  9. 孔维滢 20171010110《面向对象程序设计(java)》第十七周学习总结
  10. js简单实现div里面的内容向上平滑滚动。
  11. 训练后的随机森林模型导出和加载
  12. WSO2简单使用-rest
  13. luogu P1375 小猫
  14. shell编程之awk(数据筛选与处理)
  15. html不能打开图片,HTML无法打开图片
  16. 如何使用EasyNVR+CDN突破萤石云在直播客户端数量上的限制,做到低成本高性价比的直播...
  17. android 电量性能优化
  18. JQuery属性选择器(属性值是变量、多属性选择)
  19. python分析微博粉丝_python数据分析微博热门
  20. MATLAB如何保存高质量大图

热门文章

  1. Ubuntu系统如何进行屏幕截图
  2. Oracle 临时表空间 SQL语句
  3. 如何获取区块链开发视频教程资料
  4. supergo定位软件_super go定位修改下载
  5. java实现冒泡算法
  6. 【人工智能】非线性分类器(QDU)
  7. rf扫描枪_RF枪操作的简要步骤
  8. 基于自抗扰控制的高速列车自动驾驶速度控制
  9. 气压传动PLC控制机械手臂实验实训台,QY-QDSY01
  10. 计算机电源接口作用,计算机DIY必修课程,电源接口的详细说明