您好,登錄后才能下訂單哦!
情景描述:
用戶的登錄信息以記錄的方式被存放在mysql(版本為5.1.73)的表中,現打算使用sqoop將登錄記錄抽取并存放到hdfs上,并使用mapreduce程序統計每個用戶的登錄次數。
環境描述:
采用4臺虛擬機部署hadoop2.6.5的完全分布式環境,在其中一臺擔任namenode節點的主機上安裝mysql-server和sqoop,用于存放和抽取源數據。除此之外,使用一臺另外的機器編寫mapreduce程序和發布jar包,提供給hadoop使用。
4臺部署hadoop機器信息與集群中擔任的角色信息如下:
IP 主機名 hadoop集群擔任角色 10.0.1.100 hadoop-test-nn NameNode,ResourceManager 10.0.1.101 hadoop-test-snn SecondaryNameNode 10.0.1.102 hadoop-test-dn1 DataNode,NodeManager 10.0.1.103 hadoop-test-dn2 DataNode,NodeManager
涉及軟件:
1. jdk1.7.0_45 --hadoop和sqoop運行必須。
2. hadoop2.6.5 --下載地址:http://apache.fayea.com/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz
3. sqoop1.4.6 --下載地址:https://mirrors.tuna.tsinghua.edu.cn/apache/sqoop/1.4.6/ 注:請選擇sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz下載,其他版本可能存在于hadoop2.6.5不兼容,導致抽取數據時出現異常。
4. mysql-connector-java-5.1.32-bin.jar,連接mysql的可執行JAR包,用于提供給sqoop連接mysql數據庫,可以從https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.32.tar.gz 下載的tar包中解壓后的目錄中獲得。
準備工作:
1. 修改主機名,修改/etc/hosts文件,配置主機名和IP映射關系,使各VM間可以互相解析主機名:
在每個VM的/etc/hosts文件中添加如下記錄:
10.0.1.100 hadoop-test-nn nn 10.0.1.101 hadoop-test-snn snn 10.0.1.102 hadoop-test-dn1 dn1 10.0.1.103 hadoop-test-dn2 dn2
2. 在每個VM上建立hadoop用戶,以后的配置工作使用hadoop用戶來進行,并使用ssh-keygen和ssh-copy-id命令配置各VM的hadoop用戶可以SSH互信訪問。
3. 安裝JDK并配置環境變量:為每臺VM解壓jdk的jar包到/usr/local/java下,安裝JDK,并配置JAVA_HOME變量,在/etc/profile中添加如下記錄:
export JAVA_HOME=/usr/local/java/jdk1.7.0_45 export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$JAVA_HOME/bin:$PATH
下一節介紹hadoop完全分布式環境搭建。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。