hadoop僞分佈式安裝記錄

引語:

    最近想接觸一些大數據相關的技術,因此有了這篇文章,其實就是記錄一下本身學習hadoop的過程,若是文章中有啥寫的不對的地方,還望指正(有java開發經驗,可是是大數據小白一隻,各位大神輕噴.)
我先是在網上搜索了一波大數據應該要學些什麼技術,基本上不約而同的都是指向了hadoop.
    摘自維基百科:Apache Hadoop連接地址.看完維基百科描述,咱們大概知道了hadoop是一個分佈式的大數據框架,在深刻一些咱們會知道
它是由不少個組件組成的(好比核心的HDFS,Hadoop Distributed File System,Mapreduce框架,還有不少Hive,HBase等等)。因此hadoop其實也是代指hadoop的一套的生態系統。光說不練假把式,好的咱們來看看怎麼安裝,搭建hadoop的環境呢?html

安裝步驟:

    這裏其實有個前提,默認各位大佬的機器上已經安裝好了linux和java環境。若是沒有能夠動動您靈活的手指,在搜索欄敲下「如何安裝linux/java環境」,不開玩笑了,這個比較常見。
hadoop安裝官網上說是有三種方式:
1.單機模式安裝
2.僞分佈式安裝
3.全分佈式安裝(真.分佈式)
我這裏使用的是僞分佈式,有人要問爲啥不用真.分佈式呢?
第一是初學者學會了僞分佈式,基本上全分佈式也是不會有大問題的,只是機器多了;
第二是由於貧窮,

在雲服務器上搭建的,全分佈式要搞好幾臺。2333~ 開個玩笑啦,主要是懶~java

1.下載hadoop

去官網下載就能夠了,官網連接

點擊source,而後在跳轉的頁面中下載hadoop-3.1.2-src.tar.gz。node

tar -zxvf hadoop-3.1.2-src.tar.gz

而後進入到 hadoop-3.1.2中,目錄是這樣

bin和sbin是可執行腳本的目錄,etc是放hadoop配置文件的目錄。linux

2.配置hadoop

(1).首先先配置hadoop的環境文件hadoop-env.sh,進入到hadoop-3.1.2/etc/hadoop目錄下,編輯 hadoop-env.sh文件
而後搜索JAVA_HOME,會發現兩處,可是能夠經過閱讀英文註釋得知是哪個apache

# Technically, the only required environment variable is JAVA_HOME.
# All others are optional.  However, the defaults are probably not
# preferred.  Many sites configure these options outside of Hadoop,
# such as in /etc/profile.d

# The java implementation to use. By default, this environment
# variable is REQUIRED on ALL platforms except OS X!

在這下面添加export JAVA_HOME=「機器上的jdk地址」vim

在環境變量中添加hadoop的配置,vim /etc/profile,添加hadoop_home服務器

export HADOOP_HOME=/home/hadoop/hadoop-3.1.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

(2).在配置hadoop的核心配置文件core-site.xml,這裏配置的是hdfs的NameNode地址和數據存儲目錄路徑
在<configuration>裏面添加:框架

這個是hdfs的地址
<property>
       <name>fs.defaultFS</name>
       <value>hdfs://wxwwt-hadoop:9000</value>
   </property>
hadoop存儲數據路徑
<property>
     <name>hadoop.tmp.dir</name>
     <value>/home/hadoop/hadoop-3.1.2/data</value>
</property>

wxwwt-hadoop這個是本身隨便取得名字,記得在etc/hosts中配置一下,映射到本地127.0.0.1ssh

(3).配置mapred-site.xml,從名字上就能看出來是和MapReduce相關的。指定一下調度系統的配置分佈式

<property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
</property>

(4).配置yarn-site.xml

<configuration>
指定ResouceManager的地址
    <property>
       <name>yarn.resourcemanager.hostname</name>
       <value>wxwwt-hadoop</value>
    </property>
指定MapReduce的方式
    <property>
       <name>yarn.nodemanager.aux-services</name>
       <value>mapreduce_shuffle</value>
    </property>
</configuration>

到這裏已經上hadoop的配置文件是弄完了

3.格式化文件系統

hdfs namenode -format

若是能看到相似下面的信息,說明格式化成功了

Storage directory /home/hadoop/hadoop-3.1.2/data/dfs/name has been successfully formatted.

4.運行hadoop,start-dfs.sh

不過在運行以前,先得說一句若是以前一直使用的root用戶的話,這裏運行會報錯。由於會由於是root用戶,hadoop不建議使用root用戶。會報出

ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.

相似的錯誤。
(1).若是想用root用戶繼續執行的話,得在啓動腳本start-dfs.sh中添加

HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

而且要設置root的免密登陸。
步驟:

$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys

(2).若是要使用其餘用戶的話,先得將hadoop的目錄權限給這個用戶添加下
好比:我要使用wxwwt用戶來操做

useradd wxwwt
passwd wxwwt
chown -R wxwwt:wxwwt /home/hadoop-3.1.2
su wxwwt

設置用用戶名密碼,將hadoop目錄權限給wxwwt,而後切換用戶。再設置免密登陸

ssh-keygen -t rsa
ssh-copy-id localhost

而後在運行hadoop。

start-hdfs.sh執行完,看下jps若是出現了NameNode,SecondaryNameNode,DataNode的進程就是HDFS啓動成功了

5.啓動yarn,start-yarn.sh。

啓動完後再看下jps,如圖出現了ResourceManager,NodeManager就大功告成。

總結:

1.hadoop的一些簡單概念,它也是一個大的生態系統;
2.hadoop安裝分三種模式,單機,僞分佈式,全分佈式;文中介紹的是僞分佈式,就是在一臺機器上弄的;
3.安裝中主要就是按教程添加配置,可是其中仍是有坑的,記住啓動的時候root的坑,和免密登陸。

參考資料:

1.https://hadoop.apache.org/doc...(官網僞分佈式教程)
2.https://blog.csdn.net/solarac...(免密登陸教程)
3.https://blog.csdn.net/whq1278...
4.https://www.ibm.com/developer...(yarn介紹)

相關文章
相關標籤/搜索