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的一个伪分布式环境就搭建好了。接下来我们要往上面放应用了。

发布了78 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/yao09605/article/details/103916116
今日推荐