Sqoop的安裝配置及工作機制

文章目錄

  • @[toc] 目錄:
  • 1、簡介
  • 2、sqoop安裝
    • 2.1、下載并解壓
    • 2.2、修改配置文件
    • 2.3、加入mysql或oracle的jdbc驅動包
    • 2.4、驗證啟動
  • 3、Sqoop的原理
    • 3.1、代碼定制

目錄:

1、簡介

sqoop是apache旗下一款“Hadoop和關系數據庫服務器之間傳送數據”的工具。
導入數據:MySQL,Oracle導入數據到Hadoop的HDFS、HIVE、HBASE等數據存儲系統;
導出數據:從Hadoop的文件系統中導出數據到關系數據庫。
這里寫圖片描述

2、sqoop安裝

安裝sqoop的前提是已經具備java和hadoop的環境

2.1、下載并解壓

下載地址:http://archive.apache.org/dist/sqoop/

2.2、修改配置文件

$ cd $SQOOP_HOME/conf
$ mv sqoop-env-template.sh sqoop-env.sh
打開sqoop-env.sh并編輯下面幾行:
export HADOOP_COMMON_HOME=/home/hadoop/apps/hadoop-2.6.1/ 
export HADOOP_MAPRED_HOME=/home/hadoop/apps/hadoop-2.6.1/
export HIVE_HOME=/home/hadoop/apps/hive-1.2.1

2.3、加入mysql或oracle的jdbc驅動包

cp  ~/app/hive/lib/mysql-connector-java-5.1.28.jar   $SQOOP_HOME/lib/

2.4、驗證啟動

$ cd $SQOOP_HOME/bin
$ sqoop-version
預期的輸出:
15/12/17 14:52:32 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6
Sqoop 1.4.6 git commit id 5b34accaca7de251fc91161733f906af2eddbe83
Compiled by abe on Fri Aug 1 11:19:26 PDT 2015

到這里,整個Sqoop安裝工作完成。

3、Sqoop的原理

Sqoop的原理其實就是將導入導出命令轉化為mapreduce程序來執行,sqoop在接收到命令后,都要生成mapreduce程序。在翻譯出的mapreduce中主要是對inputformat和outputformat進行定制。

使用sqoop的代碼生成工具可以方便查看到sqoop所生成的java代碼,并可在此基礎之上進行深入定制開發。

3.1、代碼定制

以下是Sqoop代碼生成命令的語法:

$ sqoop-codegen (generic-args) (codegen-args) 
$ sqoop-codegen (generic-args) (codegen-args)

示例:以USERDB數據庫中的表emp來生成Java代碼為例。
下面的命令用來生成導入

$ sqoop-codegen \
--import
--connect jdbc:mysql://localhost/userdb \
--username root \ 
--table emp

如果命令成功執行,那么它就會產生如下的輸出。

14/12/23 02:34:40 INFO sqoop.Sqoop: Running Sqoop version: 1.4.5
14/12/23 02:34:41 INFO tool.CodeGenTool: Beginning code generation
……………….
14/12/23 02:34:42 INFO orm.CompilationManager: HADOOP_MAPRED_HOME is /usr/local/hadoop
Note: /tmp/sqoop-hadoop/compile/9a300a1f94899df4a9b10f9935ed9f91/emp.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
14/12/23 02:34:47 INFO orm.CompilationManager: Writing jar file: /tmp/sqoop-hadoop/compile/9a300a1f94899df4a9b10f9935ed9f91/emp.jar

驗證: 查看輸出目錄下的文件

$ cd /tmp/sqoop-hadoop/compile/9a300a1f94899df4a9b10f9935ed9f91/
$ ls
emp.class
emp.jar
emp.java

如果想做深入定制導出,則可修改上述代碼文件

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456482.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456482.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456482.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

3D打印技術在醫療領域能做些什么?幫助精確完成手術

3D打印技術出現在20世紀90年代中期。它與普通打印工作原理基本相同,打印機內裝有液體或粉末等“打印材料”,與電腦連接后,通過電腦控制把“打印材料”一層層疊加起來,最終把計算機上的藍圖變成實物。這打印技術稱為3D立體打印技術…

【一些簡單的jQuery選擇器】

