史上最詳細的Hadoop環境搭建(轉)

来源:https://www.cnblogs.com/huanlinll/archive/2018/09/08/9609030.html
-Advertisement-
Play Games

轉載的文章,請告知侵刪。本人只是做個記錄,以免以後找不到。 前言 Hadoop在大數據技術體系中的地位至關重要,Hadoop是大數據技術的基礎,對Hadoop基礎知識的掌握的扎實程度,會決定在大數據技術道路上走多遠。 這是一篇入門文章,Hadoop的學習方法很多,網上也有很多學習路線圖。本文的思路是 ...


轉載的文章,請告知侵刪。本人只是做個記錄,以免以後找不到。

前言

Hadoop在大數據技術體系中的地位至關重要,Hadoop是大數據技術的基礎,對Hadoop基礎知識的掌握的扎實程度,會決定在大數據技術道路上走多遠。

這是一篇入門文章,Hadoop的學習方法很多,網上也有很多學習路線圖。本文的思路是:以安裝部署Apache Hadoop2.x版本為主線,來介紹Hadoop2.x的架構組成、各模塊協同工作原理、技術細節。安裝不是目的,通過安裝認識Hadoop才是目的。

本文分為五個部分、十三節、四十九步。

第一部分:Linux環境安裝

Hadoop是運行在Linux,雖然藉助工具也可以運行在Windows上,但是建議還是運行在Linux系統上,第一部分介紹Linux環境的安裝、配置、Java JDK安裝等。

第二部分:Hadoop本地模式安裝

Hadoop本地模式只是用於本地開發調試,或者快速安裝體驗Hadoop,這部分做簡單的介紹。

第三部分:Hadoop偽分散式模式安裝

學習Hadoop一般是在偽分散式模式下進行。這種模式是在一臺機器上各個進程上運行Hadoop的各個模塊,偽分散式的意思是雖然各個模塊是在各個進程上分開運行的,但是只是運行在一個操作系統上的,並不是真正的分散式。

第四部分:完全分散式安裝

完全分散式模式才是生產環境採用的模式,Hadoop運行在伺服器集群上,生產環境一般都會做HA,以實現高可用。

第五部分:Hadoop HA安裝

HA是指高可用,為瞭解決Hadoop單點故障問題,生產環境一般都做HA部署。這部分介紹瞭如何配置Hadoop2.x的高可用,並簡單介紹了HA的工作原理。 
安裝過程中,會穿插簡單介紹涉及到的知識。希望能對大家有所幫助。 

最後,我真的按這些步驟安裝了,然而發現這門檻不一般,需要學習整個生態,所以去淘寶買了個幾塊錢的視頻教程,個人感覺講的還可以,還有項目什麼的,才幾塊錢,有需要的可以去找找,這裡給個我買的鏈接

https://item.taobao.com/item.htm?spm=a230r.1.14.186.ec2e52e0yM89Zu&id=576782961510&ns=1&abbucket=6#detail ,好了下麵開始乾吧.

第一部分:Linux環境安裝

第一步、配置Vmware NAT網路

一、Vmware網路模式介紹

參考:http://blog.csdn.net/collection4u/article/details/14127671

二、NAT模式配置

NAT是網路地址轉換,是在宿主機和虛擬機之間增加一個地址轉換服務,負責外部和虛擬機之間的通訊轉接和IP轉換。

我們部署Hadoop集群,這裡選擇NAT模式,各個虛擬機通過NAT使用宿主機的IP來訪問外網。

我們的要求是集群中的各個虛擬機有固定的IP、可以訪問外網,所以進行如下設置:

1、 Vmware安裝後,預設的NAT設置如下:

enter image description here

2、 預設的設置是啟動DHCP服務的,NAT會自動給虛擬機分配IP,但是我們需要將各個機器的IP固定下來,所以要取消這個預設設置。

3、 為機器設置一個子網網段,預設是192.168.136網段,我們這裡設置為100網段,將來各個虛擬機Ip就為 192.168.100.*。

4、 點擊NAT設置按鈕,打開對話框,可以修改網關地址和DNS地址。這裡我們為NAT指定DNS地址。

enter image description here

