首页
动态
时间轴
归档
友链
关于
Search
1
Spark在Yarn模式下提交未找到驱动
10,711 阅读
2
Spark提交任务内存不足
10,293 阅读
3
Flink集群搭建--Yarn模式
9,798 阅读
4
Spark SQL函数总结
8,516 阅读
5
Flume应用--日志采集
7,201 阅读
日常
大数据
经验分享
技术总结
登录
Search
标签搜索
bigdata
Hive
Spark
hadoop
Flume
建站
Flink
linux
Mysql
sqoop
Yarn
摸鱼
羊毛
docker
VMware
图床
sql
function
清泓
累计撰写
39
篇文章
累计收到
---
条评论
首页
动态
后台
栏目
日常
大数据
经验分享
技术总结
页面
时间轴
归档
友链
关于
搜索到
39
篇
清泓
的结果
2022-06-05
Flume应用--监听端口
创建配置文件 创建配置文件netcatListen.conf,监听端口并输出到日志[root@master ~]# mkdir /usr/local/src/flume/job [root@master ~]# vi /usr/local/src/flume/job/netcatListen.conf # 基本组件 a1.sources = r1 a1.sinks = k1 a1.channels = c1 # 配置source监听源 a1.sources.r1.type = netcat # 端口类型 a1.sources.r1.bind = localhost # 绑定主机名或ip地址 a1.sources.r1.port = 44444 # 监听的端口号 # 配置sink接收器 a1.sinks.k1.type = logger # 输出到日志 # 配置channel a1.channels.c1.type = memory # 使用内存通道 a1.channels.c1.capacity = 1000 # 存储在通道中的最大event数量 a1.channels.c1.transactionCapacity = 100 # 一个事务中的最大事件数 # 将源和接收器绑定到通道 a1.sources.r1.channels = c1 # 指定agent a1的source(源)s1的通道为c1 a1.sinks.k1.channel = c1 # 指定agent a1的sink(槽)k1的通道为c1,注意sink(槽)只能有一个通道,所以连接时为channel启动第一种写法: [root@master flume]# bin/flume-ng agent --conf conf/ --name a1 --conf-file job/netcatListen.conf -D flume.logger=INFO,console 第二种写法: [root@master flume]# bin/flume-ng agent -c conf/ -n a1 –f job/netcatListen.conf -D flume.logger=INFO,console参数详解--conf/-c:表示配置文件存储在conf/目录--name/-n:表示给agent起名为a1--conf-file/-f:flume本次启动读取的配置文件是在job文件夹下的netcatListen.conf文件。-Dflume.root.logger=INFO,console :-D表示flume运行时动态修改flume.logger参数属性值,并将控制台日志打印级别设置为INFO级别。日志级别包括:log、info、warn、error。另外启动一个窗口 监听端口:nc localhost 44444 再向此窗口中输入数据,则在另一个端口中即可看到打印输出该数据下载netcat,用于监听端口yum install -y netcat下载net-tools,用于查看端口号使用情况yum install -y net-tools下载telnet,用于向端口号发送消息yum install -y telnet
2022年06月05日
688 阅读
0 评论
2 点赞
2022-06-05
Flume应用--监听目录
创建配置文件 创建配置文件dirListen.conf,监听目录变化,被监听的目录下创建的文件会被上传到hdfs中[root@master ~]# mkdir /usr/local/src/flume/job/dirListen.conf [root@master ~]# vi /usr/local/src/flume/job/dirListen.conf # 基本组件 a1.sources = s1 a1.channels = c1 a1.sinks = k1 # 配置source监听源 a1.sources.s1.type = spooldir # spooldir目录类型 a1.sources.s1.spoolDir = /usr/local/src/logs # 监听目录路径 a1.sources.s1.fileHeader = true # 是否在header中添加完整的文件信息 # 配置sink接收器 a1.sinks.k1.type = hdfs # 输出到hdfs a1.sinks.k1.hdfs.path = /flume/spooldir/%Y%m%d%H # 文件保存路径 #控制文件夹,把10分钟之内的保存在一个文件夹中 a1.sinks.k1.hdfs.round = true # 是否启用时间上的'舍弃' a1.sinks.k1.hdfs.roundValue=10 # 时间上进行'舍弃'的值 a1.sinks.k1.hdfs.roundUnit = minute # 时间上进行'舍弃'的单位 #描述文件迭代次数 满足其中一个条件则打开一个新的临时文件继续写入 a1.sinks.k1.hdfs.rollInterval = 3 # 时隔多长将临时文件滚动成最终文件,单位为秒,如果设置为0,则表示关闭 a1.sinks.k1.hdfs.rollSize = 20 # 当临时文件达到多少(单位:byte)时,滚动成目标文件,如果设置为0,则表示关闭 a1.sinks.k1.hdfs.rollCount = 5 # 当event数据达到该数量时,将临时文件滚动成目标文件,如果设置为0.则表示关闭 a1.sinks.k1.hdfs.filePrefix = events- # 保存数据的浅前缀名 a1.sinks.k1.hdfs.fileType = DataStream # 文件格式,DataStream不会被压缩 a1.sinks.k1.hdfs.useLocalTimeStamp = true # 是否使用本地时间 # Use a channel which buffers events in memory 使用内存通道缓冲事件 a1.channels.c1.type = memory # 指定通道为内存 a1.channels.c1.capacity = 1000 # 存储在通道内的最大容量 a1.channels.c1.transactionCapacity = 100 # 从一个source中取或者传输到sink,每个事务中最大的事件数 # Bind the source and sink to the channel 将源和接收器绑定到通道 a1.sources.r1.channels = c1 # 注意一个源可以有多个通道channels a1.sinks.k1.channel = c1启动[root@master ~]# flume-ng agent -f /usr/local/src/flume/job/dirListen.conf -n a1参数详解flume-ng flume启动命令agent 运行一个flume agent-f /usr/local/src/flume/job/dirListen.conf 指定一个配置文件-n a1 agent名称(必填)
2022年06月05日
738 阅读
0 评论
1 点赞
2022-06-05
Flume应用--日志采集
创建配置文件 我习惯将配置文件放在Flume安装目录下自建文件夹保存,这样方便后续的查找、使用。创建一个名称为logListen.conf的配置文件,配置相关内容。[root@master ~]# mkdir /usr/local/src/flume/job [root@master ~]# vi /usr/local/src/flume/job/logListen.conf //基本组件 a1.sources = s1 a1.sinks = k1 a1.channels = c1 //描述source a1.sources.s1.type = exec //使用exec时需要指定shell命令,对日志进行读取 a1.sources.s1.command = tail -f /usr/local/src/hadoop/logs/hadoop-root-datanode-master.log //描述sink a1.sinks.k1.type = hdfs a1.sinks.k1.hdfs.path = hdfs://master:9000/flume/%Y%m%d%H //hdfs路径 a1.sinks.k1.hdfs.filePerfix = database-log- //指定上传到hdfs文件名的前缀 a1.sinks.k1.hdfs.round = true //是否按照时间滚动文件夹(根据时间创建新文件夹) a1.sinks.k1.hdfs.roundValue = 1 //多长时间单位创建一个文件夹 a1.sinks.k1.hdfs.roundUnit = hour //重新定义时间单位 a1.sinks.k1.hdfs.useLocalTimeStamp = true //是否使用本地时间戳 a1.sinks.k1.hdfs.batchSize = 1000 //一个批次刷新到hdfs的event数量 a1.sinks.k1.hdfs.fileType = DataStream //设置文件类型,DataStream格式不会被压缩 a1.sinks.k1.hdfs.rollInterval = 600 //多长时间将临时文件滚动成一个新的文件 a1.sinks.k1.hdfs.rollSize = 1024 //当临时文件大小(byte)达到设置值时滚动成一个新的文件 a1.sinks.k1.hdfs.rollCount = 0 //设置临时文件的滚动与event的数量无关 a1.sinks.k1.hdfs.minBlockReplicas = 1 //写入hdfs文件块的最小副本数 //描述channel a1.channels.c1.type = memory //使用内存通道 a1.channels.c1.capacity = 1000 //存储在通道中的最大event数量 a1.channels.c1.transactionCapacity = 100 //一个事务中的最大事件数 //组件连接 a1.sources.s1.channels = c1 //指定agent a1的source(源)s1的通道为c1 a1.sinks.k1.channel = c1 //指定agent a1的sink(槽)k1的通道为c1,注意sink(槽)只能有一个通道,所以连接时为channel启动[root@master ~]# flume-ng agent -f /usr/local/src/flume/job/logListen.conf -n a1参数详解flume-ng flume启动命令agent 运行一个flume agent-f /usr/local/src/flume/job/logListen.conf 指定一个配置文件-n a1 agent名称(必填)
2022年06月05日
7,201 阅读
0 评论
1 点赞
2022-06-05
Spark报错总结
1.client模式异常 Yarn application has already ended! 解决:hadoop的配置文件yarn-site.xml,添加如下内容:<property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property>注意: 修改完配置文件后需要分发到各个节点,并重启Hadoop
2022年06月05日
3,075 阅读
0 评论
1 点赞
2022-06-02
Hive的DML数据操作
数据导入Load导入将文件中的数据导入(Load)到 Hive 表中语法:hive > load data [local] inpath '数据路径' [overwrite] into table table_name [partition (partcoll=vall,...)];参数详解:load data:加载数据local:表示从本地加载数据到 hive 表,否则从 HDFS 加载数据到 hive 表inpath:表示加载数据的路径overwrite:表示覆盖表中已有的数据,否则表示追加into table:表示加载到具体哪张表实例:1.无分区----加载本地路径数据到表 (overwrite重写)hive > load data local inpath '/data/load_data.txt' overwrite into table tbl_test;2.有分区----加载本地路径数据到表 (overwrite重写)hive > load data local inpath '/data/load_data.txt' overwrite into tbl_test partition (date='20201212');3.无分区----加载HDFS路径数据到表 (与本地相比,少一个local)hive > load data inpath '/tmp/data.txt' overwrite into table tbl_test;4.有分区----加载HDFS路径数据到表 (overwrite重写)hive > load data inpath '/tmp/data.txt' overwrite into table tbl_test partition (date='20201212');Insert导入向表中插入数据(Insert)1.基本插入数据hive > insert into table table_name partition(date='20201212') values(10001,'test');2.基本模式插入(根据单张表查询结果)hive > insert overwrite table table_name partition(date='20201212') select id, name from student where date='20201212';3.多插入模式(根据多张表查询结果)hive > from student insert overwrite table table_name partition(date='20201212') select id, name where date='20201212' insert overwrite table table_name partition(month='201706') select id, name where date='20201212';As Select导入查询语句中创建表并加载数据(As Select)语法:hive > create table table_name(id int) as select id from table_names;Location导入创建表时通过Location指定加载数据路径语法:hive > create table table_name(id int) location '集群数据路径';Import导入向表中装载数据(import)注意:先用export导出后,再将数据导入语法:hive > import table table_name partition(date='20201212') from '/user/hive/warehouse/export/table_name'; 数据导出Insert导出1.将查询的结果导出到本地hive > insert overwrite local directory '/datas/export/file' select * from table_name;2.将查询的结果格式化导出到本地hive > insert overwrite local directory '/datas/export/file' row format delimited fields terminated by '\t' select * from table_name;3.将查询的结果导出到HDFS上(没有local)hive > insert overwrite directory '/datas/export/file' row format delimited fields terminated by '\t' select * from student;Hadoop命令导出注意:该命令在hive命令行执行hive > dfs -get /user/hive/warehouse/test/date=20220505/000000_0 /opt/module/datas/export/test.txt;Hive Shell命令导出基本语法:(hive -f/-e 执行语句或者脚本 > file)bin/hive -e 'select * from default.test;' > /opt/module/datas/export/test.txt;Export导出到HDFShive > export table default.test to '/user/hive/warehouse/export/test';清除数据(Truncate)注意:Truncate只能删除管理表,不能删除外部表中数据hive > truncate table table_name;
2022年06月02日
918 阅读
0 评论
1 点赞
2022-06-01
http到https跨域 - CORS问题
前言 又是修bug的一个下午···其实这个bug已经存在一段时间了,但我这段时间主要在搞页面的美化,况且这个bug的影响倒也不是很大,所以才拖到现在才解决。这个bug是移动端打开页面会停在加载页面,资源加载不出,但刷新可以解决这个问题。 之前其实也不清楚是什么原因导致的,使用chrome的设备模拟也没有出现报错。今天博客的美化搞得差不多了,可以把这个问题解决一下了。 模拟设备不是真实情况,还是得实机模拟。调试移动端页面的方式挺多的,这里就写个简单的。前期准备手机 1.开启usb调试,使用数据线连接pc端 2.下载Edge浏览器打开页面(不用chrome是因为懒得架梯子)PC 1.打开Edge,地址栏输入edge://inspect/#devices 2.等待手机和 edge 响应,然后出现页面后,点击 inspect 就可以了 问题 打开页面后就看到报错了,果然模拟和实际还是不一样的。从报错信息看是说 CORS 策略已阻止从源“http://gokoululi.com”以“https://gokoululi.com/joe/api”位置访问 XMLHttpRequest:对预检请求的响应未通过访问控制检查:请求的资源上不存在“访问控制-允许-源”标头。简单的说就是https请求http跨域了。解决 要解决这个http与https跨域的问题其实很简单,只需要将http强制跳转到https就可以了。
2022年06月01日
2,092 阅读
0 评论
2 点赞
2022-06-01
Hive的库表操作
Hive的库表操作 hive是类sql的,所以对库表的操作也和sql相似。这里总结一下Hive的DDL数据定义,因为查询语句篇幅太长,就另起一篇记录Hive操作数据库{lamp/}创建数据库 首先,hive是将HDFS中结构化的数据文件映射成一张数据库表,并提供类SQL的功能。所以,可以将创建数据库理解为是创建一个大文件夹,而创建表则是创建一个存储结构数据的小文件夹1.创建一个数据库,数据库在HDFS 上的默认存储路径是 /user/hive/warehouse/\*.db2.避免要创建的数据库已经存在错误,增加 if not exists 判断。(标准写法)3.创建一个数据库,可以使用 location 指定数据库在 HDFS 上存放的位置 完整的创建数据库指令为:hive> create database [if not exists] <数据库名> [location <HDFS路径>];举例:在HDFS的hive目录下创建Test库hive> create database if not exists Test location '/hive/Test'; //要指定数据库名查询数据库Hive数据库查询常用操作指令1.查看所有数据库hive> show databases; 2.查看以db_开头的数据库hive> show databases like ‘db_*’;3.查看数据库的描述信息hive> desc database 数据库名;4.查看数据库详细的信息hive> desc database extended 数据库名;切换数据库hive> use 数据库名;修改数据库给数据库设置属性值,采用键值对标识这个数据库的属性信息。数据库的其他元数据信息都是不可更改的,包括数据库名和数据库所在的目录位置。语法:hive> alter database <database_name> set dbpropertis ('<property_name>'='<property_value>',..); 删除数据库1.删除空数据库可以直接删除2.删除数据库时,最好采用 if exists 判断数据库是否存在3.如果数据库不为空,可以采用 cascade 命令,强制删除。在删除数据库的时候会将数据库下面的所有表也进行删除。数据库删除后相应的hdfs上的目录也会被删除。hive> drop database [if exists] 数据库名;Hive操作表{lamp/}创建表建表语句:create [external] table [if not exists] 表名 [(字段名 数据类型 [comment 字段注释], ...)] [comment 表注释] [partitioned by (字段名 数据类型 [comment 字段注释], ...)] [clustered by (字段名, 字段名, ...) [sorted by (字段名 [ASC|DESC], ...)] into num_buckets BUCKETS] [row format row_format] [stored as file_format] [location hdfs_path]字段解释:1.create table 创建一个指定名字的表。如果相同名字的表已经存在,则抛出异常;可以用 if not exists 选项来忽略这个异常2.external 关键字可以让用户创建一个外部表,在建表的同时指定一个指向实际数据的路径(location),Hive 创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数据会被一起删除,而外部表只删除元数据,不删除数据3.comment:为表或列添加注释4.partitioned by 创建分区表5.clustered by 创建分桶表6.sorted by 指定排序(不常用)7.row format delimited [fields terminated by char] [collection items terminated by char] [map keys terminated by char] [lines terminated char] | serde serde_name [with serdeproperties (property_name=property_value, property_name=property_value, ...)]用户在建表的时候可以自定义 SerDe 或者使用自带的 SerDe。如果没有指定 ROW FORMAT 或者 ROW FORMAT DELIMITED,将会使用自带的 SerDe。在建表的时候,用户还需要为表指定列,用户在指定表的列的同时也会指定自定义的 SerDe,Hive 通过 SerDe 确定表的具体的列的数据。SerDe 是 Serialize/Deserilize 的简称,目的是用于序列化和反序列化8.stored as 指定存储文件类型9.location指定表在HDFS 上的存储位置。10.like 复制现有的表结构,但是不复制数据建表实例1.直接使用create语句 (if not exists判断是否已存在表,by后面接分隔符)//创建tbl_test1表,列分隔符为 , hive > create table if not exists tbl_test1(key int,value string) row format delimited fields terminated by ',';2.使用子查询的结果集建表 (表名前可加库名(库名.表名))create table 表名 as 子查询hive> create table tbl_test2 as select * from tbl_test1 where id > 1;3.使用子查询的结果集创建临时表create temporary table 表名 as select * from 表名2 limit 200;hive > create temporary table tbl_test3 as select * from tbl_test2 limit 200;4.创建外部表create external table 表名 (字段1 数据类型,字段2 数据类型) row format delimined fields terminated by ',';hive > create external table tbl_test4 (key1 string,key2 string) row format delimined fields terminated by ',';5.使用子查询的结果集创建创建视图create view 视图名 as select * from 表名 limit 200;hive > create view tbl_test5 as select * from tbl_test4 limit 200;6.根据已经存在的表结构创建表(不导入数据)hive > create table if not exists tbl_test6 like tbl_test5;7.创建分区表hive > create table tbl_test7(key1 int, key2 string) partitioned by (partitionkey string) row format delimited fields terminated by '\t';删除表不作判断直接删除hive > drop table tb_name;判断是否存在hive > drop table if exists tb_name;修改表1.重命名表hive > alter table table_name rename to new_table_name2.增加列hive > alter table student add columns (rank string);3.添加分区//添加多个分区partition(分区字段='分区值')以空格分隔 hive > alter table table_name add partition(分区字段='分区值') partition(分区字段='分区值'); 4.删除分区hive > alter table student drop partition(分区字段='分区值');5.替换列hive > alter table table_name replace columns (col_name data_type [comment col_comment], ...)6.更新列hive > alter table table_name change [column] col_old_name col_new_name column_type [comment col_comment] [first|after column_name]
2022年06月01日
894 阅读
0 评论
1 点赞
1
2
3
4
...
6
首页
复制
搜索
前进
后退
重载网页