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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sqoop 1.4.4-cdh5.1.2快速入门

發布時間:2024/1/23 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sqoop 1.4.4-cdh5.1.2快速入门 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、快速入門
(一)下載安裝
1、下載并解壓
wget http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.4-cdh5.1.2.tar.gz
tar -zxvf sqoop-1.4.4-cdh5.1.2.tar.gz

2、將sqoop中的命令添加至$PATH中
export PATH=$PATH:/home/jediael/setupfile/sqoop-1.4.4-cdh5.1.2/bin

3、驗證安裝
jediael@jediael:~/setupfile/sqoop-1.4.4-cdh5.1.2/bin$ source /etc/profile
……..
15/05/15 09:47:37 INFO sqoop.Sqoop: Running Sqoop version: 1.4.4-cdh5.1.2
Sqoop 1.4.4-cdh5.1.2
……..

(二)在mysql中準備數據
1、創建數據庫交授權
create database sqoop;
use sqoop;
GRANT ALL PRIVILEGES ON sqoop.* TO ''@'localhost';


2、創建表
create table widgets(
?? ?id int not null primary key auto_increment,
?? ?widget_name varchar(64) not null,
?? ?price decimal(10,2),
?? ?design_date date,
?? ?version int,
?? ?design_comment varchar(100));

3、插入數據
insert into widgets values(null, 'sprocket', 0.25, '2010-02-10', 1, 'Connects two gizmos');
insert into widgets values(null, 'gizmos', 4.00, '2009-11-30', 4, null);
insert into widgets values(null, 'gadget', 99.99, '193-08-13', 13, 'Our flagship product');?? ?

(三)將mysql中的數據導入hdfs
1、準備jdbc connector,并將之入到sqoop/lib目錄下
wget http://cdn.mysql.com/Downloads/Connector-J/mysql-connector-java-5.1.35.tar.gz
tar -zxvf mysql-connector-java-5.1.35.tar.gz
cp mysql-connector-java-5.1.35-bin.jar ../sqoop-1.4.4-cdh5.1.2/lib/

2、導入數據
sqoop import --connect jdbc:mysql://localhost/sqoop --table widgets -m 1

3、查看數據
$ hadoop fs -cat widgets/part-m-00000
15/05/15 10:29:29 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
1,sprocket,0.25,2010-02-10,1,Connects two gizmos
2,gizmos,4.00,2009-11-30,4,null
3,gadget,99.99,0193-08-13,13,Our flagship product

4、import除了將數據導入hdfs中,還在當前目錄生成了widgets.java文件。
還可以使用以下命令只生成java類,而不進行實際的導入:
sqoop import --connect jdbc:mysql://localhost/sqoop --table widgets --class-name widget



二、sqoop與hive
(一)將數據導入hive
1、若僅需要將mysql中的數據導入sqoop中,則可以執行以下命令
sqoop import --connect jdbc:mysql://localhost/sqoop --table widgets -m 1 --hive-import
驗證數據:
hive> select * from widgets;
OK
1?? ?sprocket?? ?0.25?? ?2010-02-10?? ?1?? ?Connects two gizmos
2?? ?gizmos?? ?4.0?? ?2009-11-30?? ?4?? ?null
3?? ?gadget?? ?99.99?? ?0193-08-13?? ?13?? ?Our flagship product
Time taken: 1.299 seconds, Fetched: 3 row(s)

2、若需要先將mysql中的數據導入hdfs,再從hdfs中導入hive
(1)將數據導入hdfs:見上面。
(2)創建表
sqoop create-hive-table --connect jdbc:mysql://localhost/sqoop --table widgets --fields-terminated-by ‘,'
這會根據mysql中的表結構直接創建一個hive表。
(3)將hdfs中的數據導入hive中
hive> load data inpath "widgets" into table widgets;
此時數據存儲在/user/hive/warehouse/widgets

(二)在hive中進行數據分析
1、創建hive表,用于保存分析結果
create table widgets_sum(sum int);

2、分析
hive> insert into table widgets_sum select count(1) from? widgets;

(三)將數據導出到mysql
1、在mysql中創建表,用于保存從hive中導出的結果
create table widgets_sum(sum int);
注意,sqoop能夠根據mysql的結構自動生成hive表,但反之不行,必須手工建表
2、sqoop export --connect jdbc:mysql://localhost/sqoop -m 1 --table widgets_sum --export-dir /user/hive/warehouse/widgets_sum --input-fields-terminated-by '\0001



異常:
1、若沒執行GRANT ALL PRIVILEGES ON sqoop.* TO ''@'localhost’;
則會出現以下異常:
15/05/15 10:25:28 ERROR manager.SqlManager: Error executing statement: java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)
java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)

總結

以上是生活随笔為你收集整理的sqoop 1.4.4-cdh5.1.2快速入门的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。