5、 網關地址為當前網段里的.2地址,好像是固定的,我們不做修改,先記住網關地址就好了,後面會用到。

第二步、安裝Linux操作系統

三、Vmware上安裝Linux系統

1、 文件菜單選擇新建虛擬機

2、 選擇經典類型安裝,下一步。

3、 選擇稍後安裝操作系統,下一步。

4、 選擇Linux系統,版本選擇CentOS 64位。

enter image description here

5、 命名虛擬機,給虛擬機起個名字,將來顯示在Vmware左側。並選擇Linux系統保存在宿主機的哪個目錄下,應該一個虛擬機保存在一個目錄下,不能多個虛擬機使用一個目錄。

enter image description here

6、 指定磁碟容量,是指定分給Linux虛擬機多大的硬碟,預設20G就可以,下一步。

7、 點擊自定義硬體,可以查看、修改虛擬機的硬體配置,這裡我們不做修改。

8、 點擊完成後,就創建了一個虛擬機,但是此時的虛擬機還是一個空殼,沒有操作系統,接下來安裝操作系統。

9、 點擊編輯虛擬機設置,找到DVD,指定操作系統ISO文件所在位置。

enter image description here

10、 點擊開啟此虛擬機,選擇第一個回車開始安裝操作系統。

enter image description here

11、 設置root密碼。

enter image description here

12、 選擇Desktop,這樣就會裝一個Xwindow。

enter image description here

13、 先不添加普通用戶,其他用預設的,就把Linux安裝完畢了。

四、設置網路

因為Vmware的NAT設置中關閉了DHCP自動分配IP功能,所以Linux還沒有IP,需要我們設置網路各個參數。

1、 用root進入Xwindow,右擊右上角的網路連接圖標,選擇修改連接。

enter image description here

2、 網路連接里列出了當前Linux里所有的網卡,這裡只有一個網卡System eth0,點擊編輯。

enter image description here

3、 配置IP、子網掩碼、網關(和NAT設置的一樣)、DNS等參數,因為NAT里設置網段為100.*,所以這台機器可以設置為192.168.100.10網關和NAT一致,為192.168.100.2

enter image description here

4、 用ping來檢查是否可以連接外網,如下圖,已經連接成功。

enter image description here

五、修改Hostname

1、 臨時修改hostname

[root@localhost Desktop]# hostname bigdata-senior01.chybinmy.com
  • 1

這種修改方式,系統重啟後就會失效。

2、 永久修改hostname

想永久修改,應該修改配置文件 /etc/sysconfig/network。

命令:[root@bigdata-senior01 ~] vim /etc/sysconfig/network
  • 1

打開文件後,

  1.   NETWORKING=yes #使用網路
  2.   HOSTNAME=bigdata-senior01.chybinmy.com #設置主機名
  • 1
  • 2

六、配置Host

  1.   命令:[root@bigdata-senior01 ~] vim /etc/hosts
  2.   添加hosts: 192.168.100.10 bigdata-senior01.chybinmy.com
  • 1
  • 2

七、關閉防火牆

學習環境可以直接把防火牆關閉掉。

(1) 用root用戶登錄後,執行查看防火牆狀態。

[root@bigdata-senior01 hadoop]# service iptables status
  • 1

(2) 用[root@bigdata-senior01 hadoop]# service iptables stop關閉防火牆,這個是臨時關閉防火牆。

  1.   [root@bigdata-senior01 hadoop-2.5.0]# service iptables stop
  2.   iptables: Setting chains to policy ACCEPT: filter [ OK ]
  3.   iptables: Flushing firewall rules: [ OK ]
  4.   iptables: Unloading modules: [ OK ]
  • 1
  • 2
  • 3
  • 4

(3) 如果要永久關閉防火牆用。

[root@bigdata-senior01 hadoop]# chkconfig iptables off
  • 1

關閉,這種需要重啟才能生效。

八、關閉selinux

selinux是Linux一個子安全機制,學習環境可以將它禁用。

