開始 linux平台下Hadoop下載下傳、安裝、配置
第一步, 下載下傳安裝 maven 配置環境 變量
2、下載下傳maven安裝包
wget wget http://mirrors.hust.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
3、解壓縮maven
tar -zxvf apache-maven-3.5.4-bin.tar.gz
我這裡将maven解壓縮之後的路徑為:/home/hadmin/apache-maven-3.5.4
4、配置maven環境變量
vi /etc/profile
按照如下樣例編輯環境變量。
編輯之後記得使用source /etc/profile指令是改動生效。
export PATH=$PATH:/opt/maven/apache-maven-3.5.4/bin
第二步,安裝hadoop
下載下傳hadoop
https://archive.apache.org/dist/hadoop/core/hadoop-2.7.6/
本次下載下傳的是: hadoop-2.7.6.tar.gz
注意安裝自己對應的版本号
1.上傳hadoop包,我這裡使用FileZilla上傳到 linux下root 目錄下
2.解壓hadoop包
首先在根目錄建立一個/itcast 目錄
mkdir /itcast
tar -zxvf hadoop-2.7.6.tar.gz -C /itcast
3.配置hadoop僞分布式(要修改etc/下的4個檔案) 安裝hadoop的目錄下, etc目錄下
export JAVA_HOME=/home/jdk/jdk1.8.0_181
第一個:hadoop-env.sh -- 如果裡面有配置變量,不用再配置,也要配置JDK環境變量
vim hadoop-env.sh
export JAVA_HOME=/home/jdk/jdk1.8.0_181
第二個:core-site.xml
<configuration>
<!-- 用來指定hdfs的老大(NameNode)的位址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://itcast01:9000</value>
</property>
<!-- 用來指定Hadoop運作時産生檔案的存放目錄 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/itcast/hadoop-2.7.6/tmp</value>
</property>
</configuration>
第三個:hdfs-site.xml
<configuration>
<!-- 指定HDFS儲存資料副本數量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
第四個:mapred-site.xml (需要從此檔案複制mapred-site.xml.template)
<configuration>
<!-- 告訴hadoop以後MR運作在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
第五個:yarn-site.xml
<configuration>
<!-- NodeManager擷取資料的方式是shuffle-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的老大(resourcemanager)的位址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>itcast01</value>
</property>
</configuration>
4.将Hadoop添加到環境變量中
vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_60
export HADOOP_HOME=/itcast/hadoop-2.7.6
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
export PATH=$PATH:/itcast/hadoop-2.7.6/bin 直接添加變量
#重新整理配置
source /etc/profile
5.初始化HDFS(格式化檔案系統,此步類似剛買U盤需要格式化)如果失敗,可能是環境變量問題
hdfs namenode -format
6.啟動文HDFS和YARN
./start-all.sh(過時了) 應該使用 start-dfs.sh and start-yarn.sh
這個兩個指令是要一起啟動的, 每個指令啟動的服務不一樣,(坑)start-yarn.sh
Starting namenodes on [it] Starting namenodes on [hadoop01 hadoop02]
坑 啟動不成功
start-dfs.sh:command not found
在hadoop sbin目錄下可以找到這個檔案。但是run不起來。
.bashrc 是個隐藏檔案,一般就在使用者的主目錄下
1、可以使用指令ls -a檢視
2、可以使用指令find -name .bashrc 查找檔案在什麼地方
解決方法:
1. 打開 $HOME/.bashrc 加入下面一行。
PATH=$PATH:/itcast/hadoop-2.7.6/sbin
這行代碼告訴bash應該去這個目錄去找這個檔案。
$HOME就是在根目錄下,
2. source $HOME/.bashrc
#有個小問題(需要多次輸入密碼)
Java HotSpot(TM) Server VM warning: You have loaded library /itcast/hadoop-2.7.6/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
hadoop-env.sh中加入以下兩行配置
export ##HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/"
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform...
在/itcast/hadoop-2.7.6/etc/hadoop/log4j.properties檔案中添加
log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR
/etc/hosts檔案作用:
itcast01: ssh: Could not resolve hostname itcast01: Name or service not known
127.0.0.1 itcast01
接下來,使用jps檢視程序情況
jps(jps 在Linux/unix平台上簡單察看目前java程序的一些簡單情況),如果有以下程序則表示測試通過
3887 Jps (java程序)
3449 SecondaryNameNode (相當于NameNode的助理)
3263 DataNode (hdfs部門的小弟,負責存放資料)
3138 NameNode (hdfs部門的老大)
3579 ResourceManager (yarn部門的老大,yarn負責資源管理)
3856 NodeManager (yarn部門的小弟,可以一個,叢集的話會有很多)
另外,我們也可以在windows平台下,使用浏覽器進行檢視,是否搭建成功
http://192.168.1.128:50070 ( hdfs管理界面)
http://192.168.1.128:8088 (yarn管理界面)
如果用戶端無法連接配接,請關閉防火牆 systemctl stop firewalld.service 我用的虛拟機
在這個檔案中添加linux主機名和IP的映射關系
c:\Windows\System32\drivers\etc
在末尾,添加
192.168.11.233 itcast01
(坑) yarn管理界面 無法登入
,最開始在hosts檔案裡,127.0.0.1 itcast01這樣配置有些問題
必須還是要 192.168.11.233 itcast01 不會被站用端口。
另外,兩個啟動指令經常失效,配置.bashrc 檔案後要經常儲存才行,後面有添加變量解決
輸入位址 http://192.168.1.128:50070
輸入位址,http://192.168.1.128:8088/
四、測試hdfs(主要存儲資料,存儲海量資料)
1.上傳檔案
我在終端這麼操作
hadoop fs -put Testhadoop.doc hdfs://itcast01:9000/user/words
建立一個doc檔案,上傳到後面的位址,words是重命名了檔案。上傳可以在hadoop WEB界面下載下傳,在Utilities 選項檢視, 檔案是在終端目前目錄
hadoop fs -put /mnt/hgfs/share/jdk-7u60-linux-i586.tar.gz hdfs://itcast01:9000/jdk
2.下載下傳檔案
hadoop fs -get hdfs://itcast01:9000/jdk /home/jdk1.7
五、測試MapReduce和Yarn
官方提供了一個Jar包
/itcast/hadoop-2.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar
在這裡,我們測試一下單詞統計(輸入與輸出,都存放在hdfs,因為可能檔案很大)
我們建立一個words檔案
hello tom
hello jerry
hello kitty
hello world
hello tom
将此檔案words上傳到hdfs上,接着我們使用mapreduce統計單詞,同時輸出也存放到hdfs上
hadoop jar hadoop-mapreduce-examples-2.2.0.jar wordcount hdfs://itcast01:9000/words hdfs://itcast01:9000/wcount
這一個是hdfs://itcast01:9000/wcount 上是MapReduce統計結果
hello 5
jerry 1
kitty 1
tom 2
world 1
六、配置SSH免密碼登入(/root/.ssh)
#SSH協定(讓linux不同機器,啟動起來。hadoop老大為了讓小弟聽話,使用SSH進行控制)
ssh-keygen -t rsa
執行完這個指令後,會生成兩個檔案id_rsa(私鑰)、id_rsa.pub(公鑰)
将公鑰拷貝成authorized_keys 檔案上
cp id_rsa.pub authorized_keys
接下來,我們将公鑰發送給想要登入的linux機器(實質是拷貝authorized_keys )
ssh-copy-id 192.168.8.89
這樣,我們以後使用192.168.8.88(NameNode主機)免密登入192.168.8.89
(坑) 修改 ~/.bashrc 檔案
添加以下這些行到 ~/.bashrc 檔案的末尾,内容如下所示:
#Set HADOOP_HOME
export HADOOP_HOME=/itcast/hadoop-2.7.6
#Set JAVA_HOME
export JAVA_HOME=/home/jdk/jdk1.8.0_181
# Add bin/ directory of Hadoop to PATH
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
環境變量PATH裡也可能要加上這個sbin 目錄
第二部分開始,用win在eclipse上開發程式
參考下面連接配接, 這位博友寫的非常詳細
https://www.cnblogs.com/supiaopiao/p/7240308.html