環境
ubuntu18 + hadoop2.7.7 + jdk1.8
準備
- 版本選擇
根據Hadoop HBase JAVA版本兼容情況, 推薦安裝 Hadoop-2.7.1+ 與 Java1.8 - 安裝java, 並添加環境變量
添加PPA倉庫(這是OpenJdk 8 PPA倉庫)sudo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update sudo apt-get install openjdk-8-jdk
vi /etc/profile # vi---vim export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64 export PATH=/opt/hadoop/hdfs/bin:$PATH # 爲之後安裝的Hadoop配置變量
若系統安裝了多個版本的java, 可用下面語句進行切換source /etc/profile # 讓設置生效
安裝ssh (略)sudo update-alternatives --config java # 更新可選java配置 java -version # 查看Java版本
安裝
Hadoop部署方式分三種,Standalone mode、Pseudo-Distributed mode、Cluster mode,其中前兩種都是在單機部署。
-
Hadoop單機模式安裝
standalone mode
(獨立模式)這種模式下僅1個節點運行1個java進程,主要用於調試
本地模式是最簡單的模式,所有模塊都運行與一個JVM進程中,使用的本地文件系統,而不是HDFS,本地模式主要是用於本地開發過程中的運行調試用。下載hadoop安裝包後不用任何設置,默認的就是本地模式。- 創建 hadoop 用戶, 並加入 sudo 用戶組.
sudo adduser hadoop sudo usermod -G sudo hadoop
- 下載並安裝Hadoop
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz #或者從官網下載 tar zxvf hadoop-2.7.7.tar.gz mv hadoop2.7.7 /opt/hadoop/hdfs # 移動文件並重命名 chmod 777 /opt/hadoop # 授予hadoop用戶讀寫權限
- 配置Hadoop
在文件中添加以下語句cd /opt/hadoop/hdfs vi etc/hadoop/hadoop-env.sh #
export JAVA_HOME=/usr/java/latest # set to the root of your Java installation export HADOOP_PREFIX=/opt/hadoop/hdfs # 設置成你的hadoop安裝文件夾
- 驗證(運行自帶的wordcount程序)
hadoop version mkdir input # 在Hadoop的安裝目錄下,創建input目錄 cp etc/hadoop/*.xml input # 拷貝input文件到input目錄下 bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar grep input output 'dfs[a-z.]+' 執行Hadoop job cat output/* # 查看結果
- 創建 hadoop 用戶, 並加入 sudo 用戶組.
-
僞分佈式安裝
修改設定文件 (確保當前所在目錄爲hadoop安裝目錄)# vi etc/hadoop/core-site.xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>
# vi etc/hadoop/hdfs-site.xml <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
設置ssh免密碼登錄
現在檢查你是否可以在沒有密碼的情況下ssh到localhostssh localhost
如果在沒有密碼短語的情況下無法ssh到localhost,請執行以下命令
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
執行
以下是在本地運行MapReduce作業。如果要在YARN上執行作業,請參閱單節點上的YARN格式化文件系統
bin/hdfs namenode -format
啓動NameNode守護程序和DataNode守護程序
sbin/start-dfs.sh
hadoop守護程序日誌輸出將寫入$ HADOOP_LOG_DIR目錄(默認爲$ HADOOP_HOME / logs)
打開瀏覽器檢查是否運行成功
輸入:http://localhost:8088 進入ResourceManager管理頁面 (需要配置yarn)
輸入:http://localhost:50070 進入HDFS頁面測試驗證
hdfs dfs -mkdir -p /user/hadoop/input # 創建執行MapReduce作業所需的HDFS目錄 hdfs dfs -put etc/hadoop input # 將輸入文件複製到分佈式文件系統中 bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar grep input output 'dfs[a-z.]+' # 執行示例 # 將輸出文件從分佈式文件系統複製到本地文件系統並檢查 bin/hdfs dfs -get output output cat output/* # 或 直接查看分佈式文件系統上的輸出文件 hdfs dfs -cat output/*
測試驗證完成, 停止守護進程
sbin/stop-dfs.sh
單節點上的YARN
可以通過設置一些參數並運行ResourceManager守護程序和NodeManager守護程序,以僞分佈式模式在YARN上運行MapReduce作業。
配置參數如下:
修改mapred-site.xml文件# vi etc/hadoop/mapred-site.xml <configuration> <property> <name> mapreduce.framework.name </name> <value> yarn </value> </property> </configuration>
修改yarn-site.xml文件
#vi etc/hadoop/ <configuration> <property> <name> yarn.nodemanager.aux-services </name> <value> mapreduce_shuffle </value> </ property> </configuration>
啓動ResourceManager守護程序和NodeManager守護程序:
sbin/start-yarn.sh
運行MapReduce作業
完成後,停止守護進程
總結分析
- ConnectionRefused Exception錯誤
官方解答
開關防火牆及端口命令
Check that there isn’t an entry for your hostname mapped to 127.0.0.1 or 127.0.1.1 in /etc/hosts (Ubuntu is notorious for this) - 重裝方法
直接刪除Hadoop文件 - 足以hosts文件配置
[參考與拓展]
HBase參考指南
Hadoop、Hbase、Hive版本兼容性
Hadoop官方文檔
Hadoop單機部署
Hadoop環境搭建
[HBase安裝]
[小貼士
jps , chmod , hosts文件
chmod
hosts原理及作用
環境變量的作用?