CentOS 7 配置hadoop(五) 配置sqoop(偽分佈)
第五篇:CentOS 7 配置hadoop(五) 配置sqoop(偽分佈)
1.使用 FileZilla 上傳sqoop檔案到虛擬機器
2.Linux解壓並刪除壓縮包 tar -zxvf sqoop
3.配置環境變數
vi /etc/profile export SQOOP_HOME=/opt/sqoop-1.4.6-cdh5.7.0 export PATH=$PATH:$SQOOP_HOME/bin
source /etc/profile
4、 拷貝mysql的jdbc jar檔案sqoop的lib目錄 在上章 hive的lib包下已經存在,只需要傳過來就OK
cp /root/hive-1.1.0-cdh5.7.0/lib/mysql-connector-java-5.1.45-bin.jar /root/sqoop-1.4.6-cdh5.7.0/lib/
注意:1.使用sqoop前需要匯入Java-json.jar的包到sqoop的lib目錄下 使用FileZilla上傳 hive下面有java-json.jar
sqoop/lib下有hadoop-core-2.6.0-mr1-cdh5.7.0-20160212.213956-397.jar和mysql的jar
2.將之前上傳的mysql-connector-java-5.1.45-bin.jar拷貝到sqoop的lib目錄下
3)測試 sqoop version
執行下邊命令
sqoop list-databases --connect jdbc:mysql://master:3306/ --username root -P
回車之後輸入你mysql的root使用者密碼
出現上述框框內的內容證明sqoop配置無誤
在使用sqoop是,需要在mysql 賦予虛擬機器使用者的許可權 master為主機名 12345為mysql密碼
grant all privileges on *.* to root@master identified by '12345'; flush privileges;
5.使用sqoop
1)mysql匯入到hive(hdfs)
(1)進入mysql 建立資料庫
create database hive_test;
進入資料庫
usehive_test;
建立表
CREATE TABLE user (id int,name varchar(20));
新增資料
insert into user (id,name) values (1,'a'),(2,'test');
(2)進入hive 建立資料庫
create database hive_test;
進入資料庫
use hive_test;
建立表
create table user (id int,name string)row format delimited fields terminated by '\t';
(3)mysql資料匯入hive資料
#--connect 連線 --username mysql賬號 --password mysql密碼 --table mysql表名 -m 執行map的次數 --fields-terminated-by 列的分割 --hive-import 匯入hive --hive-database hive中的那個資料庫 --hive-table hive表 --target-dir 是你要匯入到那個表的地址
sqoop import --connect jdbc:mysql://master:3306/hive_test --username root --password hadoop --table user --fields-terminated-by '\t' --delete-target-dir --target-dir /user/hive/warehouse/hive_test.db/user --m 1 --hive-import --hive-database hive_test --hive-table user
(4)檢視hive 中的表資料
顯示出來代表執行成功
2)hdfs匯出到mysql
(1)建立hive 表
create table users (id int,name string)row format delimited fields terminated by '\t'
(2)新增資料
insert into users values (1,'b'),(2,'a');
(3)建立mysql表
CREATE TABLE users (id int,name varchar(20));
(4)hdfs匯入mysql
#--connect 連線 --username mysql賬號 --password mysql密碼 --table mysql表名 --export-dir hive檔案在網站上的那個地方 --fields-terminated-by 列的分割 --m 執行map的次數
sqoop export --connect jdbc:mysql://master:3306/hive_test --username root --password hadoop --table users --export-dir /user/hive/warehouse/hive_test.db/users/000000_0 --fields-terminated-by '\t' --m 1
(5)檢視mysql表中資料