【入門Hadoop(一)】Hadoop在Linux中的單節點(sign-node)環境搭建

## 對於入門學習Hadoop來說,佈置單節點Hadoop即可,無需佈置Hadoop集羣,避免因配置問題而產生不必要的麻煩

## 我用的是Win10系統並用xshell遠程連接CentOS7,用戶名是hadoop,虛擬機是VMware14 pro,Hadoop選擇CDH(cloudera)的發行版而非Apache Hadoop,如果用Apache Hadoop可能會和Hive產生衝突,所以下面文章都是以上述配置爲例,各個Linux,Hadoop發行版都大同小異,所以這些配置方法其它選用發行版的讀者也能參考這篇文章。

一. 遠程連接虛擬機中的Linux

  • 打開服務器/Linxu終端查看IP地址

本機需要ssh連接遠程的Linux服務器進行遠程操作時,首先要在Linux中查出虛擬機所分配的IP地址,命令:ifconfig
在這裏插入圖片描述

  • 選擇合適的shell軟件,用於連接Linux服務器

    Windowsxshell,secureCRT,PuTTY
    Mac:可以用Mac自帶的shell,Mac的操作系統是基於Unix的,所以跟Linux命令也比較相像,可在Mac電腦的Launchpad的其他中找到,也可按下command + 空格打開聚焦搜索後輸入終端

xshell 下載:https://xshell.en.softonic.com/?ex=DSK-1262.5

  • 打開xshell後,輸入命令

ssh [用戶名稱]@[ip地址]

連接成功後

  • 爲了今後方便查找安裝相關文件,創建所需要的目錄(可選擇自己喜歡的方式存放)

  $ mkdir software  	#存放軟件安裝包 		
  $ mkdir app      		#存放安裝目錄
  $ mkdir data      	#存放數據 		
  $ mkdir lib      		#存放開發過的作業jar存放的目錄
  $ mkdir shell     	#存放相關的腳本 		
  $ mkdir maven_resp	#maven依賴包存放的目錄

二. Hadoop環境搭建

  • 下載Hadoop

使用的Hadoop相關版本:CDH

CDH相關軟件包下載地址:http://archive.cloudera.com/cdh5/cdh/5/

Hadoop使用版本:hadoop-2.6.0-cdh5.15.1

Hadoop下載到Linux服務器:wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.15.1.tar.gz

Hive使用版本:hive-1.1.0-cdh5.15.1

可以下載到Windows本地再通過本地上傳到服務器也可以直接在Linux上通過wget命令下載若是下載到Windows本地,則需要在CentOS中安裝Irzsz。

相關教程可以參考: https://blog.csdn.net/weixin_40910753/article/details/79282557

三. 安裝Java環境

因爲Hadoop的源碼是Java編寫的,所以運行Hadoop之前必須配置好Java環境

jdk1.8.0_192.tar.gz下載:https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html

  • 記得本博客軟件都將下載到~/software/目錄下,並解壓至 ~/app/目錄下
sudo tar -zxvf jdk-8u192-linux-x64.tar.gz -C ~/app/
  • 把jdk配置系統環境變量中: sudo vi ~/.bash_profile
export JAVA_HOME=/home/hadoop/app/jdk1.8.0_192
export PATH=$JAVA_HOME/bin:$PATH

在這裏插入圖片描述
快速保存並退出:ESC -> shift + ZZ

bash_profile 如果不存在直接導入配置變量即可

  • 使得配置修改生效:source .bash_profile
  • 驗證:
java -version
javac -version
echo $JAVA_HOME

在這裏插入圖片描述

四. 避免ssh連接時多次輸入密碼,需要將ssh設置爲無密碼登陸

ssh-keygen -t rsa 輸入均爲空,只按回車就行

將公鑰放入其它連接本地時訪問的文件authorized_keys
cat id_rsa.pub >> authorized_keys

chmod 600 authorized_keys 

五. Hadoop(HDFS)安裝

除了下載,解壓外,還需要把HADOOP_HOME環境變量導入bash_profile文件中(見上圖)

hadoop單節點搭建需要配置的文件有:

配置文件 配置內容
hadoop-env.sh export JAVA_HOME=/home/hadoop/app/jdk1.8.0_192
core-site.xml <property><name>fs.defaultFS</name><value>hdfs://hadoop000:8020</value></property>端口是8020
hdfs-site.xml <property><name>dfs.replication</name><value>1</value></property>默認副本調爲1

hadoop配置文件基本都在 ${HADOOP_HOME}/etc/中

啓動HDFS

  • 第一次啓動時一定要格式化文件系統,且不要重複執行: hdfs namenode -format
    格式化文件系統會刪除默認的臨時文件夾中的數據,我們把他放在其它目錄下,例如:~/app/中創建一個tmp文件,並且還得把hdfs-site.xml文件再次配置:
<property>
	<name>hadoop.tmp.dir</name>
	<value>/home/hadoop/app/tmp</value>
</property>
  • 啓動集羣:$HADOOP_HOME/sbin/start-dfs.sh
    在這裏插入圖片描述
    圖中的警告可以暫時不管,當啓動成功後不會報錯
    如果啓動失敗,需要到${HADOOP_HOME}/logs/中查找日誌找問題,但是需要注意的是日誌並不在圖中的.out文件,而是.log文件
    在這裏插入圖片描述
    啓動成功後至少有3項:
    在這裏插入圖片描述
    SecondaryNameNode 在Hadoop2.x中好像可以不用啓動
    我們可以驗證一下:打開遊覽器,輸入http://192.168.132.128:50070,回車…
    在這裏插入圖片描述
    如果是無法訪問,那麼最有可能的原因時hadoop的防火牆沒有關,那麼我們不妨來查看一下:
sudo firewall-cmd --state

在這裏插入圖片描述
**running !**防火牆開着那我們把他關掉(暫時的,重啓後還會打開)

sudo systemctl stop firewalld.service

在這裏插入圖片描述
再次輸入http://192.168.132.128:50070 出現節點信息說明成功啓動
在這裏插入圖片描述

探索hdfs啓動文件

在這裏插入圖片描述
此時,當我打開查看啓動文件start-dfs-sh文件時發現:每個啓動項都有配置的變量,不變的時/sbin/hadoop-daemons.sh文件,所以不難想象如果是單獨使用這個啓動,是不是就只能啓動單獨的節點。
在這裏插入圖片描述
運行後確實如此:
在這裏插入圖片描述
可以說:start-dfs.sh =

  hadoop-daemons.sh start namenode + hadoop-daemons.sh start datanode + hadoop-daemons.sh start secondarynamenode

關閉hdfs也是相同的

  • hadoop軟件包常見目錄說明

目錄 說明
bin hadoop客戶端名單
etc/hadoop hadoop相關的配置文件存放目錄
sbin 啓動hadoop相關進程的腳本
share 常用例子

到這Hadoop(HDFS)的單節點爲分佈式搭建就完成了,後面會更新MapReduce,YARN等配置方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章