[hadoop@bigdata-senior01 hadoop-2.5.0]$ vim /etc/sysconfig/selinux
  • 1
  1.   # This file controls the state of SELinux on the system.
  2.   # SELINUX= can take one of these three values:
  3.   # enforcing - SELinux security policy is enforced.
  4.   # permissive - SELinux prints warnings instead of enforcing.
  5.   # disabled - No SELinux policy is loaded.
  6.   SELINUX=disabled
  7.   # SELINUXTYPE= can take one of these two values:
  8.   # targeted - Targeted processes are protected,
  9.   # mls - Multi Level Security protection.
  10.   SELINUXTYPE=targeted
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

enter image description here

第三步、安裝JDK

九、安裝Java JDK

1、 查看是否已經安裝了java JDK。

[root@bigdata-senior01 Desktop]# java –version
  • 1

註意:Hadoop機器上的JDK,最好是Oracle的Java JDK,不然會有一些問題,比如可能沒有JPS命令。 
如果安裝了其他版本的JDK,卸載掉。

2、 安裝java JDK

(1) 去下載Oracle版本Java JDK:jdk-7u67-linux-x64.tar.gz

(2) 將jdk-7u67-linux-x64.tar.gz解壓到/opt/modules目錄下

[root@bigdata-senior01 /]# tar -zxvf jdk-7u67-linux-x64.tar.gz -C /opt/modules
  • 1

(3) 添加環境變數

設置JDK的環境變數 JAVA_HOME。需要修改配置文件/etc/profile,追加

  1.   export JAVA_HOME="/opt/modules/jdk1.7.0_67"
  2.   export PATH=$JAVA_HOME/bin:$PATH
  • 1
  • 2

修改完畢後,執行 source /etc/profile

(4)安裝後再次執行 java –version,可以看見已經安裝完成。

  1.   [root@bigdata-senior01 /]# java -version
  2.   java version "1.7.0_67"
  3.   Java(TM) SE Runtime Environment (build 1.7.0_67-b01)
  4.   Java HotSpot(TM) 64-Bit Server VM (build 24.65-b04, mixed mode)
  • 1
  • 2
  • 3
  • 4

第二部分:Hadoop本地模式安裝

第四步、Hadoop部署模式

Hadoop部署模式有:本地模式、偽分佈模式、完全分散式模式、HA完全分散式模式。

區分的依據是NameNode、DataNode、ResourceManager、NodeManager等模塊運行在幾個JVM進程、幾個機器。

模式名稱各個模塊占用的JVM進程數各個模塊運行在幾個機器數上
本地模式 1個 1個
偽分散式模式 N個 1個
完全分散式模式 N個 N個
HA完全分散式 N個 N個

第五步、本地模式部署

十、本地模式介紹

本地模式是最簡單的模式,所有模塊都運行與一個JVM進程中,使用的本地文件系統,而不是HDFS,本地模式主要是用於本地開發過程中的運行調試用。下載hadoop安裝包後不用任何設置,預設的就是本地模式。

十一、解壓hadoop後就是直接可以使用

1、 創建一個存放本地模式hadoop的目錄

[hadoop@bigdata-senior01 modules]$ mkdir /opt/modules/hadoopstandalone
  • 1

2、 解壓hadoop文件

[hadoop@bigdata-senior01 modules]$ tar -zxf /opt/sofeware/hadoop-2.5.0.tar.gz  -C /opt/modules/hadoopstandalone/
  • 1

3、 確保JAVA_HOME環境變數已經配置好

  1.   [hadoop@bigdata-senior01 modules]$ echo ${JAVA_HOME}
  2.   /opt/modules/jdk1.7.0_67
  • 1
  • 2

十二、運行MapReduce程式,驗證

我們這裡用hadoop自帶的wordcount例子來在本地模式下測試跑mapreduce。

1、 準備mapreduce輸入文件wc.input

  1.   [hadoop@bigdata-senior01 modules]$ cat /opt/data/wc.input
  2.   hadoop mapreduce hive
  3.   hbase spark storm
  4.   sqoop hadoop hive
  5.   spark hadoop
  • 1
  • 2
  • 3
  • 4
  • 5

2、 運行hadoop自帶的mapreduce Demo

[hadoop@bigdata-senior01 hadoopstandalone]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /opt/data/wc.input output2
  • 1

enter image description here

這裡可以看到job ID中有local字樣,說明是運行在本地模式下的。

3、 查看輸出文件

