版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第二單元數(shù)據(jù)互導Sqoop掌握Sqoop的安裝與配置掌握互導腳本的編寫熟悉SqoopJob的使用熟悉Sqoop各種命令參數(shù)的使用2.1什么是Sqoop 大數(shù)據(jù)項目在處理數(shù)據(jù)時,往往面對的數(shù)據(jù),其結(jié)構(gòu)并不是完全統(tǒng)一的結(jié)構(gòu)模型,這其中既存在有結(jié)構(gòu)化的數(shù)據(jù),也存在有非結(jié)構(gòu)化的數(shù)據(jù),以及半結(jié)構(gòu)化的數(shù)據(jù)。Sqoop是一款用于在結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化數(shù)據(jù)源之間進行高效傳輸數(shù)據(jù)的工具。只需通過編寫Sqoop導入/導出方案,就可以實現(xiàn)將一個關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)導入到Hadoop中(HDFS、HBase、HIVE),或?qū)DFS的數(shù)據(jù)導出到關(guān)系型數(shù)據(jù)庫(Mysql、Oracle、Postgresql等)中。它的目標使用人群主要是,系統(tǒng)和應用程序開發(fā)人員、數(shù)據(jù)庫管理員、數(shù)據(jù)分析員、數(shù)據(jù)項目師等。2.2Sqoop的安裝 在安裝Sqoop之前,集群中應已安裝好JavaJDK和Hadoop。在瀏覽器的地址欄中輸入網(wǎng)址“/”,訪問Sqoop官網(wǎng)。
譯文:Sqoop目前的最新穩(wěn)定版本是1.4.7。Sqoop2的最新分支是1.99.7版。注意:1.99.7與1.4.7不兼容,而且1.99.7版也不是一個確定的完成品,不適合用于在生產(chǎn)環(huán)境中。單擊Sqoop1.4.7的“download”鏈接。在打開的新頁面中,單擊“Downloads”處的鏈接,進入下一個頁面。
在打開的下一頁面中,單擊“1.4.7”處的鏈接地址。然后在打開的新頁面中,移動光標,指向“sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz”處,單擊鼠標右鍵,在彈出的快捷菜單中,單擊“復制鏈接地址(E)”菜單項。輸入“wget”命令,后面間隔一個英文的空格,然后將“sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz”的下載地址粘貼在“wget”命令后,回車執(zhí)行命令。[root@node1software]#wget/dist/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz將下載好的Sqoop解壓到目標目錄。[root@node1software]#tar-zxvfsqoop-1.4.7.bin__hadoop-2.6.0.tar.gz-C/usr/app/1.下載安裝2.配置Sqoop文件進入解壓后的Sqoop的“conf”配置目錄。將“conf”目錄下的sqoop-env-template.sh文件,復制重命名。[root@node1conf]#cpsqoop-env-template.shsqoop-env.sh打開剛剛復制重命名的sqoop-env.sh文件。向文件中,追加寫入以下配置代碼(以下所列地址只作格式說明,具體地址根據(jù)自己的安裝路徑設(shè)置)。#指定hadoop的安裝目錄exportHADOOP_COMMON_HOME=/usr/app/hadoop-3.3.1/#指定hadoop的安裝目錄exportHADOOP_MAPRED_HOME=/usr/app/hadoop-3.3.1/#如果安裝了hbase,指定hbase的安裝目錄exportHBASE_HOME=/usr/app/hbase-2.3.4/#如果安裝了hive,指定hive的安裝目錄exportHIVE_HOME=/usr/app/hive-2.3.8-bin#如果安裝了zookeeper,指定zookeeper的安裝目錄exportZOOCFGDIR=/usr/app/apache-zookeeper-3.6.2-bin打開系統(tǒng)的環(huán)境配置文件“/ect/profile”。向文件中,追加寫入Sqoop的目錄。exportSQOOP_HOME=/usr/app/sqoop-1.4.7.bin__hadoop-2.6.0exportPATH=$PATH:$SQOOP_HOME/bin3.配置系統(tǒng)環(huán)境4.配置ZooKeeper在主節(jié)點node1上,進入ZooKeeper的“conf”目錄。打開“conf”目錄下的zoo.cfg文件。將文件中的“#maxClientCnxns=60”代碼注釋符號刪除,修改為以下狀態(tài)。maxClientCnxns=0將修改后的文件,復制到其它節(jié)點。[root@node1conf]#scpzoo.cfgroot@node2:$PWD[root@node1conf]#scpzoo.cfgroot@node3:$PWD5.HCatalog的安裝要完成HIVE與MySQL之間的互導,必須安裝HCatalog服務。在所有節(jié)點上,打開環(huán)境配置文件“/ect/profile”。向文件中添加以下內(nèi)容進行HCatalog的安裝(文中所列地址只作格式說明,具體地址根據(jù)個人的安裝路徑設(shè)置)。exportHCAT_HOME=/usr/app/hive-2.3.8-bin/hcatalogexportPATH=$PATH:$HCAT_HOME/bin6.accumulo集群的安裝
accumulo是一個分布式數(shù)據(jù)存儲和檢索系統(tǒng),使用HDFS存儲數(shù)據(jù),用于跨集群的大型數(shù)據(jù)集的存儲和管理。支持以MapReduce作為底層調(diào)用Sqoop作業(yè)。在主節(jié)點node1上,執(zhí)行以下命令,將accumulo安裝包下載到目標目錄,代碼中的accumulo下載地址只作為格式說明。[root@node1~]#wget/apache/accumulo/1.10.1/accumulo-1.10.1-bin.tar.gz-P/usr/software/下載后,解壓安裝包到目標目錄。[root@node1~]#tar-zxvf/usr/software/accumulo-1.10.1-bin.tar.gz-C/usr/app/進入accumulo的安裝目錄下的“bin”目錄。[root@node1~]#cd/usr/app/accumulo-1.10.1/bin/執(zhí)行以下命令,創(chuàng)建accumulo的本地庫。[root@node1bin]#./build_native_library.sh執(zhí)行以下命令,開始accumulo集群的配置。[root@node1bin]#./bootstrap_config.sh根據(jù)提示進行accumulo集群的配置,分別指定2GB、Java、Hadoop3根據(jù)提示進行accumulo集群的配置,分別指定2GB、Java、Hadoop3進入accumulo的“conf”目錄,打開“conf”目錄中的accumulo-site.xml文件。,進行accumulo實例和Zookeeper主機內(nèi)容的添加和修改。對于內(nèi)存小的節(jié)點(指hadoop集群運行后,內(nèi)存空閑空間<512M)可以保持false狀態(tài),內(nèi)存大的節(jié)點設(shè)置成true
打開“conf”目錄中的accumulo-env.sh文件,在文件的開始位置,添加下面內(nèi)容(以下所列地址只作格式說明,具體地址根據(jù)自己的安裝路徑設(shè)置)。exportACCUMULO_HOME=/usr/app/accumulo-1.10.1exportJAVA_HOME=/usr/java/jdkexportZOOKEEPER_HOME=/usr/app/apache-zookeeper-3.6.2-binexportHADOOP_PREFIX=/usr/app/hadoop-3.3.1exportHADOOP_HOME=/usr/app/hadoop-3.3.1exportHADOOP_CONF_DIR=/usr/app/hadoop-3.3.1/etc/hadoop打開“conf”目錄中的masters文件。在文件中,注釋掉原有的“l(fā)ocalhost”,添加以下新的內(nèi)容。#localhostnode1node2打開“conf”目錄中的slaves文件。在文件中,注釋掉原有的“l(fā)ocalhost”,添加以下新的內(nèi)容。將節(jié)點node3設(shè)置成accumulo集群中的從節(jié)點。#localhostnode3依次打開“conf”目錄中的gc,monitor,tracers三個文件,注釋掉文件中的“l(fā)ocalhost”,添加以下新內(nèi)容。#localhostnode1進入accumulo的“proxy”目錄,打開“proxy”目錄中的perties文件。在文件中修改zookeepers的屬性值,以下是修改后的效果。zookeepers=node1:2181,node2:2181,node3:2181在主節(jié)點node1上,打開hadoop的hdfs-site.xml文件(以下所列地址只作格式說明,具體地址根據(jù)自己的安裝路徑設(shè)置)。找到文中的“</configuration>”標簽,在其前面另起一行,添加以下內(nèi)容。
<property>
<name>dfs.support.append</name>
<value>true</value>
</property>
<property>
<name>dfs.datanode.synconclose</name>
<value>true</value>
</property>保存退出后,將hdfs-site.xml文件復制到其它節(jié)點。將accumulo程序復制到其它節(jié)點。在所有節(jié)點上,打開環(huán)境配置文件“/ect/profile”,向文件中添加以下內(nèi)容。exportACCUMULO_HOME=/usr/app/accumulo-1.10.1exportPATH=$PATH:$ACCUMULO_HOME/bin7.初始化accumulo集群在主節(jié)點node1上,執(zhí)行以下命令。[root@node1~]#accumuloinit程序啟動后,按提示,依次輸入test、以及輸入兩次密碼。在主節(jié)點node1上,執(zhí)行命令,啟動accumulo集群。2.3數(shù)據(jù)互導操作
2.3.1操作前的環(huán)境準備 1.配置MapReduce運行時所需Jar包位置在主節(jié)點node1,執(zhí)行下列命令,該命令執(zhí)行完后,復制此命令輸出的結(jié)果。[root@node1~]#hadoopclasspath打開YARN的配置文件“yarn-site.xml”,在“</configuration>”標簽前,另起一行,寫入以下內(nèi)容,并將前面“hadoopclasspath”命令的輸出結(jié)果,粘貼到下面代碼中指定的位置。<!--配置MapReduce運行時Jar包位置--><property><name>yarn.application.classpath</name><value>將hadoopclasspath命令執(zhí)行完后的結(jié)果,粘貼在此</value></property>在所有節(jié)點上啟動ZooKeeper。zkServer.shstart在主節(jié)點node1上先啟動HDFS,再啟動YARN。[root@node1~]#start-dfs.sh[root@node1~]#start-yarn.sh在所有節(jié)點上啟動歷史查看服務器。mapred--daemonstarthistoryserveryarn--daemonstarttimelineserver在主節(jié)點node1上,啟動accumulo。2.MySQL驅(qū)動的加載將MySQL驅(qū)動文件mysql-connector-java-8.0.18.jar放置到Sqoop的“l(fā)ib”目錄中。[root@node1mysql-connector-java-8.0.18]#mvmysql-connector-java-8.0.18.jar/usr/app/sqoop-1.4.7.bin__hadoop-2.6.0/lib3.導入apache版commons-lang.jar文件由于Sqoop自帶的commons-lang.jar文件不兼容hadoop3.3.1,因此需要將apache版commons-lang.jar文件下載到Sqoop的“l(fā)ib”目錄。進入Sqoop的“l(fā)ib”目錄后,執(zhí)行下列命令,下載jcommons-lang.jar文件。[root@node1lib]#wget/content/repositories/releases/commons-lang/commons-lang/4.給Hadoop集群中的所有節(jié)點分配訪問MySQL的權(quán)限在主節(jié)點node1上登錄MySQL服務器。進入mysql后,在mysql命令行中執(zhí)行分配權(quán)限命令,Hadoop集群中有多少個節(jié)點,就要將下面的命令重復執(zhí)行多少次,每次執(zhí)行時,注意修改下列代碼中的節(jié)點的IP地址。MariaDB[mysql]>grantallprivilegeson*.*toroot@Hadoop集群中節(jié)點的IP地址identifiedby'root'withgrantoption;分配完權(quán)限后,在MySQL中執(zhí)行以下命令,更新權(quán)限記錄。MariaDB[mysql]>flushprivileges;2.3.2MySQL與HDFS間的數(shù)據(jù)互導 在Sqoop中,將關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)傳輸?shù)紿adoop,稱之為import(導入),將HDFS的數(shù)據(jù)傳輸?shù)疥P(guān)系型數(shù)據(jù)庫,稱之為export(導出)。Sqoop命令語句的語法格式為:--參數(shù)名參數(shù)值以配置數(shù)據(jù)庫用戶名為例,命令語句的格式如下(其中“#”開頭的為注釋語句)。#參數(shù)名--username#參數(shù)值root1.將MySQL表數(shù)據(jù)導入HDFS1)全量導入數(shù)據(jù)到HDFS例如,將MySQL數(shù)據(jù)庫中的students表數(shù)據(jù)全部導入HDFS,students表結(jié)構(gòu)。表中的數(shù)據(jù)創(chuàng)建Sqoop腳本文件“mysql-to-hdfs.conf”,向文件中寫入以下內(nèi)容,每一行末尾不要加空格。#導入命令import#指定要連接的mysql數(shù)據(jù)庫下的test數(shù)據(jù)庫--connectjdbc:mysql://node1主機名:3306/test#指定數(shù)據(jù)庫的登錄用戶名--usernameroot#指定用戶密碼--passwordroot#指定要訪問的數(shù)據(jù)表名--tablestudents#指定要導入的字段--columnsid,name,age,sex未完#指定導入條件--whereid>0#指定數(shù)據(jù)導入HDFS的位置,node主機名必須是處于active狀態(tài)的節(jié)點主機名--target-dirhdfs://node主機名:9820/sqoop/mysql#指定若HDFS上的目標位置已經(jīng)存在,則刪除--delete-target-dir#指定sqoop工作時的map數(shù),默認為4個,這里指定為1個,只會啟動一個map程序-m1#指定數(shù)據(jù)以文本格式存放在HDFS上--as-textfile#--null-string含義是string類型的字段,當Value是NULL,替換成指定的字符,該例子中為@@@--null-string'@@@'#--null-non-string含義是非string類型的字段,當Value是NULL,替換成指定字符,該例子中為###--null-non-string'###'接上一頁在腳本文件的當前目錄下,執(zhí)行以下命令,啟動腳本“mysql-to-hdfs.conf”。[root@node101]#sqoop--options-filemysql-to-hdfs.conf打開HDFS中處于active狀態(tài)下的節(jié)點的WEBUI頁面,訪問“/sqoop/mysql”目錄,會發(fā)現(xiàn)導入的新數(shù)據(jù)文件。2)增量導入數(shù)據(jù)到HDFS適用于MySQL表中發(fā)生數(shù)據(jù)新增或修改了數(shù)據(jù)后使用:①新增時,采用append模式,需配合指定具有連續(xù)自增數(shù)據(jù)類型列,如自增長主鍵;②修改時,采用lastmodified模式,需配合指定日期時間數(shù)據(jù)類型的列(如date或timestamp類型)。#導入命令import#指定要連接的mysql數(shù)據(jù)庫下的test數(shù)據(jù)庫......#指定新增模式--incrementalappend#指定新增的依據(jù)條件--check-columnid#指定從依據(jù)條件的什么值以后開始執(zhí)行增量導入--last-value3......3)導入MySQL的查詢結(jié)果到HDFS#導入命令import#指定要連接的mysql數(shù)據(jù)庫下的test數(shù)據(jù)庫......#指定查詢條件--query#代碼中的and$CONDITIONS不能缺少"selectname,sexfromstudentswhereage<=22and$CONDITIONS"在腳本文件中使用query參數(shù)后,不能再同時使用table參數(shù)來指定要訪問的數(shù)據(jù)表名。2.將HDFS的數(shù)據(jù)導出到MySQL1)全量導出數(shù)據(jù)到MySQL
全量導出指的是將HDFS中的全部數(shù)據(jù)導出。首先需要在MySQL中存在有一張與HDFS中的數(shù)據(jù)結(jié)構(gòu)對應的數(shù)據(jù)表。#導出命令export#指定要連接的mysql數(shù)據(jù)庫下的test數(shù)據(jù)庫......#指定要將數(shù)據(jù)導出到哪個數(shù)據(jù)表,指定mysql下的數(shù)據(jù)表名......#指定數(shù)據(jù)對應的字段--columnsname,sex#指定數(shù)據(jù)來至HDFS下的哪個目錄--export-dir/sqoop/mysql#指定HDFS中的數(shù)據(jù)之間所用的間隔符--fields-terminated-by','......2)增量導出數(shù)據(jù)到MySQL(insert模式)增量導出,指在更新MySQL表中已存在的數(shù)據(jù)記錄的同時,插入了表中沒有的新紀錄。#導出命令export......#指定數(shù)據(jù)對應的字段--columnsid,name,sex#指定數(shù)據(jù)來至HDFS下的哪個目錄--export-dir/test_data/test.dat......#指定以哪個字段作為增量判斷的依據(jù)--update-keyid#開啟增量模式--update-modeallowinsert......3)更新導出數(shù)據(jù)到MySQL(update模式)更新導出,指只更新已存在的數(shù)據(jù)記錄,不插入新紀錄。#導出命令export#指定要連接的mysql數(shù)據(jù)庫下的XXX數(shù)據(jù)庫......--export-dir/test_data/test.dat#指定數(shù)據(jù)之間是用什么間隔的--fields-terminated-by','#指定以哪個字段作為增量判斷的依據(jù)--update-keyid#開啟更新模式--update-modeupdateonly提示:與增量導出的sqoop腳本文件內(nèi)容對比,更新導出的“--update-mode”屬性值有區(qū)別,并且“update-key”屬性值不能將全部字段名稱寫上,否則會報“Fieldnamesmustbegreaterthan0”錯誤;其二,除主鍵字段外,在“update-key”的屬性值中如果多寫一個字段名,會起到屏蔽該字段值的更新效果。2.3.3MySQL和Hive之間的數(shù)據(jù)互導 1.將MySQL數(shù)據(jù)導入到Hive#導入命令import#指定要連接的mysql數(shù)據(jù)庫下的test數(shù)據(jù)庫--connectjdbc:mysql://node1主機名:3306/test......#指定要訪問的數(shù)據(jù)表名,此表必須提前已存在在MySQL中--tablestudents......#指明是向Hive中導入數(shù)據(jù)--hive-import#如果數(shù)據(jù)已存在,則覆蓋--hive-overwrite#指明導入過程中,自動創(chuàng)建Hive表--create-hive-table(未完)接上一頁#指定表名--hive-table#import_students是表名,如果表已存在,則執(zhí)行失?。籭mport_students#test是指Hive中的數(shù)據(jù)庫,這個必須提前創(chuàng)建好,如果未指明數(shù)據(jù)庫,數(shù)據(jù)表默認被創(chuàng)建在default數(shù)據(jù)庫下。--hive-databasetest#指定分區(qū)分字段名--hive-partition-keydt#指定分區(qū)字段值--hive-partition-value'2020-01-01'#指定導入的數(shù)據(jù)在存儲時,之間用什么間隔--fields-terminated-by'\t'2.將Hive數(shù)據(jù)導出到MySQL#導出命令export#指定要連接的mysql數(shù)據(jù)庫下的test數(shù)據(jù)庫......#指定數(shù)據(jù)庫的登錄用戶名......#指定要將數(shù)據(jù)導出到哪個數(shù)據(jù)表,指定mysql下的數(shù)據(jù)表名--tableexport_from_hive_person#指定數(shù)據(jù)對應的字段--columnsid,name,age,favorites,address#指定Hive中的`person`數(shù)據(jù)來至HDFS下的哪個目錄--export-dir/user/hive/warehouse/test.db/person/person3.txt#指定數(shù)據(jù)之間所使用的間隔符--fields-terminated-by'\t'......Hive的數(shù)據(jù)存放在HDFS中,以文件的方式存放著Hive中的數(shù)據(jù)表。2.3.4MySQL和HBase之間的數(shù)據(jù)互導
Sqoop的import命令中有許多與HBase相關(guān)的常用參數(shù)。1.MySQL全量導入到HBase序號參數(shù)名稱說明1--column-family<family>設(shè)置表的目標列簇2--hbase-bulkload啟用HBase批量導入3--hbase-create-table新建HBase表4--hbase-row-key<col>指定Rowkey的輸入列5--hbase-table<table>指定數(shù)據(jù)導入到哪張HBase表#導入命令import#指定要連接的mysql數(shù)據(jù)庫下的test數(shù)據(jù)庫......#指明在導入數(shù)據(jù)時,創(chuàng)建hbase表--hbase-create-table#指定被創(chuàng)建的hbase表的名稱--hbase-tablestudents#指定hbase表的Rowkey的名稱--hbase-row-keyid#指定hbase表的列簇名稱--column-familyf1導入方案中的關(guān)鍵代碼如下:
Sqoop的import命令中有許多與增量導入數(shù)據(jù)到HBase相關(guān)的常用參數(shù)。2.MySQL增量導入到HBase序號參數(shù)名稱說明1--check-column<column>指定以表中的哪個列的增量變化作為增量的標準2--incremental<import-type>指定增量導入的模式,有兩種:append和lastmodified(1)以追加的方式導入新的數(shù)據(jù)時,使用append;(2)以更新表中的數(shù)據(jù)時,使用lastmodified。3--last-value<value>指定從--check-column指定所在列的哪個值開始,導入新的數(shù)據(jù)......#指明在導入數(shù)據(jù)時,創(chuàng)建hbase表--hbase-create-table#指定被創(chuàng)建的hbase表的名稱--hbase-tablestudents#指定hbase表的Rowkey的名稱--hbase-row-keyid#指定hbase表的列簇名稱--column-familyf1#指定增量模式--incrementalappend#指定開始位置--last-value3#指定增量標準--check-columnid增量導入方案中的關(guān)鍵代碼示例:3.MySQL按需導入到HBase#導入命令import#指定要連接的mysql數(shù)據(jù)庫下的test數(shù)據(jù)庫......#設(shè)置查詢語句,此例中查詢students表中id>5的記錄。引號和關(guān)鍵字$CONDITIONS都不能省略--query'select*fromstudentswhereid>5and$CONDITIONS'#指定拆分標準--split-byid#指明在導入數(shù)據(jù)時,創(chuàng)建hbase表--hbase-create-table#指定被創(chuàng)建的hbase表的名稱--hbase
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 執(zhí)業(yè)獸醫(yī)考試考試題預防科目及答案
- 煙花爆竹考試題及答案
- 監(jiān)護人防溺水測試題附答案
- 幼兒教育題庫論述題及答案
- 二建網(wǎng)絡(luò)考試題及答案
- 新安全生產(chǎn)法試題庫及參考答案
- 中藥試題+答案
- 重癥醫(yī)學科考試試題與答案
- 陜西省延安市輔警公共基礎(chǔ)知識題庫(附答案)
- 客服營銷面試試題及答案
- 2026中國電信四川公用信息產(chǎn)業(yè)有限責任公司社會成熟人才招聘備考題庫及參考答案詳解1套
- 2025年廣東省生態(tài)環(huán)境廳下屬事業(yè)單位考試真題附答案
- 2026年安徽省公務員考試招錄7195名備考題庫完整參考答案詳解
- 【地理】期末模擬測試卷-2025-2026學年七年級地理上學期(人教版2024)
- GB/T 879.4-2000彈性圓柱銷卷制標準型
- GB/T 1957-2006光滑極限量規(guī)技術(shù)條件
- GB 28480-2012飾品有害元素限量的規(guī)定
- 劉一秒演說智慧經(jīng)典(內(nèi)部筆記)
- 管道TOFD檢測記錄及續(xù)表
- 馬克思主義哲學精講課件
- 期末考試總安排
評論
0/150
提交評論