![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大数据
文章平均质量分 82
古城的风cll
目标决定行动,行动影响成长速度
展开
-
面试:CAP原理
问题:CAP是什么意思,问什么只能满足两个?分布式系统最大的难点就是各个节点的状态如何同步,CAP定理是这方面的基本定理一、 分布式系统的三个指标P(partition tolerance)p代表分区容错,它的意思是区间通信可能失败,比如,一台服务器放在中国,另一台服务器放在美国,这就是两个区,它们之间可能无法通信。C(consistency)c代表一致性,表示写操作之后的读...转载 2019-08-21 13:50:06 · 5714 阅读 · 0 评论 -
linux系统——hadoop环境搭建
一、环境准备1)jdk(hadoop是由java语言编写的)2) 防火墙关闭(iptables,selinux)3)设置主机名,以及ip映射4)设置时钟同步5)设置免密登录6)windows配置ip映射说明:具体操作参照上两篇博客(集群环境搭建和zookeeper搭建)二、搭建hadoop集群1、解压hadoop的cdh预编译版本的安装包到esport/server2、进...原创 2019-07-20 19:47:14 · 4501 阅读 · 0 评论 -
程序员常用DOS命令
打开控制台 win+r 全局打开控制台 在打开的文件夹路径处cmd直接进入当前文件夹 常用dos命令 cd 文件夹名 ---进入当前文件 d: -------进入d盘 dir 显示当前路径下的所有文件 cd.. 返回上一层文件夹 cd/ 多层返回,返回到根目录 cls 清屏 exit 退出命令行 ...原创 2018-08-29 12:08:43 · 5397 阅读 · 0 评论 -
linux系统——zookeeper集群搭建
一、准备jdk(因为zookeeper是由java编写的)1.卸载centos自带的Openjdk,安装oracle的jdkrpm -qa | grep java ---查看现有jdkrpm -e xxx --nodeps ----卸载jdk(路径复制上面查看到的)2.安装jdk8的版本创建 /export/software 存放压缩包 /export/serve...原创 2019-07-20 18:26:54 · 4307 阅读 · 0 评论 -
python代码--截取文件名中的日期作为表格中的列,并把这些结构相同的excel合并成一个
import osimport pandas as pdpwd = r'C:\Users\chenl\Desktop\睿智\需求文档\评分业务\D3分\FICO_SCORE_D3_history'#新建文件列表,存放文件名file_list =[]#新建列表存放每个文件得数据dfs = []#os.walk 遍历目录内的各个子目录和文件for root, dirs, files in os.walk(pwd): # 第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文原创 2020-11-19 10:59:56 · 4616 阅读 · 0 评论 -
impala查询内存限制Memory limit exceeded
https://blog.csdn.net/oosongoo/article/details/78435779原创 2020-10-19 11:04:11 · 5969 阅读 · 0 评论 -
linux命令--文件中字符串定位
1.命令模式下[:]2./需要查询的内容—回车3.通过点击[n]键定位内容位置原创 2020-10-19 11:03:19 · 5561 阅读 · 0 评论 -
kafka常用命令
查看topic信息:bin/kafka-topics.sh --list --bootstrap-server common1:9092查看topic内容:bin/kafka-console-consumer.sh --bootstrap-server common1:9092 --topic hbcs_db --from-beginning创建topic:bin/kafka-topics.sh --create --bootstrap-server common1:9092 --topic ct原创 2020-10-10 15:25:34 · 4320 阅读 · 0 评论 -
hive中not in函数的坑
not in () --括号中是不为Null的字符串,但是最后得到的结果不包含Null原因:上述语句返回的结果是null,而不是true,not in 只会筛选出结果是true的原创 2020-10-09 14:31:51 · 5139 阅读 · 0 评论 -
hive表修复分区--(导入hdfs文件,hive表刷新不出来)
msck repair table 表名作用是将任何存在于hdfs,但不在metastore上的partition元信息更新到metastore中原创 2020-10-09 14:21:16 · 5137 阅读 · 0 评论 -
group_concat() 拼接字符串长度限制
group_concat() 拼接列的时候长度受限,字符串的长度不能超过1024,超出1024会被截断设置Mysql 配置set session group_concat_max_len = 150000;原创 2020-10-09 10:17:36 · 4973 阅读 · 0 评论 -
列式数据库和行式数据库区别
转载自:https://blog.csdn.net/nieson2012/article/details/79551337列存储不同于传统的关系型数据库,其数据在表中是按行存储的,列方式所带来的重要好处之一就是,由于查询中的选择规则是通过列来定义的,因此整个数据库是自动索引化的。按列存储每个字段的数据聚集存储,在查询只需要少数几个字段的时候,能大大减少读取的数据量,一个字段的数据聚集存储,那就更容易为这种聚集存储设计更好的压缩/解压算法。传统的行存储和列存储的区别1、数据是按行存储的2、没有索引的查原创 2020-09-27 14:50:05 · 6938 阅读 · 0 评论 -
kerberos和ldap和sentry
sentry 是权限控制kerberos是身份认证,类似于防火墙.它是一个用于安全认证的第三方协议,并不是hadoop专用。可以用于其它系统,它采用了传统的共享密钥的方式,实现了client和server的通信ldap是用户密码认证,clouderl登录hive和impala的时候,不输密码也可以登录,加了ldap就是必须输入账号密码...原创 2020-09-27 14:35:54 · 4873 阅读 · 0 评论 -
truncate和delete和drop的区别
truncate会清空表数据和索引truncate table table_name;delete会清楚表数据,但是索引不会清楚,再次插入数据时索引会接着之前的索引delete from table_name;drop会把表结构也删除drop table table_name;原创 2020-09-27 14:34:10 · 4248 阅读 · 0 评论 -
kudu介绍和使用
kudu架构同hdfs和Hbase相似,kudu使用单个的master节点,用来管理集群的元数据,并且使用任意数量的tablet server节点来存储实际数据。可以部署多个master节点来提高容错性,一个table表的数据,被分割成一个或多个tablet,tablet被部署在 tablet server来提高数据读写服务Kudu有列长度限制,不能超过64k不支持CHAR、VARCHAR、DATE和数组等复杂类型。不能通过ALTER TABLE更改现有列的类型和是否可为空属性DECIMAL类型原创 2020-09-27 14:29:01 · 6120 阅读 · 0 评论 -
hbase预分区
1、什么是预分区? hbase表在刚创建时,只有一个分区region,当一个region过大( 达到hbase.hregion.max.filesize属性中定义的阈值,默认10GB )时,表会进行split分割成两个region.表在进行split的时候,会耗费大量的资源,频繁的分区对hbase的性能有巨大的影响。 hbase提供了预分区的功能,即用户在创建表时就对表按照一定的规则分区2、如何预分区? a、通过hbase shell命令来创建create 't1', 'f1', S原创 2020-09-27 14:21:31 · 4805 阅读 · 0 评论 -
UTC和CST时区
UTC:世界协调时间,也就是零时区的时间CST: 中国标准时间,中国是东八区,故比UTC大8小时原创 2020-09-27 14:11:24 · 6961 阅读 · 0 评论 -
impala查询带有map类型字段的表
impala不支持复杂类型字段的查询,当使用select * 查询时,只会返回基本类型的列对复杂类型的处理方式是,把复杂类型当作一张表api_event表中的response_data是一个map类型的字段SELECT a.dt,t.`key`,t.value from finhub_eventlog.api_event a,a.response_data t where t.`key`='haspassword'注意:如果给表写了别名 map字段前的表名要用别名 不然关联不上 查出来的就是笛卡尔原创 2020-09-27 14:07:30 · 5589 阅读 · 0 评论 -
hive数据导入到hbase
方式一: hbase中建表,然后hive中建外部表,这样当hive中写入数据后,hbase中的表也会同时更新创建hbase表create 'classes','user' --表名是class,有一个列族user查看表结构describe 'classes'加入两行数据put 'classes','001','user:name','jack'put 'classes','001','user:age','20'查看表中的而数据scan 'classes'创建hive外表,之原创 2020-09-27 11:44:15 · 5797 阅读 · 0 评论 -
hive中得字符串连接函数concat,concat_ws,group_concat
contact() 连接多个字符串,如果其中有一个字符串为Null,则最后结果为nullcontact_ws() 第一个参数是分隔符,即多个字符串要使用该分隔符连接起来group_concat() 该结果由分组中的值连接而成原创 2020-09-15 16:21:42 · 6166 阅读 · 0 评论 -
jupyter notebook安装介绍
jupyter notebook是一款交互式笔记本,可以使用网页打开,支持40多种编程语言,可以在该网页中直接编写代码和运行代码,代码的结果会直接显示在每个代码块下面安装方式1、如果电脑上已经安装了python,可以在命令行中直接通过pip install jupyter 进行安装安装成功后,cmd中使用jupyter notebook命令即可打开2、对于小白来说,可以下载安装最新版的Anaconda,因为Anaconda已经自动为你安装了Jupter Notebook及其他工具,还有python中原创 2020-07-09 10:47:00 · 4411 阅读 · 0 评论 -
hive中常用的时间格式转化
select from_unixtime(unix_timestamp('20180905','yyyyMMdd'),'yyyy-MM-dd');SELECT next_day(current_date(),'MO'); --取当前周的下周一SELECT date_add(next_day(current_date(),'MO'),-7); --取当前周的周一SELECT last_day(current_date()); --取当前月的最后一天SELECT to_date(原创 2020-06-23 09:48:05 · 5479 阅读 · 0 评论 -
hive中得到周一,周五等
select date_sub('2020-04-05',pmod(datediff('2020-04-05','1900-01-08'),7)) as Last_Monday; --得到2020-02-01所在周的周一select date_sub('2020-04-05',pmod(datediff('2020-04-05','1900-01-08'),7)-4) as Last_Monday; --得到2020-02-01所在周的周五select date_sub(date,pmod(dat原创 2020-06-23 09:46:45 · 8070 阅读 · 0 评论 -
hive复制表结构
1、复制非分区表结构CREATE TABLE bigdata17_new AS SELECT * FROM bigdata17_old;2、复制分区表结构CREATE TABLE bigdata17_new like bigdata17_old;原创 2020-05-09 19:50:17 · 4659 阅读 · 0 评论 -
hive数据导入导出方式
1、数据导入load data local inpath '/usr/local/data/user.txt' into table jiuye partition(grade='1');local 表示从本地加载数据,不加local,表示从hdfs上加载数据2、数据导出insert overwrite local direactory '/tmp/11' select * from ...原创 2020-05-08 09:59:18 · 4335 阅读 · 0 评论 -
linux中用户相关命令
1、查看所有用户cat /etc/passwd2、新增用户useradd 用户名 --创建用户passwd 用户名 --设置新用户的密码注意:创建用户的时候,默认会创建一个和新用户同名的用户租3、删除用户userdel 用户名4、切换用户su 用户名exit 可以退出到root用户5、查看用户所属用户租groups 用户名...原创 2020-05-08 09:43:14 · 4482 阅读 · 0 评论 -
superset使用——用户权限管理(只看到自己的dashboard看板)
实现功能:在superset上添加新用户,让其只能看到某一张指定的表1、连接数据库在此处写上数据库连接地址,其中database是自己起的这个连接的名字2、配置表dabases是刚刚建好的数据库连接的名字,schema是需要展示的表所在的库3、为用户新建一个角色名称自定义,权限选择刚刚配置好的库表4、新建用户其中角色,选择刚刚自定义好的...原创 2020-04-29 13:55:53 · 9004 阅读 · 0 评论 -
hive中distinct和group by优化
1、避免使用count distinct ,容易引起性能问题select distinct(user_id) from a ;由于必须去重,因此Hive会把map阶段的输出全部分布到一个reduce task中,容易引起性能问题,可以通过先group by ,再count得方式进行优化优化后:select count(*)from(select user_id from a group ...原创 2020-04-28 09:41:33 · 5223 阅读 · 0 评论 -
sqoop和flume的区别
sqoopsqoop是一种旨在haoop和如mysql等结构化数据存储之间传输大量数据的工具原理:将导入导出的命令翻译成mapreduce来实现在翻译出的mapreduce中主要是对inputfromat和outputformat进行定制sqoop import \--connect jdbc:mysql://hadoop102:3306/company \--username ro...原创 2020-04-28 09:26:55 · 8779 阅读 · 0 评论 -
datagrip的使用
1、同步表2、写查询右键选中库名,选择open console或者直接选中库,按f43、执行sql语句写完sql之后,直接ctrl+enter原创 2020-04-28 08:48:47 · 5930 阅读 · 0 评论 -
streamSets中导入数据从jdbc到kudu出现时区问题
出现的问题:streamSets中从mysql读取数据到kudu,发现时间字段少了8小时出现的原因:mysql中使用的是cst时区,而impala操作kudu时使用的是utc时区解决办法:在jdbc配置中增加...原创 2020-02-19 10:18:45 · 5622 阅读 · 1 评论 -
hive动态分区
1、动态分区参数设置开启动态分区—默认为falsehive.exec.dynamic.partition =true设置动态分区模式动态分区的模式为strict,表示必须指定至少一个分区为静态分区,nonstrict模式表示允许所有的分区字段都可以使用动态分区。一般需要设置为nonstricthive.exec.dynamic.partition.mode = nonstrict...原创 2020-01-31 12:38:36 · 4483 阅读 · 0 评论 -
hbase建表语句解析
create 'tableName',{NAME=>'Toutiao',VERSIONS=>1,BLOCKCACHE=>true,BLOOMFILTER=>'ROW',COMPRESSION=>'SNAPPY',TTL => ' 259200 '},{SPLITS => ['1','2','3','4','5','6','7','8','9','a','b...原创 2020-01-31 12:36:01 · 7334 阅读 · 0 评论 -
hive开窗函数
1、什么是开窗函数?开窗就是在查询的结果上多出一个列,特征就是带有over(),分为聚合开窗和排序开窗2、常用的开窗函数a、排序开窗row_number() over(...) --从1开始生成序列举例:select *,ROW_NUMBER() OVER (partition by id order by extract_time desc同类型的有:rank() over(...)...原创 2020-01-31 12:35:10 · 4414 阅读 · 0 评论 -
hive中将bigint(13)转化为日期类型
select date_format(FROM_UNIXTIME(1571709884000/1000))说明:13位的整型除以1000等于时间戳timestamp将时间戳类型转化为日期类型使用from_unixtime原因:Java的date默认精度是毫秒,由date转换成的时间戳是13位的,而c++,php生成的时间默认就是10位的,精度是秒如果要将日期类型转化为时间戳类型使用 un...原创 2020-01-30 19:26:22 · 11538 阅读 · 0 评论 -
date和dateTime以及timestamp的区别
Date 代表xx年xx月xx日,只表示前面的日期DateTime代表xx年xx月xx日xx时xx分xx秒,精确到时分秒,用于做时间戳Timestamp也表示xx年xx月xx日xx时xx分xx秒,它会把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储,查询时,又将其转化为客户段当前的时区进行返回而dateTime不做任何改变,基本原样输入和输出...原创 2020-01-30 19:24:34 · 5444 阅读 · 0 评论 -
在分组内累计求和 sum() over(partition by .. order by ..)
select v1,v2,sum(v2) over(partition by v1 order by v2) as sum参考链接:https://blog.csdn.net/wawmg/article/details/40840093原创 2020-01-20 14:56:02 · 6463 阅读 · 0 评论 -
hive中生成id
select row_number() over(partition by 1)原创 2020-01-20 14:54:29 · 5762 阅读 · 0 评论 -
hive判断跨年的周属于哪一年
按照习惯,跨年的周中哪一年的天数多就算哪一年的周select year(date_sub(next_day(date_sub(current_date,1),'MO'),4))原创 2020-01-20 14:53:05 · 5283 阅读 · 0 评论 -
hive计算指定日期所在周的第一天和最后一天
按每周第一天是周一计算select date_add(current_date(),1 - case when dayofweek(current_date()) = 1 then 7 else dayofweek(current_date()) - 1 end) as Mo_s 按每周的最后一天是周日计算select date_add(current_date(),7 - case wh...原创 2020-01-20 14:52:02 · 8864 阅读 · 0 评论