本地模式下,mapreduce的輸出是輸出到本地。

  1.   [hadoop@bigdata-senior01 hadoopstandalone]$ ll output2
  2.   total 4
  3.   -rw-r--r-- 1 hadoop hadoop 60 Jul 7 12:50 part-r-00000
  4.   -rw-r--r-- 1 hadoop hadoop 0 Jul 7 12:50 _SUCCESS
  • 1
  • 2
  • 3
  • 4

輸出目錄中有_SUCCESS文件說明JOB運行成功,part-r-00000是輸出結果文件。 

第三部分:Hadoop偽分散式模式安裝

第六步、偽分散式Hadoop部署過程

十三、Hadoop所用的用戶設置

1、 創建一個名字為hadoop的普通用戶

  1.   [root@bigdata-senior01 ~]# useradd hadoop
  2.   [root@bigdata-senior01 ~]# passwd hadoop
  • 1
  • 2

2、 給hadoop用戶sudo許可權

[root@bigdata-senior01 ~]# vim /etc/sudoers
  • 1

設置許可權,學習環境可以將hadoop用戶的許可權設置的大一些,但是生產環境一定要註意普通用戶的許可權限制。

  1.   root ALL=(ALL) ALL
  2.   hadoop ALL=(root) NOPASSWD:ALL
  • 1
  • 2

註意:如果root用戶無權修改sudoers文件,先手動為root用戶添加寫許可權。

[root@bigdata-senior01 ~]# chmod u+w /etc/sudoers
  • 1

3、 切換到hadoop用戶

  1.   [root@bigdata-senior01 ~]# su - hadoop
  2.   [hadoop@bigdata-senior01 ~]$
  • 1
  • 2

4、 創建存放hadoop文件的目錄

[hadoop@bigdata-senior01 ~]$ sudo mkdir /opt/modules
  • 1

5、 將hadoop文件夾的所有者指定為hadoop用戶

如果存放hadoop的目錄的所有者不是hadoop,之後hadoop運行中可能會有許可權問題,那麼就講所有者改為hadoop。

[hadoop@bigdata-senior01 ~]# sudo chown -R hadoop:hadoop /opt/modules
  • 1

十四、解壓Hadoop目錄文件

1、 複製hadoop-2.5.0.tar.gz到/opt/modules目錄下。

2、 解壓hadoop-2.5.0.tar.gz

  1.   [hadoop@bigdata-senior01 ~]# cd /opt/modules
  2.   [hadoop@bigdata-senior01 hadoop]# tar -zxvf hadoop-2.5.0.tar.gz
  • 1
  • 2

十五、配置Hadoop

1、 配置Hadoop環境變數

[hadoop@bigdata-senior01 hadoop]# vim /etc/profile
  • 1

追加配置:

  1.   export HADOOP_HOME="/opt/modules/hadoop-2.5.0"
  2.   export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
  • 1
  • 2

執行:source /etc/profile 使得配置生效

驗證HADOOP_HOME參數:

  1.   [hadoop@bigdata-senior01 /]$ echo $HADOOP_HOME
  2.   /opt/modules/hadoop-2.5.0
  • 1
  • 2

2、 配置 hadoop-env.sh、mapred-env.sh、yarn-env.sh文件的JAVA_HOME參數

[hadoop@bigdata-senior01 ~]$ sudo vim  ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh
  • 1
  1.   修改JAVA_HOME參數為:
  2.   export JAVA_HOME="/opt/modules/jdk1.7.0_67"
  • 1
  • 2

3、 配置core-site.xml

enter image description here

[hadoop@bigdata-senior01 ~]{HADOOP_HOME}/etc/hadoop/core-site.xml

(1) fs.defaultFS參數配置的是HDFS的地址。

  1.   <property>
  2.   <name>fs.defaultFS</name>
  3.   <value>hdfs://bigdata-senior01.chybinmy.com:8020</value>
  4.   </property>
  • 1
  • 2
  • 3
  • 4

(2) hadoop.tmp.dir配置的是Hadoop臨時目錄,比如HDFS的NameNode數據預設都存放這個目錄下,查看*-default.xml等預設配置文件,就可以看到很多依賴${hadoop.tmp.dir}的配置。

