1. 程式人生 > 實用技巧 >CentOS 7 配置hadoop(五) 配置sqoop(偽分佈)

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表中資料