學習【js DOM 編程藝術】,最后面有許多jQuery的選擇器,每個都動手敲了一遍。 jQuery 提供了高級選擇器的方法。 js獲取元素的三個基本方法分別是通過標簽名,類名和id,即(getElementsByTagName, getElementsByClassName和getElemen…

pymysql操作mysql數據庫

一、pymysql操作mysql數據庫 安裝pymysql pip install pymysql 1.1 pymysql操作數據庫的五行拳 連接數據庫 使用Connect方法連接數據庫 pymysql.Connections.Connection(hostNone, userNone, password, databaseNone, port0, charset) 參數說明:host – 數據庫服務…

SecureCRT常用的使用技巧

文章目錄前言:1、SecureCRT 超時自動斷開連接的解決辦法2、SecureCRT連接Linux時,終端顯示亂碼的問題。3、SecureCRT使用自動記錄日志功能4、使用SecureCRT從Windows上傳文件到Linux5、SecureCRT配色推薦和永久設置前言: 由于工作需要&#…

解決:(1062, Duplicate entry '2019-08-30' for key 'rdate')

解決(1062, "Duplicate entry 2019-08-30 for key rdate") 顯然這個問題是因為插入重復主鍵導致從庫不工作了,更改庫的唯一限制: unique 為normal 或者刪除unique ALTER TABLE 表明 DROP INDEX 字節名; 實例 CREATE TABLE good_booked (au…

人民幣數字金額轉大寫金額

public class t {public static String Trans2RMB(String money) {int index money.indexOf(".");if (index < 0) {// 沒有角分money money ".00";index money.indexOf(".");}if (money.substring(index, money.length()).length() < …

eventBus 與fragment

同一個eventbut是不可以注冊兩次的&#xff0c;所以我們會在ondestroy方法中進行unregister&#xff08;&#xff09; 但是在fragment中&#xff0c;最好把unregister&#xff08;&#xff09;方法寫到 onDestroyView&#xff08;&#xff09;方法中而不是onDestrory&#xff0…

機器學習之線性代數總結

目錄1、SVD是什么、表達式是什么及對應的數學含義&#xff1b;2、了解方陣、行列式的含義&#xff08;方陣即矩陣&#xff0c;行列式即矩陣的計算結果&#xff09;3、了解代數余子式的概念4、伴隨矩陣的概念5、知道方陣的逆的公式、范德蒙行列式6、知道矩陣的乘法&#xff0c;掌…

Python操作MongoDB

一 安裝 pymongo pip install pymongo3.4 ? 導入 MongoClient from pymongo import MongoClient 二 連接MongoDB數據庫 MongoDB端口號:27017 連接MongoDB我們需要使用PyMongo庫里面的MongoClient&#xff0c;一般來說傳入MongoDB的IP及端口即可&#xff0c;第一個參數為地…

各種插件

上下滾動抽獎效果, 移動端省級聯動, 時間聯動 , pc端省級聯動 vue 支持各種方式上傳 一個不太完善的拖拽排序 react 拖拽交換插件 各種小插件 壓縮圖片移動端 h5上傳 h5分片上傳 包括服務器 slideSuper 各種滑動效果 wow.js 轉載于:https://www.cnblogs.com/dhsz/p/6377956.h…

MailBee.NET Objects發送電子郵件(SMTP)教程六:創建并發送帶有附件的郵件

2019獨角獸企業重金招聘Python工程師標準>>> MailBee.NET Objects是一款為創建、發送、接收以及處理電子郵件而設計的健壯、功能豐富的.NET控件。幾行代碼便可為應用程序添加E-Mail支持&#xff0c;簡單高效。具備“必需”以及獨特的功能&#xff0c;這些控件幫助開…

機器學習之凸優化原理推導及相關知識總結

文章目錄目錄1、了解凸集和仿射集的基本概念。2、知道幾何體的向量表達。3、了解超平面和半空間的概念。4、了解分割超平面和支撐超平面的含義。5、知道jensen不等式。6、掌握知識&#xff1a;凸函數。7、掌握凸優化目錄 1、了解凸集和仿射集的基本概念。 凸集&#xff1a;在…

jQuery BreakingNews 間歇滾動

BreakingNews 是一款基于jQuery的間歇滾動插件。它可以設置標題、標題顏色、標題背景顏色、鏈接顏色、字體大小、邊框、寬度、自動滾動、間歇時間等等&#xff0c;同時它還好提供兩種過度方式——淡入淡出&#xff08;fade&#xff09;和向上滑動&#xff08;slide&#xff09;…

機器學習之回歸總結

目錄1、了解線性回歸2、了解似然函數3、了解交叉驗證的原理4、梯度下降算法4.1、批量梯度下降算法&#xff08;Batch Gradient Descent&#xff0c;簡稱BGD&#xff09;&#xff1a;4.2、隨機梯度下降算法&#xff08;SGD&#xff09;&#xff1a;4.3、折中&#xff1a; 5、了解…

html中的url、href、src的區別

url不是屬性&#xff0c;src和href是屬性&#xff0c;src用于替換當前元素&#xff0c;href用于在當前文檔和引用資源之間確立聯系&#xff0c;也就是說src引用的路徑是img自己的路徑&#xff0c;href引用的路徑是要跳轉到的地方。 URL&#xff1a;Uniform Resource Locators&…

SSIS 包部署錯誤 0xC0010014

SSIS 包部署錯誤 0xC0010014 Reinhard 在部署 SSIS 包時&#xff0c;提示如下錯誤。 由于錯誤 0xC0010014“發生了一個或多個錯誤。在此消息之前應有更為具體的錯誤消息&#xff0c;對這些錯誤進行詳細說明。此消息用作遇到錯誤的函數的返回值。”&#xff0c;無法加載包。當 C…

Android性能優化-App后臺優化

原文鏈接 Background Optimizations 前言 后臺進程是內存和電池敏感的。一個隱式的broadcast可能會啟動很多監聽它的后臺進程&#xff0c;即使這些進程可能做得工作不多。這可能丟設備性能和用戶體驗都有比較大的影響。 為了緩解這種問題&#xff0c;7.0&#xff08;API 24&…

機器學習之決策樹與隨機森林

目錄1、了解熵、條件熵、互信息的概念及公式1.1、熵1.2、條件熵1.3、信息增益/互信息 2、了解決策樹2.1、了解決策樹的概念和特點以及和熵的關系2.2、了解樹生成的過程2.3、了解決策樹三種算法的區別2.4、了解決策樹的損失函數2.5、了解解決決策樹過擬合的方法2.6、了解后剪枝的…

JSON(JavaScript Object Notation) 格式

JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式。 它使得人們很容易的進行閱讀和編寫。同時也方便了機器進行解析和生成。JSON采用完全獨立于程序語言的文本格式&#xff0c;但是也使用了類C語言的習慣。 json是 JavaScript Object Notation 的首字母縮寫&…

synchronized 的理解

第一種&#xff1a;package com.ucmed.zsyy.util;/*** Created by ucmed on 2017/2/8.*/public class DirtyRead {private String username "zjkj";private String password "123";public synchronized void setValue(String username, String password)…