Hadoop单机伪分布部署


有读者反馈:初学Hadoop,不太想用Ambari,还是想手动的搭建Hadoop的环境

今天就带来Hadoop单机伪分布部署

文章分为两部分

第一部分为在VMare下如何新建虚拟机,如何使用软件

第二部分为在Centos6.5系统下Hadoop单机伪分布式的搭建

本文图多!!流量不够的同学慎点!


工欲善其事必先利其器,先把我们的环境和软件准备好!

需要准备:

1.VMware 12虚拟机软件

2.Centos6.5 64位iso安装盘

3.Jdk1.8,Hadoop2.7.3

4.X-Shell5,Winscp

VV这里有整理好的软件包,扫描下方二维码,关注后,输入hadoop即可获取软件整合包下载地址!


第一阶段:VMware下新建安装虚拟机

 

用户,密码,自定义

编辑虚拟机名称,选择安装位置

 找到下载好的ISO镜像文件目录

下一步,指定磁盘容量

配置硬件,根据实际情况设置

点击完成,等待安装完毕即可

注意:在刚刚入门Linux时,推荐使用图形化界面,好上手(不推荐使用鼠标操作系统),但实际工作环境中图形化交互并不多,更多的是命令行,所以需要大家掌握基本Linux Shell的操作

Tips发现点进虚拟机没法操作windows系统,按Ctl + Alt键即可跳出虚拟机操作界面

进入欢迎界面

使用root用户登录,选择下面Other

输入用户名和密码

在下方,我们看见了有一个小窗口,English(系统语言选项),为了方便查看,VV选择了中文(推荐使用英文)

登陆后,发现弹窗,使用root超级用户权限的提示,现在关闭即可


进入桌面

首先,修改时间和时区

配置网络:

先配置VM虚拟机网络

如果电脑主机能够上网,并希望虚拟机也能够上网,选择桥接模式,其余情况,选择NAT模式即可,这里不对网络有过多讲解

VV这里选择了桥接模式,下面要配置Linux系统的网络,进入系统,在右上角找到一个小电脑图标,右键点击,弹出菜单,点击编辑连接

编辑

选择IPv4设置,方法选择手动,点击添加

VV根据主机网络情况,做了如下配置,需要自定义修改(如果不知道自己的网段,在Windows中网络和共享中心查看哦!)

点击应用,关闭

在桌面空白处,单击鼠标右键,弹出菜单,点击在终端中打开

打开了命令行页面

现在,我们就要使用命令来操作我们的Linux系统了

刚才配置好网络,需要重启一下网络

在命令行输入如下语句

service network restart

这时候发现右上角的小电脑开始转动,就是在重启网络啦,等待一会,全部OK,说明网络设置成功


到此,虚拟机基础配置已经完成,下面使用远程登录软件X-shell

新建会话

接受并保存

输入用户名

输入密码

确定

登录成功

上面菜单栏可以更换界面主题,请自定义修改


下面要开始搭建单点Hadoop

修改主机名

先查看主机名:

[root@localhost ~]# hostname
localhost.localdomain

修改主机名有两种办法

1.临时修改(当时生效,重启无效)

2.非临时修改(重启生效)

我们这里两种办法都使用

[root@localhost ~]# hostname louisvv.com
[root@localhost ~]# hostname
louisvv.com

修改主机名文件/etc/sysconfig/network

[root@localhost ~]# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=louisvv.com #修改此项

修改主机名和IP的映射关系 /etc/hosts

注意:如果是使用服务器或是使用的云主机(如华为云主机、阿里云主机等) /etc/hosts里面要配置的是内网IP地址和主机名的映射关系 

[root@localhost ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.210 louisvv.com

测试连通性

[root@localhost ~]# ping louisvv.com
PING louisvv.com (192.168.1.210) 56(84) bytes of data.
64 bytes from louisvv.com (192.168.1.210): icmp_seq=1 ttl=64 time=0.024 ms
64 bytes from louisvv.com (192.168.1.210): icmp_seq=2 ttl=64 time=0.056 ms
64 bytes from louisvv.com (192.168.1.210): icmp_seq=3 ttl=64 time=0.046 ms

关闭防火墙

查看防火墙状态,以下状况就是开启的

[root@localhost ~]# service iptables status
Table: filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
5 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
 
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
1 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
 
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination

关闭防火墙

[root@localhost ~]# service iptables stop
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]

