最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Hadoop(CentOS)安裝及MapReduce實現(xiàn)數(shù)據(jù)去重

2023-06-15 11:01 作者:拼搏的小浣熊  | 我要投稿

Hadoop(CentOS)安裝及MapReduce實現(xiàn)數(shù)據(jù)去重

B站好像不支持markdown文檔,排版有點亂,強迫癥患者請看:https://blog.csdn.net/qq_44891434/article/details/131222907

1. JDK安裝

1.1 資源下載:

  • 下載地址:https://pan.quark.cn/s/17d7266205f9

    • hadoop的安裝 包

    • java ?jdk安裝包

    • eclipse連接hadoop工具

  • 所學其他工具可自行在官網(wǎng)下載

    • Vmware下載:https://www.vmware.com/products/workstation-pro.html

    • 下載之后安裝完成,到輸入密鑰的地方時候,可以直接在百度上搜一個,超簡單的啦!

    • centos下載地址:https://www.centos.org/centos-linux/

    • Vmware虛擬機官網(wǎng)下載地址:

1.2 虛擬機網(wǎng)絡配置

Vmware配置及 xshell連接:https://zjxweb.github.io/#/techBlog/vmware/

  1. 先輸入ip addr 查看ip的內(nèi)容,發(fā)現(xiàn)沒有ip 地址,所以進行ip的配置。需要先關閉網(wǎng)絡管理器,之后要開啟網(wǎng)絡。

2. 在編輯中找到虛擬網(wǎng)絡編輯器,查看ip 地址的范圍,查看子網(wǎng)掩碼以及網(wǎng)關。

3. 輸入命令,修改相關配置

    • vim /etc/sysconfig/network-scripts/ifcfg-ens33

    • 設置完成之后,開啟網(wǎng)絡,輸入ip addr查看ip地址,發(fā)現(xiàn)ip地址已經(jīng)有了,之后ping www.baidu.com 查看是否可以連接外網(wǎng)。(暫停 Ctrl+Z)

1.2.1 防火墻關閉

  • [zjx@localhost ~] systemctl stop firewalld
    [zjx@localhost ~] systemctl disable firewalld.service

1.3 JDK安裝

1.3.1 卸載虛擬機自帶的JDK

  • 注意:如果你的虛擬機是最小化安裝不需要執(zhí)行這一步。

  • [zjx@localhost ~] rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

    • rpm -qa:查詢所安裝的所有rpm軟件包

    • grep -i:忽略大小寫

    • xargs -n1:表示每次只傳遞一個參數(shù)

    • rpm -e –nodeps:強制卸載軟件

  • 如果沒有rpm請安裝

    • [zjx@localhost ~] yum install rpm

  • 重啟虛擬機

    • [zjx@localhost ~] reboot

1.3.2 使用 rz從xshell上傳所需的包

lrzsz這個軟件,可以讓我們直接從linux上,下載和上傳文件的操作
yum install -y lrzsz

1.3.3 JDK安裝過程

  1. 新建目錄(按自己的來)

    cd /home
    mkdir software && cd software
    rz
    上傳包到此目錄下

  2. 解壓

    [zjx@localhost software]$ tar zxvf jdk-8u171-linux-x64.tar.gz

  3. .新建/etc/profile.d/my_env.sh文件

    sudo vim /etc/profile.d/my_env.sh

  4. 添加如下內(nèi)容

    #JAVA_HOME
    export JAVA_HOME=/home/software/jdk1.8.0_171
    export PATH=$PATH:$JAVA_HOME/bin

  5. source一下/etc/profile文件,讓新的環(huán)境變量PATH生效

    source /etc/profile

  6. 測試JDK是否安裝成功

    java -version

2. Hadoop安裝