預設的hadoop.tmp.dir/tmp/hadoop-${user.name},此時有個問題就是NameNode會將HDFS的元數據存儲在這個/tmp目錄下,如果操作系統重啟了,系統會清空/tmp目錄下的東西,導致NameNode元數據丟失,是個非常嚴重的問題,所有我們應該修改這個路徑。

  • 創建臨時目錄:
    [hadoop@bigdata-senior01 hadoop-2.5.0]$ sudo mkdir -p /opt/data/tmp
  • 1
  • 將臨時目錄的所有者修改為hadoop
[hadoop@bigdata-senior01 hadoop-2.5.0]$ sudo chown –R hadoop:hadoop /opt/data/tmp
  • 1
  • 修改hadoop.tmp.dir
  1.   <property>
  2.   <name>hadoop.tmp.dir</name>
  3.   <value>/opt/data/tmp</value>
  4.   </property>
  • 1
  • 2
  • 3
  • 4

十六、配置、格式化、啟動HDFS

1、 配置hdfs-site.xml

enter image description here

[hadoop@bigdata-senior01 hadoop-2.5.0]$ vim ${HADOOP_HOME}/etc/hadoop/hdfs-site.xml
  • 1
  1.   <property>
  2.   <name>dfs.replication</name>
  3.   <value>1</value>
  4.   </property>
  • 1
  • 2
  • 3
  • 4

dfs.replication配置的是HDFS存儲時的備份數量,因為這裡是偽分散式環境只有一個節點,所以這裡設置為1。

2、 格式化HDFS

enter image description here

[hadoop@bigdata-senior01 ~]$ hdfs namenode –format
  • 1

格式化是對HDFS這個分散式文件系統中的DataNode進行分塊,統計所有分塊後的初始元數據的存儲在NameNode中。

格式化後,查看core-site.xml里hadoop.tmp.dir(本例是/opt/data目錄)指定的目錄下是否有了dfs目錄,如果有,說明格式化成功。

註意:

  1. 格式化時,這裡註意hadoop.tmp.dir目錄的許可權問題,應該hadoop普通用戶有讀寫許可權才行,可以將/opt/data的所有者改為hadoop。 
    [hadoop@bigdata-senior01 hadoop-2.5.0]$ sudo chown -R hadoop:hadoop /opt/data

  2. 查看NameNode格式化後的目錄。

   [hadoop@bigdata-senior01 ~]$ ll /opt/data/tmp/dfs/name/current
  • 1

enter image description here

fsimage是NameNode元數據在記憶體滿了後,持久化保存到的文件。

fsimage*.md5 是校驗文件,用於校驗fsimage的完整性。

seen_txid 是hadoop的版本

vession文件里保存:

  • namespaceID:NameNode的唯一ID。

  • clusterID:集群ID,NameNode和DataNode的集群ID應該一致,表明是一個集群。

  1.   #Mon Jul 04 17:25:50 CST 2016
  2.   namespaceID=2101579007
  3.   clusterID=CID-205277e6-493b-4601-8e33-c09d1d23ece4
  4.   cTime=0
  5.   storageType=NAME_NODE
  6.   blockpoolID=BP-1641019026-127.0.0.1-1467624350057
  7.   layoutVersion=-57
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

3、 啟動NameNode

  1.   [hadoop@bigdata-senior01 hadoop-2.5.0]$ ${HADOOP_HOME}/sbin/hadoop-daemon.sh start namenode
  2.   starting namenode, logging to /opt/modules/hadoop-2.5.0/logs/hadoop-hadoop-namenode-bigdata-senior01.chybinmy.com.out
  • 1
  • 2

enter image description here

4、 啟動DataNode

  1.   [hadoop@bigdata-senior01 hadoop-2.5.0]$ ${HADOOP_HOME}/sbin/hadoop-daemon.sh start datanode
  2.   starting datanode, logging to /opt/modules/hadoop-2.5.0/logs/hadoop-hadoop-datanode-bigdata-senior01.chybinmy.com.out
  • 1
  • 2

enter image description here

