日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据转移-从MySQL到Hive

發(fā)布時(shí)間:2025/3/15 数据库 8 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据转移-从MySQL到Hive 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)載:?https://blog.csdn.net/qq_34100655/article/details/81033022

    • 簡介
    • 打開Hive
    • 任務(wù)描述
    • 解決思路
    • 技術(shù)點(diǎn)

簡介

Hive是Hadoop生態(tài)中非常重要的一環(huán),可以作為數(shù)據(jù)倉庫存儲(chǔ)極大量的數(shù)據(jù);另外,還可以實(shí)現(xiàn)與MySQL、NoSQL等傳統(tǒng)數(shù)據(jù)庫,HBase等大數(shù)據(jù)控件之間的數(shù)據(jù)ETL。在我的日常工作中,將使用Hive的經(jīng)驗(yàn)總結(jié)如下。


打開Hive

Hive從屬于Hadoop生態(tài)的一環(huán),一般安裝在Linux服務(wù)器上,我司也不例外。由于環(huán)境早已配置好了,這里只講述hive的使用,不講述其安裝配置。

1.打開Xshell軟件,建立個(gè)人Windows PC機(jī)與Linux服務(wù)器的遠(yuǎn)程連接;

2.在界面中輸入su hdfs進(jìn)入操作者模式,再輸入hive,從Linux中進(jìn)入Hive內(nèi)部,啟動(dòng)Hive的代碼如下:

[root@name01-test ~]# su hdfs [hdfs@name01-test root]$ hive Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512M; support was removed in 8.0 SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-5.15.0-1.cdh5.15.0.p0.21/jars/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-5.15.0-1.cdh5.15.0.p0.21/jars/spark-assembly-1.6.0-cdh5.15.0-hadoop2.6.0-cdh5.15.0.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] Java HotSpot(TM) 64-Bit Server VM warning: Using incremental CMS is deprecated and will likely be removed in a future release SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-5.15.0-1.cdh5.15.0.p0.21/jars/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-5.15.0-1.cdh5.15.0.p0.21/jars/spark-assembly-1.6.0-cdh5.15.0-hadoop2.6.0-cdh5.15.0.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory] Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=512M; support was removed in 8.0 SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-5.15.0-1.cdh5.15.0.p0.21/jars/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/opt/cloudera/parcels/CDH-5.15.0-1.cdh5.15.0.p0.21/jars/spark-assembly-1.6.0-cdh5.15.0-hadoop2.6.0-cdh5.15.0.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]Logging initialized using configuration in jar:file:/opt/cloudera/parcels/CDH-5.15.0-1.cdh5.15.0.p0.21/jars/hive-common-1.1.0-cdh5.15.0.jar!/hive-log4j.properties WARNING: Hive CLI is deprecated and migration to Beeline is recommended. hive> [hdfs@name01-test root]$
  • ?

注意:這里只有第一行的[root@name01-test ~]# su hdfs中的su hdfs和第二行的hive是自己手動(dòng)輸入的,下面的大段代碼都是系統(tǒng)默認(rèn)給出的,不用管。接下來,在hive> [hdfs@name01-test root]$后面敲出Hive SQL即可;

注意:這里進(jìn)入hive的代碼,不能直接輸入hive;因?yàn)槲疫B接服務(wù)器的賬號(hào)是root,而當(dāng)hadoop集群加上權(quán)限管理后,即使是linux的root用戶也不能擁有最高權(quán)限了,root用戶很多數(shù)據(jù)庫都進(jìn)去不了了。因?yàn)閔dfs的管理員是hdfs,因此,只能以su dhfs的方式進(jìn)去;

3.Hive QL簡稱HQL,語法與MySQL幾乎完全一樣。所以說,搞數(shù)據(jù)開發(fā),MySQL是基石,非常之重要;


任務(wù)描述

昨天小組組長給了一個(gè)新手任務(wù):?
我的本地電腦描述為PC-A,遠(yuǎn)程電腦PC-B上有個(gè)MySQL數(shù)據(jù)庫,hadoop集群部署在測試服務(wù)器PC-C上?,F(xiàn)在,需要把PC-B上的一些table導(dǎo)入到PC-C的Hive數(shù)據(jù)倉庫中。怎么辦?


解決思路

  • 利用Navicat軟件連接到遠(yuǎn)程電腦PC-B的MySQL上,會(huì)發(fā)現(xiàn)MySQL中有很多個(gè)DataBases,每個(gè)db又有很多個(gè)Tables。選擇自己需要導(dǎo)出的Tables,記住它的名字。假設(shè)需導(dǎo)出的table為數(shù)據(jù)庫D_db下的E_tab;?
  • 利用Kettle Spoon軟件,連接到D_db上;然后建立“表輸入”-“文本文件輸出”關(guān)系,以E-tab為輸入文件,自主命名一個(gè)txt為輸出文件,利用Kettle Spoon將MySQL中的目標(biāo)表格轉(zhuǎn)化為F_txt格式,并保存到本地;
  • 利用Xftp軟件,建立起PC-A本地電腦與hadoop PC-C的連接,再講上述的F_txt拷貝到PC-C的Linux的某個(gè)地址下;
  • 利用Xshell軟件,再PC-A上遠(yuǎn)程操作PC-C的系統(tǒng),進(jìn)入hive數(shù)據(jù)庫之后,新建一個(gè)新表G_tab,然后將F_txt直接加載到G_tab中,即完成了小組長所述的數(shù)據(jù)轉(zhuǎn)移操作。

  • 技術(shù)點(diǎn)

  • 將本地電腦PC-A連接到遠(yuǎn)程服務(wù)器PC-B~MySQL。這個(gè)實(shí)在太簡單了,就不說了;?
  • Navicat、Kettle Spoon、Xftp、Xshell的基本使用方法;
  • Linux的基本命令,MySQL和Hive的基本語句(二者很相似);
  • 在PC-C中新建的表格G_tab,其屬性名必須與E_tab完全一致。創(chuàng)建G_tab的方法,需要使用到其DLL,可通過下面兩種方法來得到;?

  • 得到DLL之后,還需要修改其語法,特別是屬性、分隔符等,使其符合Hive語法,才能將上述語句粘貼到Hive命令行下面,新建G_tab;load data local inpath '/root/ys/ys.txt(你自己的文件名及Linux路徑)' into table G_tab; 詳情可參考https://www.cnblogs.com/juncaoit/p/6027977.html;
  • 要尤其注意,使用Kettle Spoon轉(zhuǎn)換MySQL為txt的時(shí)候,要設(shè)置分隔符,最好是||,這一點(diǎn)非常重要;相對應(yīng)的,在新建G_tab時(shí),要在其DLL末尾加上一句:ROW FORMAT DELIMITED FIELDS TERMINATED BY '(分隔符)' STORED AS TEXTFILE。否則,導(dǎo)入Hive的都是NULL;
  • ?導(dǎo)入完畢之后,使用:SELECT * FROM G_tab或者SELECT * FROM G_tab LIMIT 100查看前100行數(shù)據(jù),是否與MySQL中的一致,若不一致,則說明導(dǎo)入Hive出了問題。
  • 總結(jié)

    以上是生活随笔為你收集整理的数据转移-从MySQL到Hive的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。