# 切換到software目錄
cd /home/software
rz #上傳hadoop
[root@localhost software]# tar zxvf hadoop-2.7.7.tar.gz

  • 將Hadoop添加到環(huán)境變量

    • bin目錄:存放對Hadoop相關服務(hdfs,yarn,mapred)進行操作的腳本

    • etc目錄:Hadoop的配置文件目錄,存放Hadoop的配置文件

    • lib目錄:存放Hadoop的本地庫(對數(shù)據(jù)進行壓縮解壓縮功能)

    • sbin目錄:存放啟動或停止Hadoop相關服務的腳本

    • share目錄:存放Hadoop的依賴jar包、文檔、和官方案例

    1. 將Hadoop添加到環(huán)境變量

      sudo vim /etc/profile.d/my_env.sh

    2. 在my_env.sh文件末尾添加如下內(nèi)容

      export HADOOP_HOME=/home/software/hadoop-2.7.7
      export PATH=$PATH:$HADOOP_HOME/bin
      export PATH=$PATH:$HADOOP_HOME/sbin

    3. source一下/etc/profile文件,讓新的環(huán)境變量PATH生效

      source /etc/profile

    4. 測試是否安裝成功

      [root@localhost software]# hadoop version
      Hadoop 2.7.7

    5. hadoop 目錄介紹


        1. bin目錄:存放對Hadoop相關服務(hdfs,yarn,mapred)進行操作的腳本

        2. etc目錄:Hadoop的配置文件目錄,存放Hadoop的配置文件

        3. lib目錄:存放Hadoop的本地庫(對數(shù)據(jù)進行壓縮解壓縮功能)

        4. sbin目錄:存放啟動或停止Hadoop相關服務的腳本

        5. share目錄:存放Hadoop的依賴jar包、文檔、和官方案例

3. Hadoop運行模式

  • Hadoop官方網(wǎng)站:http://hadoop.apache.org

  • Hadoop運行模式包括:本地模式、偽分布式模式以及完全分布式模式。

    • 本地模式:單機運行,只是用來演示一下官方案例。生產(chǎn)環(huán)境不用。

    • 偽分布式模式:也是單機運行,但是具備Hadoop集群的所有功能,一臺服務器模擬一個分布式的環(huán)境。個別缺錢的公司用來測試,生產(chǎn)環(huán)境不用。

    • 完全分布式模式:多臺服務器組成分布式環(huán)境。生產(chǎn)環(huán)境使用。

4. hadoop偽分布式配置

  • 接下來是hadoop偽分布式配置。Hadoop 可以在單節(jié)點上以偽分布式的方式運行,Hadoop 進程以分離的 Java 進程來運行,節(jié)點既作為 NameNode 也作為 DataNode,同時,讀取的是 HDFS 中的文件。

  • Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,偽分布式需要修改2個配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每個配置以聲明 property 的 name 和 value 的方式來實現(xiàn)。

cd /home/software/hadoop-2.7.7/etc/hadoop
vim core-site.xml


<configuration>
? ?<property>
? ? ? ?<name>hadoop.tmp.dir</name>
? ? ? ?<value>file:/usr/local/hadoop/tmp</value>
? ? ? ?<description>Abase for other temporary directories.</description>
? ?</property>
? ?<property>
? ? ? ?<name>fs.defaultFS</name>
? ? ? ?<value>hdfs://localhost:9000</value>
? ?</property>
</configuration>

注意:這里可能會報權限錯誤的問題,所以說我們要分配權限

cd /home/software/hadoop-2.7.7/etc/hadoop
chmod +w core-site.xml
  • 接著配置hdfs文件

cd /home/software/hadoop-2.7.7/etc/hadoop
vim hdfs-site.xml


chmod +w core-site.xml


<configuration>
? ? ? ?<property>
? ? ? ? ? ? ? ?<name>dfs.replication</name>
? ? ? ? ? ? ? ?<value>1</value>
? ? ? ?</property>
? ? ? ?<property>
? ? ? ? ? ? ? ?<name>dfs.namenode.name.dir</name>
? ? ? ? ? ? ? ?<value>file:/usr/local/hadoop/tmp/dfs/name</value>
? ? ? ?</property>
? ? ? ?<property>
? ? ? ? ? ? ? ?<name>dfs.datanode.data.dir</name>
? ? ? ? ? ? ? ?<value>file:/usr/local/hadoop/tmp/dfs/data</value>
? ? ? ?</property>
</configuration>

  • Hadoop 的運行方式是由配置文件決定的(運行 Hadoop 時會讀取配置文件),因此如果需要從偽分布式模式切換回非分布式模式,

  • 需要刪除 core-site.xml 中的配置項。

  • 配置完成后,執(zhí)行 NameNode 的格式化:

    cd /home/software/hadoop-2.7.7
    ./bin/hdfs namenode -format

  • 接著開啟 NameNode 和 DataNode 守護進程。

cd /home/software/hadoop-2.7.7
./sbin/start-dfs.sh

  • 或者使用all來開啟/結束hadoop全部進程

    cd /home/software/hadoop-2.7.7
    ./sbin/start-all.sh
    ./sbin/stop-all.sh

  • 啟動完成后,可以通過命令 jps 來判斷是否成功啟動

    jps