5、 啟動SecondaryNameNode

  1.   [hadoop@bigdata-senior01 hadoop-2.5.0]$ ${HADOOP_HOME}/sbin/hadoop-daemon.sh start secondarynamenode
  2.   starting secondarynamenode, logging to /opt/modules/hadoop-2.5.0/logs/hadoop-hadoop-secondarynamenode-bigdata-senior01.chybinmy.com.out
  • 1
  • 2

enter image description here

6、 JPS命令查看是否已經啟動成功,有結果就是啟動成功了。

  1.   [hadoop@bigdata-senior01 hadoop-2.5.0]$ jps
  2.   3034 NameNode
  3.   3233 Jps
  4.   3193 SecondaryNameNode
  5.   3110 DataNode
  • 1
  • 2
  • 3
  • 4
  • 5

enter image description here

7、 HDFS上測試創建目錄、上傳、下載文件

HDFS上創建目錄

[hadoop@bigdata-senior01 hadoop-2.5.0]$ ${HADOOP_HOME}/bin/hdfs dfs -mkdir /demo1
  • 1

上傳本地文件到HDFS上

  1.   [hadoop@bigdata-senior01 hadoop-2.5.0]$ ${HADOOP_HOME}/bin/hdfs dfs -put
  2.   ${HADOOP_HOME}/etc/hadoop/core-site.xml /demo1
  • 1
  • 2

讀取HDFS上的文件內容

[hadoop@bigdata-senior01 hadoop-2.5.0]$ ${HADOOP_HOME}/bin/hdfs dfs -cat /demo1/core-site.xml
  • 1

enter image description here

從HDFS上下載文件到本地

[hadoop@bigdata-senior01 hadoop-2.5.0]$ bin/hdfs dfs -get /demo1/core-site.xml
  • 1

enter image description here

十七、配置、啟動YARN

1、 配置mapred-site.xml

預設沒有mapred-site.xml文件,但是有個mapred-site.xml.template配置模板文件。複製模板生成mapred-site.xml。

[hadoop@bigdata-senior01 hadoop-2.5.0]# cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
  • 1

添加配置如下:

  1.   <property>
  2.   <name>mapreduce.framework.name</name>
  3.   <value>yarn</value>
  4.   </property>
  • 1
  • 2
  • 3
  • 4

指定mapreduce運行在yarn框架上。

enter image description here

2、 配置yarn-site.xml

添加配置如下:

  1.   <property>
  2.   <name>yarn.nodemanager.aux-services</name>
  3.   <value>mapreduce_shuffle</value>
  4.   </property>
  5.   <property>
  6.   <name>yarn.resourcemanager.hostname</name>
  7.   <value>bigdata-senior01.chybinmy.com</value>
  8.   </property>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • yarn.nodemanager.aux-services配置了yarn的預設混洗方式,選擇為mapreduce的預設混洗演算法。

  • yarn.resourcemanager.hostname指定了Resourcemanager運行在哪個節點上。

    enter image description here

3、 啟動Resourcemanager

[hadoop@bigdata-senior01 hadoop-2.5.0]$ ${HADOOP_HOME}/sbin/yarn-daemon.sh start resourcemanager
  • 1

enter image description here

4、 啟動nodemanager

[hadoop@bigdata-senior01 hadoop-2.5.0]$ ${HADOOP_HOME}/sbin/yarn-daemon.sh start nodemanager
  • 1

enter image description here

5、 查看是否啟動成功

  1.   [hadoop@bigdata-senior01 hadoop-2.5.0]$ jps
  2.   3034 NameNode
  3.   4439 NodeManager
  4.   4197 ResourceManager
  5.   4543 Jps
  6.   3193 SecondaryNameNode
  7.   3110 DataNode
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

可以看到ResourceManager、NodeManager已經啟動成功了。

enter image description here

6、 YARN的Web頁面

YARN的Web客戶端埠號是8088,通過http://192.168.100.10:8088/可以查看。

enter image description here

十八、運行MapReduce Job

在Hadoop的share目錄里,自帶了一些jar包,裡面帶有一些mapreduce實例小例子,位置在share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar,可以運行這些例子體驗剛搭建好的Hadoop平臺,我們這裡來運行最經典的WordCount實例。

1、 創建測試用的Input文件

創建輸入目錄:

