分類:樹形結構
id + pid
1 *** 0
2 yyy 1
商品:歸屬於某個分類
id name catagory_id
訂單表:
誰 什麼時間 買了什麼東西
訂單編號 會員編號 總額...
訂單條目:
商品 數量 單價 訂單編號
14天 今天-14天
select day,count(1) from *** where time group by day
day desc
業務資料存放在mysql中,後續需要大資料平台來進行處理
1) mysql匯入到hadoop(hive/hbase...)
2) 借助於大資料的分布式引擎:hive/spark/flink...
3) 處理完之後得到結果(結果資料還是儲存在hadoop)
4) 分析處理結果 匯出到 rdbms(mysql)
5) ui對接你們rdbms的資料來進行展示
spring boot + spring data + react
生產上面資料來源有兩種:
rdbms:需要使用框架或者技術把rdbms的資料匯入到hadoop
sqoop
spark
...log:需要使用框架或者技術把log採集到hadoop
flume
logstash
...
hadoop和rdbms之間進行資料傳輸的乙個工具而已
底層是使用mapreduce實現
sqoop的作業最終還是要提交到yarn上去執行的
3) 配置:
$sqoop_home/conf/sqoop-env.sh
4) $sqoop_home/lib
mysql驅動
5) 使用
一定要學會help的用法
usage: sqoop command [args]
sqoop help list-databases
sqoop list-tables \
--connect jdbc:mysql://localhost:3306/online_retailers \
--password ruozedata \
--username root
mysql ==> hdfs 匯入 import
create table emp_etl(
empno int,
ename string,
job string,
mgr int,
hiredate string,
sal double,
comm double,
deptno int
) row format delimited fields terminated by '\t';
create table dept_etl(
deptno int,
dname string,
loc string
) row format delimited fields terminated by '\t';
create table result_etl(
empno int,
ename string,
comm double,
dname string
) row format delimited fields terminated by '\t';
create table result_etl(
empno int,
ename varchar(20),
comm double,
dname varchar(10));
sqoop import \
--connect jdbc:mysql://localhost:3306/sqoop \
--password ruozedata --username root \
--table emp \
--mapreduce-job-name frommysql2hdfs \
--delete-target-dir \
--columns "empno,ename,job,sal,comm" \
--target-dir emp_column_where \
--fields-terminated-by '\t' \
--null-string '' --null-non-string '0' \
--where 'sal>2000' \
-m 1
sqoop import \
--connect jdbc:mysql://localhost:3306/sqoop \
--password ruozedata --username root \
--mapreduce-job-name frommysql2hdfs \
--delete-target-dir \
--columns "empno,ename,job,sal,comm" \
--target-dir emp_column_query \
--fields-terminated-by '\t' \
--null-string '' --null-non-string '0' \
--query "select * from emp where sal>2000 and \$conditions" \
-m 1
sqoop import \
--connect jdbc:mysql://localhost:3306/sqoop \
--password ruozedata --username root \
--mapreduce-job-name frommysql2hdfs \
--table salgrade \
--delete-target-dir \
--target-dir salgrade \
--fields-terminated-by '\t' \
--null-string '' --null-non-string '0' \
--split-by 'grade' \
-m 2
import
--connect
jdbc:mysql://localhost:3306/sqoop
--password
ruozedata
--username
root
--mapreduce-job-name
frommysql2hdfs
--table
emp--delete-target-dir
--target-dir
emp_options_file
-m1
fs -ls vs fs -ls /
mr:reducer個數決定了最終輸出檔案的個數
沒有reducer呢?map
sqoop export \
--connect jdbc:mysql://localhost:3306/sqoop \
--password ruozedata --username root \
--mapreduce-job-name frommysql2hdfs \
--table emp_demo \
--export-dir /user/hive/warehouse/ruozedata_emp \
--fields-terminated-by '\t' \
-m 2
sqoop import \
--connect jdbc:mysql://localhost:3306/sqoop \
--password ruozedata --username root \
--table dept \
--mapreduce-job-name frommysql2hdfs \
--delete-target-dir \
--hive-import \
--hive-table dept_etl \
--fields-terminated-by '\t' \
--null-string '' --null-non-string '0' \
-m 1
mysql:
emp dept
==> sqoop hive表
==> 表裡儲存 select e.empno, e.ename, e.deptno, d.dname from emp e join dept d on e.deptno=d.deptno;
==> mysql
使用sqoop從Hive導數到Oracle
導數命令 sqoop export table u cl ctl.mid order vip level change ma connect jdbc oracle thin 1521 biedwmiu username password columns id,vip no,order no,vip...
sqoop 安裝與使用
sqoop安裝 安裝在一台節點上就可以了。1.上傳sqoop 2.安裝和配置 在新增sqoop到環境變數 將資料庫連線驅動拷貝到 sqoop home lib裡 3.使用 第一類 資料庫中的資料匯入到hdfs上 sqoop import connect jdbc mysql username roo...
sqoop操作與使用
sqoop只要安裝到集群中的一台節點就可以了 1.上傳sqoop到節點中 2.安裝和配置 在新增sqoop到環境變數到 etc profile中 將資料庫連線驅動拷貝到 sqoop home lib裡 3.使用 第一類 資料庫中的資料匯入到hdfs上 sqoop import connect jdb...