Ubuntu配置Hadoop——(二)安裝配置Hadoop

#修訂記錄:20200112 填yarn-site.xml和mapred-site.xml的坑,解決spark無法在Hadoop上運行的問題,以及啓動jobHistoryServer的配置
上一篇文章已經做好了環境準備。終於可以開始安裝HADOOP了。
注意!這裏我們要切換回root用戶了
第一步,下載
在這個網址找到你想安裝的版本:http://www.apache.org/dyn/closer.cgi/hadoop/common
可以選擇它推薦的下載鏡像,然後選擇好下載地址。
在這裏插入圖片描述這裏我選擇的是2.10.0版本:

$ curl -O https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.10.0/hadoop-2.10.0.tar.gz

選最大的那個,大概300多M

第二步,解壓
Hadoop作爲一種服務,我們把它放到 /srv 目錄下面是比較合適的,命令如下:

# 解壓
$ tar -xzf hadoop-2.10.0.tar.gz
# 轉移
$ sudo mv hadoop-2.10.0 /srv/
# 把owner變成hadoop
$ sudo chown -R hadoop:hadoop /srv/hadoop-2.10.0
# 設置權限
$ sudo chmod g+w -R /srv/hadoop-2.10.0
# 創建一個symlink
$ sudo ln -s /srv/hadoop-2.10.0 /srv/hadoop

第三步,配置環境變量
注意這裏我們配置的是hadoop用戶的環境變量,root用戶可以給別的用戶配環境變量,所以可以不切換用戶,當然也可以切換

$ sudo vim /home/hadoop/.bashrc

將下面內容添加到hadoop用戶的環境變量

export HADOOP_HOME=/srv/hadoop
export PATH=$PATH:$HADOOP_HOME/bin

# 設置JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

然後設置student用戶的環境變量,可以新建一個文件.bash_aliases

$ sudo vim /home/student/.bash_aliases

將以下內容添加到這個文件當中

export HADOOP_HOME=/srv/hadoop
export HADOOP_STREAMING=$HADOOP_HOME/share/hadoop/tools/lib/hadoop-streaming-2.10.0.jar
export PATH=$PATH:$HADOOP_HOME/bin

# 設置JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

# 有用的別名
alias ..="cd .."
alias ...="cd ../.."
alias hfs="hadoop fs"
alias hls="hsf -ls"

使配置生效:重啓也可以

source /home/student/.bash_aliases
source /home/hadoop/.bashrc

檢查是否配置成功,運行命令:
沒有出現錯誤就可以了

$ hadoop version

第四步hadoop配置

  1. 編輯hadoop-env.sh
$ sudo vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh

修改使用Java實現

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
  1. 編輯core-site.xml
$ sudo vim $HADOOP_HOME/etc/hadoop/core-site.xml

<configuration></configuration>替換成:

<configuration>
	<property>
		<name>fs.default.name</name>
		<value>hdfs://localhost:9000/</value>
	</property>
	<property>
		<name>hadoop.tmp.dir</name>
		<value>/var/app/hadoop/data</value>
	</property>
</configuration>`
  1. 編輯mapred-site.xml
$ sudo cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml
$ sudo vim $HADOOP_HOME/etc/hadoop/mapred-site.xml

<configuration></configuration>替換成:

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        #add20200112 for historyserver & spark mapred
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>localhost:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>localhost:19888</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.done-dir</name>
                <value>${yarn.app.mapreduce.am.staging-dir}/history/done</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.intermediate-done-dir</name>
                <value>${yarn.app.mapreduce.am.staging-dir}/history/done_intermediate</value>
        </property>
        <property>
                <name>yarn.app.mapreduce.am.staging-dir</name>
                <value>/tmp/hadoop-yarn/staging</value>
        </property>
        <property>
                <name>mapreduce.map.memory.mb</name>
                <value>1500</value>
                <description>每個Map任務的物理內存限制</description>
        </property>

        <property>
                <name>mapreduce.reduce.memory.mb</name>
                <value>3000</value>
                <description>每個Reduce任務的物理內存限制</description>
        </property>

        <property>
                <name>mapreduce.map.java.opts</name>
                <value>-Xmx1200m</value>
        </property>

        <property>
                <name>mapreduce.reduce.java.opts</name>
                <value>-Xmx2600m</value>
        </property>
</configuration>



  1. 編輯hdfs-site.xml
$ sudo vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml

<configuration></configuration>替換成:

<configuration>
	<property>
		<name>dfs.replication</name>
		<value>1</value>
	</property>
</configuration>`
  1. 編輯yarn-site.xml
$ sudo vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml

<configuration></configuration>替換成:

<configuration>
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
	<property>
		<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
		<value>org.apache.hadoop.mapred.ShuffleHandler</value>
	</property>
	<property>
		<name>yarn.resourcemanager.resource-tracker.address</name>
		<value>localhost:8030</value>
	</property>
	<property>
		<name>yarn.resourcemanager.scheduler.address</name>
		<value>localhost:8030</value>
	</property>
	<property>
		<name>yarn.resourcemanager.address</name>
		<value>localhost:8050</value>
	</property>
	<property>
		<name>yarn.resourcemanager.address</name>
		<value>localhost:8050</value>
	</property>
	<property>
		<name>yarn.resourcemanager.address</name>
		<value>localhost:8050</value>
	</property>
	# add 20200112
	<property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>22528</value>
        <discription>每個節點可用內存,單位MB</discription>
    </property>
 
    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>1500</value>
        <discription>單個任務可申請最少內存,默認1024MB</discription>
    </property>
 
    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>16384</value>
        <discription>單個任務可申請最大內存,默認8192MB</discription>
    </property>
</configuration>`

目前爲止,Hadoop的爲分佈式環境配置已經完成。

第五步,格式化NameNode
給NameNode保存文件的地方新建文件夾,然後初始化:

$ sudo mkdir -p /var/app/hadoop/data
$ sudo chown hadoop:hadoop -R /var/app/hadoop
$ sudo su hadoop
$ hadoop namenode -format

沒有報錯就可以了

第六步,啓動Hadoop

$ $HADOOP_HOME/sbin/start-dfs.sh
$ $HADOOP_HOME/sbin/start-yarn.sh

這時兩個守護進程都啓動了。如果遇到SSH問題就輸入y
使用jps命令查看正在運行的進程

$ jps

你此時看到的進程列表應該有:
(這裏如果看不到JPS,就按照提示再裝一個高版本的java,但是之前的配置文件都不要改)

Jps
ResourceManager
SecondaryNameNode
NodeManager
NameNode

Hadoop 集羣管理頁面:http://localhost:8088
另一個管理頁面 :http://localhost:50070

最後在HDFS上爲student賬戶準備一個空間:

$ hadoop fs -mkdir -p /user/student
$ hadoop fs -chown student:student /user/student

到這裏Hadoop的一個僞分佈式環境就搭建好了。接下來我們要往上面放應用了。

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