Ubuntu16.04下的Hadoop2.7.3伪分布式环境搭建

本博文是基于虚拟机(VMware)下安装的Linux(这里选择Ubuntu16.04)作为系统环境,然后在Ubuntu上安装Hadoop伪分布式。

前提条件:

1.安装好虚拟机VMware

2.VMware上安装好Ubuntu(服务器版参考:安装Ubuntu16.04(服务器版)   桌面版参考:安装Ubuntu16.04(桌面版)

 

安装步骤:

以下安装均在普通用户(即:非root用户)下进行,例如:用户名为hadoop的普通用户

1. 准备工作

1.1安装SSH

$ sudo apt-get install openssh-server

  重启SSH服务

$ sudo /etc/init.d/ssh restart

1.2 映射ip与主机名

修改主机名称为node1

$ sudo nano /etc/hostname

将原有内容删除,添加如下内容,修改成新的主机名,例如:node1 ,

node1

保存退出。

重启Ubuntu,让新的主机名称生效

$ sudo reboot

映射ip与主机名

$ sudo nano /etc/hosts

把第二行127.0.1.1换成Ubuntu的IP地址,例如:

192.168.1.128  node1

 

 

2. 安装JDK

Hadoop是运行在jdk之上的软件,所以要先安装JDK

安装步骤参考:Ubuntu16.04下安装JDK1.8

 

3. 安装配置Hadoop

3.1 下载hadoop2.7.3的安装包

下载地址:http://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/

3.2 解压安装包 

 将下载的hadoop-2.7.3.tar.gz文件通过WinSCP等工具上传到Ubuntu的~/soft目录下中,注意:WinSCP需要先安装,安装方法自行百度,上传成功后ls命令查看有hadoop-2.7.3.tar.gz

$ cd ~/soft   #注意:soft目录如果不存在,需要先用mkdir ~/soft命令创建
$ ls
hadoop-2.7.3.tar.gz

解压安装包

$ tar -zxvf hadoop-2.7.3.tar.gz

 解压后ls查看发现多了一个目录hadoop2.7.3

$ ls
hadoop-2.7.3.tar.gz  hadoop-2.7.3 

创建软链接,方便使用

$ ln -s hadoop-2.7.3 hadoop

 

3.3 配置Linux环境变量

$ nano ~/.bashrc

在文件末尾添加

export HADOOP_HOME=~/soft/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

 让环境变量立即生效

$ source ~/.bashrc

 

3.4 设置免密码登录

Hadoop集群中各类节点的机器要进行通信,例如NameNode要与DataNode进行通信,如果每次都需要输入密码,非常繁琐,且不现实,所以需要设置免密登录。这里使用SSH技术来实现免密登录。

3.4.1 生成秘钥对

$ ssh-keygen -t rsa

连续敲击三次回车键后的输出内容
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:+RqoRjhFaKq93po0BJ7nc10iMPNWLwF4PEV7+zhgDrg hadoop@node1
The key's randomart image is:
+---[RSA 2048]----+
|   .o.oo         |
|  o..+. .        |
|.o =. .+ .       |
|o.. B . +..      |
|.+.= = =S+       |
|..* + *.=.o      |
|  oE ..o.o..     |
| ..++.   o.      |
| .+oo   .        |
+----[SHA256]-----+

运行以上命令后,连续敲击三次回车键,将会在~/.ssh中生成公钥(id_rsa.pub)和私钥(id_rsa)

$ ls ~/.ssh
id_rsa  id_rsa.pub

 3.4.2 追加公钥

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

3.4.3 验证免密登录

1.通过localhost验证
$ ssh localhost
$ exit

2.通过ip地址验证
$ ssh ip地址      #例如:$ ssh 192.168.1.128
$ exit

3.通过主机名称验证
$ ssh 主机名称    #例如:$ ssh node1
$ exit

 注意:

a. 建议在~目录以外的目录(例如 ~/soft)执行ssh验证,执行前后路径的变化,执行前的路径为~/soft,执行后路径为~

hadoop@node1:~/soft$ ssh localhost
Welcome to Ubuntu 16.04.5 LTS (GNU/Linux 4.4.0-131-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

146 packages can be updated.
81 updates are security updates.

New release '18.04.2 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Sun Mar 24 20:36:36 2019 from 192.168.21.1
hadoop@node1:~$

b. 第一次执行ssh时需要输入密码注册knows_hosts,之后再次执行ssh命令时就不再需要密码了

c. 通过exit命令退出登录,返回免密登录前的位置

 

4. 配置成Hadoop伪分布式

Hadoop配置文件的路径在${HADOOP_HOME}/etc/hadoop目录下,总共需要配置6个文件,分别是: hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、slaves。

首先切换到配置文件所在目录

cd ${HADOOP_HOME}/etc/hadoop

ls查看有哪些配置文件

$ ls
capacity-scheduler.xml      httpfs-env.sh            mapred-env.sh
configuration.xsl           httpfs-log4j.properties  mapred-queues.xml.template
container-executor.cfg      httpfs-signature.secret  mapred-site.xml.template
core-site.xml               httpfs-site.xml          slaves
hadoop-env.cmd              kms-acls.xml             ssl-client.xml.example
hadoop-env.sh               kms-env.sh               ssl-server.xml.example
hadoop-metrics2.properties  kms-log4j.properties     yarn-env.cmd
hadoop-metrics.properties   kms-site.xml             yarn-env.sh
hadoop-policy.xml           log4j.properties         yarn-site.xml
hdfs-site.xml               mapred-env.cmd

 4.1 配置hadoop-env.sh

$ nano hadoop-env.sh

找到含有export JAVA_HOME=${JAVA_HOME}一行,将等号后面的内容删除,换成JAVA_HOME的绝对路径,可用命令

$ echo $JAVA_HOME 查看JAVA_HOME的绝对路径

export JAVA_HOME=/home/hadoop/soft/jdk

4.2 配置core-site.xml

$ nano core-site.xml

 在<configuration>与</configuration>之间添加配置内容

添加的配置如下:

	<property>
		<name>fs.defaultFS</name>
		<value>hdfs://node1:8020</value>
        <!-- 以上主机名node1要按实际情况修改 -->
	</property>
	<property>
		<name>hadoop.tmp.dir</name>
 		<value>/home/hadoop/soft/hadoop/tmp</value>
 	</property>

配置截图如下: 

 

4.3 配置hdfs-site.xml

$ nano hdfs-site.xml

同样在<configuration>与</configuration>之间添加配置内容,配置内容如下:

        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>

伪分布式只有一台机器,所以副本数设置为1 

4.4 配置mapred-site.xml

原来没有mapred-site.xml文件,由mapred-site.xml.template复制出mapred-site.xml

$ cp mapred-site.xml.template mapred-site.xml

配置 mapred-site.xml

$ nano mapred-site.xml

 同样在<configuration>与</configuration>之间添加配置内容,配置内容如下:

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

以上设置了mapreduce运行在yarn框架之上。

 

4.5 配置yarn-site.xml

$ nano yarn-site.xml

 同样在<configuration>与</configuration>之间添加配置内容,配置内容如下:

    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>node1</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

注意:node1为主机名,注意按实际修改。

配置截图如下: 

 

4.6 配置slaves

nano slaves

将localhost修改为主机名,例如: node1

node1

 

5. 格式化Hadoop文件系统

$ hdfs namenode -format

执行以上命令后,输出若看到“Exiting with status 0”为格式化成功,否者可能哪个步骤出错,请再检查前面的设置。

注意:格式化只需要进行一次,以后启动hadoop前不需要再次格式化。

 

6. 启动Hadoop

启动HDFS

$ start-dfs.sh

jps查看进程,能看到除了jps之外有三个进程出现,分别是:NameNode、DataNode、SecondaryNameNode

$ jps
20096 DataNode
19956 NameNode
20379 Jps
20270 SecondaryNameNode

如果少了某个进程,解决思路是:进入Hadoop的logs目录下查看相应的log,

$ cd $HADOOP_HOME/logs
$ ls
hadoop-hadoop-datanode-node1.log  hadoop-hadoop-secondarynamenode-node1.log
hadoop-hadoop-datanode-node1.out  hadoop-hadoop-secondarynamenode-node1.out
hadoop-hadoop-namenode-node1.log  SecurityAuth-hadoop.audit
hadoop-hadoop-namenode-node1.out

例如:没有NameNode进程,需要用cat命令 查看namenode相关的.log的文件,即:hadoop-hadoop-namenode-node1.log,

$ cat hadoop-hadoop-namenode-node1.log

执行以上命令后,找到error、exception、warn等包含错误的关键信息,得到错误原因,进而对症解决。 


启动YARN

$ start-yarn.sh

jps查看进程,多出有2个进程出现,分别是:ResourceManager、NodeManager

$ jps
20096 DataNode
20723 Jps
19956 NameNode
20456 ResourceManager
20570 NodeManager
20270 SecondaryNameNode

如果少了其中任意一个进程,解决思路也是查看相应的log,找到问题原因,进而解决。

 

7. 查看Hadoop的Web监控页面

7.1访问HDFS Web监控页面

打开浏览器,在地址栏输入:

192.168.1.128:50070
或者
node1:50070  (需要先在windows映射Ubuntu ip与主机名)

Windows映射Ubuntu ip和主机名方法:

进入windows系统C:\Windows\System32\drivers\etc目录,修改hosts文件,添加如下映射语句:

192.168.1.128  node1

 

 浏览器显示截图如下:

7.2 访问YARN的Web监控页面

打开浏览器,在地址栏输入:

192.168.1.128:8088
或者
node1:8088

 

完成! enjoy it!

 

  • 27
    点赞
  • 69
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值