关闭防火墙开机自启

[root@localhost ~]# chkconfig iptables off

配置SSH免登陆,多次回车

[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
2e:75:72:ff:54:65:51:e7:e6:cb:42:e9:45:3e:ac:7f root@louisvv.com
The key's randomart image is:
+--[ RSA 2048]----+
| .+|
| .o|
| .=|
| =+.|
| S o o =o|
| o + .o +.o|
| . . .+.o |
| . oo E|
| ...|
+-----------------+

[root@localhost ~]# cd ~/.ssh/

若没有该目录,请先执行一次ssh localhost

[root@localhost .ssh]# ls
id_rsa id_rsa.pub
加入授权
[root@localhost .ssh]# cat id_dsa.pub >> authorized_keys
[root@localhost .ssh]# ls
authorized_keys id_rsa id_rsa.pub

修改文件权限,如果不改,无法通过

[root@localhost .ssh]# chmod 600 ./authorized_keys
[root@localhost .ssh]# ll
total 8
-rw-------. 1 root root 0 Nov 22 15:52 authorized_keys
-rw-------. 1 root root 1675 Nov 22 15:47 id_rsa
-rw-r--r--. 1 root root 398 Nov 22 15:47 id_rsa.pub

SSH测试,此时需要密码

[root@localhost .ssh]# ssh localhost
The authenticity of host 'localhost (::1)' can't be established.
RSA key fingerprint is a8:ff:da:27:2e:1c:80:e6:1e:7c:c2:c3:27:88:25:1d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
root@localhost's password:
Last login: Wed Nov 22 15:20:47 2017 from 192.168.1.74

拷贝id到本机

[root@louisvv ~]# ssh-copy-id localhost
root@localhost's password:
Now try logging into the machine, with "ssh 'localhost'", and check in:
 
.ssh/authorized_keys
 
to make sure we haven't added extra keys that you weren't expecting.

这是SSH登陆就不需要验证了

[root@louisvv ~]# ssh localhost
Last login: Wed Nov 22 15:55:16 2017 from localhost

安装Java,需要使用Winscp软件远程拷贝到虚拟机中

进入界面后,选择最上面剪头,找到 /opt目录,上传JavaHadoop的压缩包到该目录

切换回X-shell

[root@louisvv opt]# ls
hadoop-2.7.3.tar.gz jdk-8u91-linux-x64.tar.gz rh

解压Java

[root@louisvv opt]# tar -zxf jdk-8u91-linux-x64.tar.gz
[root@louisvv opt]# ls
hadoop-2.7.3.tar.gz jdk1.8.0_91 jdk-8u91-linux-x64.tar.gz rh

配置全局环境变量

[root@louisvv opt]# vim /etc/profile
#java env
export JAVA_HOME=/opt/jdk1.8.0_91
export JRE_HOME=/opt/jdk1.8.0_91/jre
export CLASSPATH=$JAVA_HOME/lib
export PATH=:$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

更新配置文件

查看Java是否配置成功,如下所示,即已配置成功

[root@louisvv opt]# java -version
java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

下面就要开始安装Hadoop

解压hadoop压缩包

[root@louisvv opt]# tar -zxf hadoop-2.7.3.tar.gz
[root@louisvv opt]# ls
hadoop-2.7.3 hadoop-2.7.3.tar.gz jdk1.8.0_91 jdk-8u91-linux-x64.tar.gz rh

进入hadoop-2.7.3目录

[root@louisvv opt]# cd hadoop-2.7.3

查看该目录结构

[root@louisvv hadoop-2.7.3]# ll
total 132
drwxr-xr-x. 2 root root 4096 Aug 18 2016 bin
drwxr-xr-x. 3 root root 4096 Aug 18 2016 etc
drwxr-xr-x. 2 root root 4096 Aug 18 2016 include
drwxr-xr-x. 3 root root 4096 Aug 18 2016 lib
drwxr-xr-x. 2 root root 4096 Aug 18 2016 libexec
-rw-r--r--. 1 root root 84854 Aug 18 2016 LICENSE.txt
-rw-r--r--. 1 root root 14978 Aug 18 2016 NOTICE.txt
-rw-r--r--. 1 root root 1366 Aug 18 2016 README.txt
drwxr-xr-x. 2 root root 4096 Aug 18 2016 sbin
drwxr-xr-x. 4 root root 4096 Aug 18 2016 share

配置hadoop环境变量

[root@louisvv hadoop-2.7.3]# vim /etc/profile
#hadoop env
export HADOOP_HOME=/opt/hadoop-2.7.3
export PATH=:$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

更新配置文件

[root@louisvv hadoop-2.7.3]# source /etc/profile

修改hadoop配置文件

[root@louisvv hadoop-2.7.3]# cd etc/hadoop/

修改env.sh文件

找到配置Java路径

export JAVA_HOME=${JAVA_HOME}
将上面修改为本机JAVA_HOME地址
export JAVA_HOME=/opt/jdk1.8.0_91

修改core-site.xml,添加如下内容

<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://louisvv.com:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-2.7.3/tmp</value>
</property>
</configuration>

修改hdfs-site.xml,添加如下内容

<configuration>
<property>
<!--设置副本数1,不写默认是3份-->
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>

拷贝mapred-site.xml.template样例配置文件mapred-site.xml,修改mapred-site.xml文件,添加内容如下

[root@louisvv hadoop]# cp mapred-site.xml.template mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

修改yarn-site.xml文件,添加内容如下

<configuration>
<property>
<name>yarn.nodemanager.aux-services </name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

配置文件修改完后,需要对HDFS进行格式化,关键的一步来了!

[root@louisvv hadoop]# hdfs namenode -format

在打印的日志中发现Storage directory
/opt/hadoop-2.7.3/tmp/dfs/name
has been
successfully formatted

恭喜你,格式化成功啦!

开启HDFS

[root@louisvv hadoop]# start-dfs.sh

开启YARN

[root@louisvv hadoop]# start-yarn.sh

开启后,使用jps查看进程,发现都起来了,大功告成!

[root@louisvv hadoop]# jps
37555 DataNode
37972 NodeManager
37461 NameNode
37736 SecondaryNameNode
38009 Jps
37881 ResourceManager

在浏览器中输入 192.168.1.210:50070查看HDFS情况

赶快试试好不好用吧

创建一个文件,内容如下

[root@louisvv ~]# vim test.txt
hello world
hello you
hello me
hello louisvv

将该文件上传到HDFS

[root@louisvv ~]# hadoop fs -put test.txt /

HDFS上查看,发现刚才上传的文件存在哦!

[root@louisvv ~]# hadoop fs -ls /
Found 1 items
-rw-r--r-- 1 root supergroup 45 2017-11-22 16:42 /test.txt

测试一下mapreduce的程序,wordcount

[root@louisvv hadoop-2.7.3]# hadoop jar /opt/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /test.txt /out
17/11/22 16:45:36 INFO mapreduce.Job: map 0% reduce 0%
17/11/22 16:46:18 INFO mapreduce.Job: map 100% reduce 0%
17/11/22 16:46:56 INFO mapreduce.Job: map 100% reduce 100%
17/11/22 16:46:58 INFO mapreduce.Job: Job job_1511339896424_0001 completed successfully

成功了,快去看看吧

现在192.168.1.210:8088 yarn查看刚才执行的任务

hdfs上查看刚才wordcount程序的输出

在网页上看一下


在命令行中查看文件内容:

[root@louisvv hadoop-2.7.3]# hadoop fs -cat /out/part-r-00000
hello 4
louisvv 1
me 1
world 1
you 1

最经典的WordCount我们也搞定了!

好啦!Hadoop单点伪分布式搭建完成啦!

记得点赞和分享哦!

如果觉得本博客对您有帮助,可以赞助作者哦~

赫墨拉

我是一个喜爱大数据的小菜鸡,这里是我分享我的成长和经历的博客

You may also like...

1 Response

  1. 匿名说道:

    666

发表评论

电子邮件地址不会被公开。