[hadoop@bigdata-senior01 hadoop-2.5.0]$ bin/hdfs dfs -mkdir -p /wordcountdemo/input
  • 1

創建原始文件:

在本地/opt/data目錄創建一個文件wc.input,內容如下。

enter image description here

將wc.input文件上傳到HDFS的/wordcountdemo/input目錄中:

[hadoop@bigdata-senior01 hadoop-2.5.0]$ bin/hdfs dfs -put /opt/data/wc.input /wordcountdemo/input
  • 1

enter image description here

2、 運行WordCount MapReduce Job

  1.   [hadoop@bigdata-senior01 hadoop-2.5.0]$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-
  2.   2.5.0.jar wordcount /wordcountdemo/input /wordcountdemo/output
  • 1
  • 2

enter image description here

3、 查看輸出結果目錄

  1.   [hadoop@bigdata-senior01 hadoop-2.5.0]$ bin/hdfs dfs -ls /wordcountdemo/output
  2.   -rw-r--r-- 1 hadoop supergroup 0 2016-07-05 05:12 /wordcountdemo/output/_SUCCESS
  3.   -rw-r--r-- 1 hadoop supergroup 60 2016-07-05 05:12 /wordcountdemo/output/part-r-00000
  • 1
  • 2
  • 3

enter image description here

  • output目錄中有兩個文件,_SUCCESS文件是空文件,有這個文件說明Job執行成功。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 參考博客:linux下ElasticSearch.6.2.2集群安裝與head、Kibana、X-Pack..插件的配置安裝 參考博客:ELK5.5.1 插件安裝實踐紀要(head/bigdesk/kopf/cerebo/中文分詞插件) 參考博客:ELK構建MySQL慢日誌收集平臺詳解 參考博客:針 ...
  • 本文大部分內容來自鳥哥的Linux私房菜,並且由作者根據自己的學習情況做了一些更改, "鳥哥原文鏈接" 1. 程式的安裝方式 1. 源代碼安裝:利用廠商釋出的Tarball 來進行軟體的安裝,每次安裝程式都需要檢測系統與環境、設定編譯參數、實際的編譯、 最後還要依據個人喜好的方式來安裝軟體到指定位置 ...
  • 數據集猶如世界歷史狀態的快照,能幫助我們捕捉不斷變化的事物,而數據可視化則是將複雜數據以簡單的形式展示給用戶的良好手段(或媒介)。結合個人書中所學與實際工作所學,對數據可視化過程做了一些總結形成本文供各位看客"消遣"。 個人以為數據可視化服務商業分析的經典過程可濃縮為:從業務與數據出發,經過數據分析 ...
  • 數據不是信息,而是有待理解的原材料。但有一件事是確定無疑的:當NSA為了從其海量數據中“挖掘”出信息,耗資數十億改善新手段時,它正受益於陡然降落的電腦存儲和處理價格。 麻省理工學院的研究者約翰·古塔格(John Guttag)和柯林·斯塔爾茲(Collin Stultz)創建了一個電腦模型來分析 ...
  • Hive的安裝與部署(MySQL作為元數據) (開始之前確保Hadoop環境已經啟動,確保Linux下的MySQL已經安裝好) (1)下載安裝包 可從apache上下載hive安裝包:http://mirror.bit.edu.cn/apache/hive/ (2)壓縮包解壓: (2)移動至指定目錄 ...
  • 1、檢查postgresql是否已經安裝:rpm -qa | grep postgres 2、檢查PostgreSQL 安裝位置:rpm -qal | grep postgres 3、卸載Postgresql:yum remove postgresql* 4、啟動防火牆:systemctl star ...
  • # 安裝前的準備 useradd huedev wget https://github.com/cloudera/hue/archive/release-4.2.0.tar.gz -O /home/huedev wget http://ftp.jaist.ac.jp/pub/apache/maven ...
  • 存儲過程 MySQL中,創建存儲過程的基本形式如下: 其中,sp_name參數是存儲過程的名稱;proc_parameter表示存儲過程的參數列表; characteristic參數指定存儲過程的特性;routine_body參數是SQL代碼的內容,可以用BEGIN…END來標誌SQL代碼的開始和結 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...