一、安裝之前的準備
1.1 修改主機名稱
進入 Linux 系統查看本機的主機名。通過 hostname 命令查看。
[root@localhost ~] 地址是自己主機名稱的ip
1.2 關閉防火牆
1)service iptables stop 關閉防火牆
2)chkconfig iptables off 永久關閉防火牆啟動
3)chkconfig iptables --list 查看防火牆開機啟動狀態
1.3 規劃軟體安裝目錄
1)創建安裝包的保存目錄,以及安裝目錄
mkdir -p /opt/software 保存軟體的安裝包
mkdir -p /opt/app 軟體的安裝路徑
1.4 創建Hadoop用戶,以及賦予sudo權限
1)創建Hadoop用戶,以後的操作都是在hadoop用戶下完成的
useradd hadoop 創建hadoop用戶
passwd hadoop 為hadoop用戶設置密碼
2)為hadoop用戶賦予sudo權限
在root用戶下,執行visudo命令編輯如下內容
Allow root to run any commands anywhere root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL 為hadoop用戶設置sudo權限
Same thing without a password %wheel ALL=(ALL) NOPASSWD: ALL hadoop ALL=(ALL) NOPASSWD: ALL. 為hadoop用戶設置免密碼sudo權限
1.5 安裝JDK環境
首先先把jdk的安裝包上傳到software 文件夾下,之後對其安裝
1)解壓 sudo tar -zvxf jdk-8u181-linux-x64.tar.gz
2)配置JDK環境變量
首先獲取JDK的安裝路徑
[hadoop@hadoop01 jdk1.8.0_181]$ pwd
/opt/soft/jdk1.8.0_181
接下來打開 /etc/profile 文件進行環境變量的設置
vi /etc/profile
在 profie 文件末尾添加 jdk 路徑:
The java implementation to use.
export JAVA_HOME=/opt/soft/jdk1.8.0_181
在該配置文件中,找到如上內容,並且修改JAVA_HOME 為自己的JDK路徑 配置完成之後,可以在hadoop根路徑下,輸入如下命令
bin/hadoop
Usage: hadoop [--config confdir] [COMMAND | CLASSNAME]
CLASSNAME run the class named CLASSNAME
or
where COMMAND is one of:
fs run a generic filesystem user client
version print the version
jar <jar> run a jar file
note: please use "yarn jar" to launch
YARN applications, not this command.
checknative [-a|-h] check native hadoop and compression libraries availability
distcp <srcurl> <desturl> copy file or directories recursively
archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive
classpath prints the class path needed to get the
credential interact with credential providers
Hadoop jar and the required libraries
daemonlog get/set the log level for each daemon
trace view and modify Hadoop tracing settings
Most commands print help when invoked w/o parameters.
如果能看到如上的信息,說明基本的運行環境已經搭建完成了
二、Hadoop運行模式
Hadoop的運行模式,分為以下幾種:
1) 本地模式(默認模式)
不需要啟用單獨進程,直接可以運行,測試和開發時使用。
2)偽分布模式
等同於完全分布式,只有一個節點。
3)完全分布式模式
多個節點一起運行。
2.1 本地運行Hadoop官方案例Grep
對於這個案例來說,主要的作用就是,在一堆文件中與規定的正則表達式進行匹配,把匹配成功的單詞出現的次數,進行統計
$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'
$ cat output/*
以上為官網上給出的案例代碼
從以上的案例代碼可以得出,首先需要創建一個目錄,用於存放需要統計的文件,而對於統計結果的保存目錄則不用以前創建,注意:Hadoop中輸出結果的目錄是不能提前存在的
範例:運行grep案例
1)在hadoop根目錄下創建一個文件夾input
[hadoop@hadoop01 hadoop-2.7.2]$ mkdir input
2) 將hadoop的xml配置文件複製到input
[hadoop@hadoop01 hadoop-2.7.2]$ cp etc/hadoop/*.xml input/
3) 執行share目錄下的mapreduce程序
[hadoop@hadoop01 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'
4) 查看輸出結果
[hadoop@hadoop01 hadoop-2.7.2]$ cat output/*
1 dfsadmin
2.2 運行官方wordcount案例
1) 在hadoop根目錄中創建用於保存統計文件的wcinput目錄
[hadoop@hadoop01 hadoop-2.7.2]$ mkdir wcinput
2) 在 wcinput 文件下創建一個 wordcount.txt 文件
[hadoop@hadoop01 wcinput]$ vi worldcount.txt
hello java world input
hadoop hive zookeeper java
world input hello hadoop
hbase zookeeper sqoop
3) 執行wordcount案例程序
[hadoop@hadoop01 hadoop-2.7.2]$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput wcoutput
4) 查看結果
[hadoop@hadoop01 hadoop-2.7.2]$ cat wcoutput/part-r-00000
hadoop 2
hbase 1
hello 2
hive 1
input 2
java 2
sqoop 1
world 2
zookeeper 2
通過以上的方式,就可以完成Hadoop的最基本的環境搭建,以及運行Hadoop的一些案例