各种数据库相关知识
oracle相关
oralce将view转成table create table xxx as select * from “viewxxxx”;
hive相关
hive查询
ssh dp@127.0.0.1 连接到hive服务器如cdh01
[dp@cdh01 ~]$ sudo -i
[root@cdh01 ~]# beeline
beeline> !connect jdbc://cdh03:10000
hdfs
或
1.ssh cdh03
2.hive (如果没权限,执行: sudo -u hdfs hive)
我一般用后者。
show databases;显示所有的数据库:
use hive_orc;选择数据库orc;
show tables;查看数据库中所有的表单;
select * from gll31;查询表单数据;
Hive 增删改查相关操作
修改表字段
ALTER TABLE 表名 CHANGE 旧字段 新字段 类型;
ALTER TABLE yzy_0612_copy CHANGE a aa int;
添加字段 ALTER TABLE test ADD COLUMNS(age Int);
创建测试表 CREATE TABLE IF NOT EXISTS test (id BIGINT, name STRING);
插入一条数据 INSERT INTO TABLE test VALUES(2341344423,”lisi”);
查看表的字段信息
desc yzy_0612_copy;
删除字段(使用新schema替换原有的)
ALTER TABLE yzy_0612_copy REPLACE COLUMNS(id BIGINT, name STRING);
Hive分区添加增量数据
1、先把文件准备好 然后从要读取的路径外面将文件copy 到读取的路径
2、以hdfs用户身份操作
3、命令:[root@cdh03 ~]# sudo -u hdfs hdfs dfs -cp 原文件 目标文件
实际操作 先在cdh03下通过命令查看查看orc目录下的数据
[dp@cdh03 ~]$ hdfs dfs -ls /data/hive_orc/ss1
显示数据
-rw-r–r– 3 hdfs supergroup 3508 2019-10-29 03:01 /data/hdfs_parquet/ss1/dptask_48.hdfsFile.ss1_ss1+0+0000000000+00000000011.parquet
复制数据的目录修改名字如
[root@cdh03 ~]# sudo -u hdfs hdfs dfs -cp /data/hive_orc/ss1/dptask_28.hdfsFile.ss1_ss1+0+0000000000+0000000009.orc /data/hive_orc/ss1/dptask_28.hdfsFile.ss1_ss1+0+0000000001+00000000011.orc
就相当于把ss1中的文件copy了一条增量
再查就多了一条数据添加增量成功
[dp@cdh03 ~]$ hdfs dfs -ls /data/hive_orc/ss1
如何查看hive 源中的表是否分区
ssh 连接服务器
sudo -i 获取权限
ssh cdh03连接到03
hive 进入hive
use hive_parquet;
show tables;
select * from gll31;查找目的表
show create table gll31;
show partitions gll31;有一堆id就是分区了的
kafka相关
kafka 127.0.0.1
kafka的另类之处在于,只能写入已有的topic,也就是说需要提前创建一个新的topic才可以写,
localhost:~ yuzhenyu$ ssh dp@127.0.0.1 //先连接到Kafka服务器
[dp@kafka ~]$ sudo -i
创建Kafka topic
查看kafka目的地数据
[root@kafka ~]# cd /data/kafka/bin
[root@kafka bin]# ./kafka-console-consumer.sh –zookeeper localhost:8888 –topic yzy_03 –from-beginning
kafka目的地创建topic:
./kafka-topics.sh –create –zookeeper localhost:8888 –replication-factor 1 –partitions 1 –topic gll_01
kafka目的地消费数据:
./kafka-console-consumer.sh –zookeeper localhost:8888 –topic gll_01 –from-beginning
kafka目的地验证一致性:
验证一致性: 就是说Kafka消费了多少数据,目的地就有多少数据
看看kafka里的消费数据和目的地是否一致
是我们的kafka topic 和目的地的kafka 数据量一致
目的地数据量:
[root@kafka bin]# ./kafka-run-class.sh kafka.tools.GetOffsetShell –broker-list localhost:9999 –topic gll_13 –time -1 –offsets 1
gll_13:0:1000000
查消费:
你在 singlehost 目录下 执行 ../topic.sh list 然后根据 dptask id 找到一条记录 再用这个记录去 ../topic describe 这个记录
[root@zhenyu-test ~]# cd 2.7/datapipeline/singlehost/
[root@zhenyu-test singlehost]# ../topic.sh list
task_operation_sinkdp1 task task_operation_sourcedp1 error_queue connect-dp-ftp-sink-connector-dptask_1_8 task_operation_null connect-dp-kafka08-connector-dptask_5_7 connect-dp-kafka08-connector-dptask_2_7 connect-dp-kafka08-connector-dptask_3_7
[root@zhenyu-test singlehost]# ../topic.sh describe connect-dp-kafka08-connector-dptask_5_7
[root@zhenyu-test singlehost]# ../topic.sh desc connect-dp-kafka08-connector-dptask_5_7
TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID v2_dptask_2.dp_test.A_Pk_table_inc100gll_copy4.989 0 2000007 2000008 1 connector-consumer-dp-kafka08-connector-dptask_2_7-0-3866b8b4-9733-47f2-8ad6-c8759fb68ec0 /192.168.112.10 connector-consumer-dp-kafka08-connector-dptask_2_7-0
2000008 就是 我们的kafka topic 数据量
绕过前端重启容器
sinkdp容器号 654be3061da5
source容器号 368e60bed7b0
docker exec -it 654be3061da5 curl -XPUT manager:2222/dptasks/5/restart
docker exec -it 368e60bed7b0 curl -XPUT manager:2222/dptasks/5/restart
验证hive kerberos
1.认证方式 选择Kerberos;上传krb5.conf配置;HDFS Principal:hdfs/kerberos-cdh@DP.COM;上传HDFS Keytab配置 2.配置sinkdp,manager,webservice的host映射
- 微软云: kerberos.dp.com:127.0.0.1 kerberos-cdh:127.0.0.1
(web service里的extra——host 和hosts只能加一个 不能两个都加。否则出现 测试HDFS读写失败。报错。
hdfs相关
hdfs读取分区查询
步骤:
1、ssh dp@127.0.0.1
2、sudo -i
3、ssh cdh03
4、 hdfs dfs -ls /data/hdfs_lzo/ss1_fenqu
(注意表名和目录,目录去任务目的地看)
Hbase 相关
Hbase目的地
ssh dp@127.0.0.1
sudo -i
hbase shell
list
scan ‘表名’
高级清洗:
record.put(“rowkey”,record.get(“id”)+”5”);(拼接两个字符串)
ftp相关
ftp数据源
ssh dp@127.0.0.1
sudo -i
cd /data/nftp/
cd source/
cd static/
rz上传命令不会用,
http://fs.datapipeline.com:7777/fs/mnt/fs/csv/
可传到这个网址里,然后wget这个地址
ftp目的地
ssh dp@127.0.0.1
sudo -i
cd /data/nftp/
cd sink/
cd 数字目录 网址上的序号
cd ss1/
cat 0-9