5. Linux系統(tǒng)下eclipse中配置Hadoop插件

  • rz工具將下載好的 hadoop-eclipse-plugin-2.7.3 傳輸?shù)絜clipse目錄下的plugins文件夾下即可.

5.1 開始配置

  1. cd到eclipse目錄下,輸入命令./eclipse 打開eclipse

    • eclipse安裝簡單說明一下吧

      下載-> 解壓-> cd 進去解壓的目錄 -> ./eclipse

  2. 依次點擊:頂部菜單欄的Window → Open Perspective → Other…→ Map/Reduce → OK 出現(xiàn)如下界面即說明操作正確


  1. 如果打開eclipse是該界面,點擊圖中指向的按鈕即可


  1. 接著點擊Map/Reduce Locations,在下方空白處單擊右鍵 → 點擊New Hadoop location…


自定義一個Location name,接著將Host中的內(nèi)容修改為你的master節(jié)點的IP地址,右邊的Port改為9000 (這是因為在你的core-site.xml配置文件中配置的端口號為9000)

  1. 然后點擊上圖中黑色箭頭指向的Advanced parameters,出現(xiàn)如下界面,滾動鼠標滾輪下拉找到 hadoop.tmp.dir,修改后面的路徑


找hadoop.tmp.dir路徑的方法: 打開一個新的終端,cd到(以筆者為例)cd /home/software/hadoop-2.7.7/etc/hadoop/ 路徑下面,輸入命令vim core-site.xml 打開配置文件,就可以找到你的hadoop.tmp.dir相應的路徑

  • 完成后點擊finish即可,若出現(xiàn)類似如下界面,則說明成功了


:在這之前要先將Hadoop集群啟動,否則將會失敗

6. MapReduce實現(xiàn)數(shù)組去重

  • [root@localhost zjx]# cd /home/software/hadoop-2.7.7/
    vim file1.txt
    vim file2.txt

  • file1.txt

    • 2012-3-1 a
      2012-3-2 b
      2012-3-3 c
      2012-3-4 d
      2012-3-5 a
      2012-3-6 b
      2012-3-7 c
      2012-3-3 c

  • file2.txt

    • 2012-3-3 b
      2012-3-4 d
      2012-3-5 a
      2012-3-6 c
      2012-3-7 d
      2012-3-3 c

6.1 開始啦

  • 先在HDFS創(chuàng)建DateRemove文件夾

  • cd /home/software/hadoop-2.7.7/
    ./bin/hdfs dfs -mkdir /user/hadoop/DateRemove # 如果報錯請運行這個 ./bin/hdfs dfs -mkdir -p /user/hadoop/DateRemove

  • 用ls查看文件是否創(chuàng)建成功

./bin/hdfs dfs -ls /user/hadoop

  • 在HDFS下創(chuàng)建一個名稱為DateRemove/input的目錄

    • ./bin/hdfs dfs -mkdir /user/hadoop/DateRemove/input

  • 將file1.txt和file2.txt傳到hdfs的/user/hadoop/DateRemove/input文件夾中

    • ./bin/hdfs dfs -put ./file1.txt ?/user/hadoop/DateRemove/input
      ./bin/hdfs dfs -put ./file2.txt ?/user/hadoop/DateRemove/input
      ./bin/hdfs dfs -ls ?/user/hadoop/DateRemove/input

6.2 在Linux下的eclipse中創(chuàng)建一個MapReduce工程

6.2.1 開始創(chuàng)建MapReduce

  1. 配置Hadoop路徑

    • 依次點擊:頂部菜單欄的Window → Preferences,出現(xiàn)如下界面:

選擇左邊的 Hadoop Map/Reduce,點擊右邊Browse…,選擇Hadoop文件夾的路徑即可

  1. 創(chuàng)建工程 依次點擊:頂部菜單欄的File → New → Project,出現(xiàn)如下界面:


選擇Map/Reduce Project,點擊右下方 Next> 然后輸入項目名稱wordcount,點擊右下方 Next>,再點擊Finish,創(chuàng)建項目。此時插件會把hadoop根目錄和lib目錄下的所有jar包自動導入

  1. 按照如下目錄創(chuàng)建你自己的目錄


  1. DedupMapper.java

package Data_De_duplication;

import java.io.IOException;

import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;

public class DedupMapper extends Mapper<LongWritable, Text, Text, NullWritable> {

? ?private static Text field = new Text(); ?

? ?@Override ?
? ?protected void map(LongWritable key, Text value, Context context) ?
? ? ? ? ? ?throws IOException, InterruptedException { ?

? ? ? ?field = value; ?
? ? ? ?context.write(field, NullWritable.get()); ?

? ?} ?

}

  1. DedupReducer.java

package Data_De_duplication;

import java.io.IOException;

import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;

public class DedupReducer extends Reducer<Text, NullWritable, Text, NullWritable>{
? ?@Override ?
? ?protected void reduce(Text key, Iterable<NullWritable> values, ?
? ? ? ? ? ?Context context) throws IOException, InterruptedException { ?

? ? ? ?context.write(key, NullWritable.get()); ?

? ?} ?

}

  1. DedupRunner.java

package Data_De_duplication;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

public class DedupRunner {
? ?public static void main(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
? ? ? ?Configuration conf = new Configuration();
? ? ? ?Job job = Job.getInstance(conf);

? ? ? ?job.setJarByClass(DedupRunner.class);

? ? ? ?job.setMapperClass(DedupMapper.class);
? ? ? ?job.setReducerClass(DedupReducer.class);

? ? ? ?job.setOutputKeyClass(Text.class);
? ? ? ?job.setOutputValueClass(NullWritable.class);

? ? ? ?FileInputFormat.setInputPaths(job, new Path("hdfs://localhost:9000/user/hadoop/DateRemove/input"));
? ? ? ?
? ? ? ?// 指定處理完成之后的結果所保存的位置
? ? ? ?FileOutputFormat.setOutputPath(job, new Path("hdfs://localhost:9000/user/hadoop/DateRemove/output"));

? ? ? ?job.waitForCompletion(true);

? ?}
}

  1. 點擊剛創(chuàng)建的DedupRunner.java,選擇Run As -> Run Configurations,設置運行時的相關參數(shù)如下


  1. run起來吧


hdfs://localhost:9000/user/hadoop/DateRemove/input
hdfs://localhost:9000/user/hadoop/DateRemove/output

  1. 結果


參考鏈接(感謝各位大佬的博客)

  1. Hadoop集群的配置:https://blog.csdn.net/qq_54542910/article/details/127366061

  2. 虛擬機安裝Hadoop https://blog.csdn.net/qq_54542910/article/details/127364777?spm=1001.2014.3001.5501

  3. Hadoop 安裝與配置:https://blog.csdn.net/weixin_43571612/article/details/129168659

  4. 大數(shù)據(jù)之Hadoop3.x 運行環(huán)境搭建(手把手搭建集群):https://blog.csdn.net/yuan2019035055/article/details/120901871

  5. 大數(shù)據(jù)之Hadoop學習(十二)對數(shù)據(jù)文件中的數(shù)據(jù)進行去重基于(MapReduce編程):https://blog.csdn.net/qq_42585108/article/details/105982486?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-105982486-blog-40559781.235^v38^pc_relevant_anti_vip&spm=1001.2101.3001.4242.1&utm_relevant_index=3

  6. Linux系統(tǒng)下eclipse中配置Hadoop插件:https://blog.csdn.net/hxhRxz/article/details/105030871?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0-105030871-blog-49561361.235^v38^pc_relevant_anti_vip&spm=1001.2101.3001.4242.1&utm_relevant_index=3

  7. 在Linux下的eclipse中創(chuàng)建一個MapReduce工程:https://blog.csdn.net/hxhRxz/article/details/105053119?spm=1001.2014.3001.5502

  8. Centos之上傳下載命令rz和sz-yellowcong:https://dandelioncloud.cn/article/details/1530902039366483969


Hadoop(CentOS)安裝及MapReduce實現(xiàn)數(shù)據(jù)去重的評論 (共 條)

分享到微博請遵守國家法律
南澳县| 双辽市| 广河县| 马鞍山市| 景德镇市| 广南县| 邯郸县| 安泽县| 钟祥市| 鱼台县| 焉耆| 太仆寺旗| 枣阳市| 肃宁县| 普陀区| 长岛县| 云龙县| 台南市| 海原县| 蒲江县| 天柱县| 潞西市| 安龙县| 大理市| 洞头县| 抚顺县| 台南市| 屏南县| 无锡市| 成安县| 博兴县| 林芝县| 武鸣县| 中宁县| 调兵山市| 扎鲁特旗| 克山县| 深圳市| 蛟河市| 元阳县| 延津县|