CentOS 7部署Hadoop(单机版)


目录

测试环境

Hadoop部署方式介绍

安装CentOS 7

配置Java环境

Hadoop单机版安装

Hadoop环境变量配置

测试


测试环境

Linux系统版本:CentOS 7 64位

Hadoop版本:hadoop-2.7.3

Java版本:jdk-8u181-linux-x64


Hadoop部署方式介绍

Hadoop部署方式分三种:Standalone Mode(单机模式)、Pseudo-Distributed Mode(伪分布式模式)、Fully Distributed Mode(全分布式模式)

单机模式:

单机模式是Hadoop的默认模式。这种模式在一台单机上运行,没有分布式文件系统,而是直接读写本地操作系统的文件系统。当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守地选择了最小配置。在这种默认模式下所有3个XML文件均为空。当配置文件为空时,Hadoop会完全运行在本地。因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程。该模式主要用于开发调试MapReduce程序的应用逻辑。


伪分布模式:

这种模式也是在一台单机上运行,但用不同的Java进程模仿分布式运行中的各类结点伪分布模式在“单节点集群”上运行Hadoop,其中所有的守护进程都运行在同一台机器上。该模式在单机模式之上增加了代码调试功能,允许你检查内存使用情况,HDFS输入输出,以及其他的守护进程。

 

全分布模式:
     Hadoop守护进程运行在一个集群上。

 

部分内容来自:https://blog.csdn.net/bloodlc/article/details/19973009?utm_source=copy


安装CentOS 7

VMware虚拟机安装Linux系统


配置Java环境

Linux系统下安装Java环境


Hadoop单机版安装

本文的代码框解释:#后面的为执行代码,[]内root为登录用户,@后master100表示主机名,~代表当前目录,按下面步骤执行时要注意自己这些信息和我的是不是一样的

1、下载Hadoop2.7.3

hadoop-2.7.3.tar.gz 
https://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/

2、用root账户登录,创建hadoop用户和hadoop用户组,创建用户的时候会自动创建相应的用户组

[root@master100 ~]# useradd hadoop

3、创建完用户之后设置一个用户密码,有些密码太简单会提示无效的密码,提示重新输入时再输一遍就可以强制保存了

[root@master100 ~]# passwd hadoop
更改用户 hadoop 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

4、为hadoop用户添加sudo权限

[root@master100 ~]# vi /etc/sudoers

如下,在root用户下面一行加上hadoop  ALL=(ALL)       ALL,保存并退出(这里需要用wq!强制保存退出)

## Next comes the main part: which users can run what software on
## which machines (the sudoers file can be shared between multiple
## systems).
## Syntax:
##
##      user    MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL
hadoop  ALL=(ALL)       ALL

5、上传第1步下载好的hadoop-2.7.3.tar.gz 包到Linux系统中的/usr/local目录下

sftp:/root> cd /usr/local
sftp:/usr/local> 
Uploading hadoop-2.7.3.tar.gz to remote:/usr/local/hadoop-2.7.3.tar.gz
sftp: sent 204 MB in 9.38 seconds

6、进入/usr/local目录,解压上传的hadoop安装包

[root@master100 ~]# cd /usr/local
[root@master100 local]# tar -zxvf /usr/local/hadoop-2.7.3.tar.gz

7、解压完成后可以看到文件夹hadoop-2.7.3,将文件夹名改为hadoop,如果不在/usr/local目录下,命令使用时请加上文件夹的绝对路径

[root@master100 local]# ll
总用量 556412
drwxr-xr-x. 2 root root         6 4月  11 12:59 bin
drwxr-xr-x. 2 root root         6 4月  11 12:59 etc
drwxr-xr-x. 2 root root         6 4月  11 12:59 games
drwxr-xr-x. 9 root root       149 8月  18 2016 hadoop-2.7.3
-rw-r--r--. 1 root root 214092195 10月  3 11:43 hadoop-2.7.3.tar.gz
drwxr-xr-x. 2 root root         6 4月  11 12:59 include
-rwxr-xr-x. 1 root root 170023183 10月  2 17:28 jdk-8u181-linux-x64.rpm
-rw-r--r--. 1 root root 185646832 10月  2 16:31 jdk-8u181-linux-x64.tar.gz
drwxr-xr-x. 2 root root         6 4月  11 12:59 lib
drwxr-xr-x. 2 root root         6 4月  11 12:59 lib64
drwxr-xr-x. 2 root root         6 4月  11 12:59 libexec
drwxr-xr-x. 2 root root         6 4月  11 12:59 sbin
drwxr-xr-x. 5 root root        49 10月  2 13:00 share
drwxr-xr-x. 2 root root         6 4月  11 12:59 src
[root@master100 local]# mv hadoop-2.7.3 hadoop
[root@master100 local]# ll
总用量 556412
drwxr-xr-x. 2 root root         6 4月  11 12:59 bin
drwxr-xr-x. 2 root root         6 4月  11 12:59 etc
drwxr-xr-x. 2 root root         6 4月  11 12:59 games
drwxr-xr-x. 9 root root       149 8月  18 2016 hadoop
-rw-r--r--. 1 root root 214092195 10月  3 11:43 hadoop-2.7.3.tar.gz
drwxr-xr-x. 2 root root         6 4月  11 12:59 include
-rwxr-xr-x. 1 root root 170023183 10月  2 17:28 jdk-8u181-linux-x64.rpm
-rw-r--r--. 1 root root 185646832 10月  2 16:31 jdk-8u181-linux-x64.tar.gz
drwxr-xr-x. 2 root root         6 4月  11 12:59 lib
drwxr-xr-x. 2 root root         6 4月  11 12:59 lib64
drwxr-xr-x. 2 root root         6 4月  11 12:59 libexec
drwxr-xr-x. 2 root root         6 4月  11 12:59 sbin
drwxr-xr-x. 5 root root        49 10月  2 13:00 share
drwxr-xr-x. 2 root root         6 4月  11 12:59 src

8、将hadoop文件夹的主:组设置成hadoop

[root@master100 local]# chown -R hadoop:hadoop hadoop
[root@master100 local]# ll
总用量 556412
drwxr-xr-x. 2 root   root           6 4月  11 12:59 bin
drwxr-xr-x. 2 root   root           6 4月  11 12:59 etc
drwxr-xr-x. 2 root   root           6 4月  11 12:59 games
drwxr-xr-x. 9 hadoop hadoop       149 8月  18 2016 hadoop
-rw-r--r--. 1 root   root   214092195 10月  3 11:43 hadoop-2.7.3.tar.gz
drwxr-xr-x. 2 root   root           6 4月  11 12:59 include
-rwxr-xr-x. 1 root   root   170023183 10月  2 17:28 jdk-8u181-linux-x64.rpm
-rw-r--r--. 1 root   root   185646832 10月  2 16:31 jdk-8u181-linux-x64.tar.gz
drwxr-xr-x. 2 root   root           6 4月  11 12:59 lib
drwxr-xr-x. 2 root   root           6 4月  11 12:59 lib64
drwxr-xr-x. 2 root   root           6 4月  11 12:59 libexec
drwxr-xr-x. 2 root   root           6 4月  11 12:59 sbin
drwxr-xr-x. 5 root   root          49 10月  2 13:00 share
drwxr-xr-x. 2 root   root           6 4月  11 12:59 src

9、/usr目录与/usr/local目录所属主:组均为root,默认权限为755,也就是说其他用户(hadoop)没有写入(w)权限,在这里我们需要将这两个目录其他用户的权限设置为7。在这里将hadoop用户加入root组,然后将文件夹权限设置为775

###############################
#chmod 757 /usr
#chmod 757 /usr/local
###############################
 
使用下面代码:
 
gpasswd -a hadoop root
chmod 771 /usr
chmod 771 /usr/local

可以看到执行情况如下: 

[root@master100 local]# cd /
[root@master100 /]# chmod 757 /usr
[root@master100 /]# ll
总用量 16
lrwxrwxrwx.   1 root root    7 10月  2 13:00 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 10月  2 13:06 boot
drwxr-xr-x.  20 root root 3240 10月  3 11:47 dev
drwxr-xr-x.  76 root root 8192 10月  3 11:47 etc
drwxr-xr-x.   3 root root   20 10月  3 10:58 home
lrwxrwxrwx.   1 root root    7 10月  2 13:00 lib -> usr/lib
lrwxrwxrwx.   1 root root    9 10月  2 13:00 lib64 -> usr/lib64
drwxr-xr-x.   2 root root    6 4月  11 12:59 media
drwxr-xr-x.   2 root root    6 4月  11 12:59 mnt
drwxr-xr-x.   2 root root    6 4月  11 12:59 opt
dr-xr-xr-x. 133 root root    0 10月  3 11:46 proc
dr-xr-x---.   3 root root  160 10月  3 11:50 root
drwxr-xr-x.  24 root root  720 10月  3 11:47 run
lrwxrwxrwx.   1 root root    8 10月  2 13:00 sbin -> usr/sbin
drwxr-xr-x.   2 root root    6 4月  11 12:59 srv
dr-xr-xr-x.  13 root root    0 10月  3 11:47 sys
drwxrwxrwt.  10 root root  253 10月  3 11:47 tmp
drwxr-xrwx.  14 root root  167 10月  2 17:57 usr
drwxr-xr-x.  19 root root  267 10月  2 13:08 var
[root@master100 /]# chmod 757 /usr/local
[root@master100 /]# cd /usr
[root@master100 usr]# ll
总用量 104
dr-xr-xr-x.  2 root root 24576 10月  2 17:57 bin
drwxr-xr-x.  2 root root     6 4月  11 12:59 etc
drwxr-xr-x.  2 root root     6 4月  11 12:59 games
drwxr-xr-x.  3 root root    23 10月  2 13:01 include
drwxr-xr-x.  3 root root    61 10月  2 17:57 java
dr-xr-xr-x. 27 root root  4096 10月  2 13:02 lib
dr-xr-xr-x. 37 root root 20480 10月  2 13:02 lib64
drwxr-xr-x. 20 root root  4096 10月  2 13:02 libexec
drwxr-xrwx. 13 root root   237 10月  3 11:55 local
dr-xr-xr-x.  2 root root 12288 10月  2 13:02 sbin
drwxr-xr-x. 75 root root  4096 10月  2 13:02 share
drwxr-xr-x.  4 root root    34 10月  2 13:00 src
lrwxrwxrwx.  1 root root    10 10月  2 13:00 tmp -> ../var/tmp

Hadoop环境变量配置

1、编辑/etc/profile文件

vi /etc/profile

2、在末尾加上如下几行

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

这里注意HADOOP_HOME与PATH的顺序,我这里最后几行的配置如下:

export JAVA_HOME=/usr/java/jdk1.8.0_181-amd64
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JRE_HOME=$JAVA_HOME/jre

3、配置完环境变量之后保存退出,让环境变量立即生效

source /etc/profile

测试

环境变量测试

输入如下命令:

hadoop
hadoop version

效果如下: 

[root@master100 usr]# hadoop
Usage: hadoop [--config confdir] [COMMAND | CLASSNAME]
  CLASSNAME            run the class named CLASSNAME
 or
  where COMMAND is one of:
  fs                   run a generic filesystem user client
  version              print the version
  jar             run a jar file
                       note: please use "yarn jar" to launch
                             YARN applications, not this command.
  checknative [-a|-h]  check native hadoop and compression libraries availability
  distcp   copy file or directories recursively
  archive -archiveName NAME -p  *  create a hadoop archive
  classpath            prints the class path needed to get the
  credential           interact with credential providers
                       Hadoop jar and the required libraries
  daemonlog            get/set the log level for each daemon
  trace                view and modify Hadoop tracing settings

Most commands print help when invoked w/o parameters.
[root@master100 usr]# hadoop version
Hadoop 2.7.3
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r baa91f7c6bc9cb92be5982de4719c1c8af91ccff
Compiled by root on 2016-08-18T01:41Z
Compiled with protoc 2.5.0
From source with checksum 2e4ce5f957ea4db193bce3734ff29ff4
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-2.7.3.jar

演示Hadoop自带的MapReduce例子

在这里用hadoop账户登录系统进行测试

Xshell 6 (Build 0095)
Copyright (c) 2002 NetSarang Computer, Inc. All rights reserved.

Type `help' to learn how to use Xshell prompt.
[C:\~]$ 

Connecting to 192.168.33.100:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

WARNING! The remote SSH server rejected X11 forwarding request.
Last login: Wed Oct  3 11:25:59 2018
[hadoop@master100 ~]$ 

Hadoop 默认模式为非分布式模式,无需进行其他配置即可运行。非分布式即单 Java 进程,方便进行调试。
 
Hadoop 附带了丰富的例子(运行 ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar 可以看到所有例子),包括 wordcount、terasort、join、grep 等。在此我们选择运行 grep 例子,我们将 input 文件夹中的所有文件作为输入,筛选当中符合正则表达式 dfs[a-z.]+ 的单词并统计出现的次数,最后输出结果到 output 文件夹中。

[hadoop@master100 ~]$ cd /usr/local/hadoop

[hadoop@master100 hadoop]$ ll
总用量 108
drwxr-xr-x. 2 hadoop hadoop   194 8月  18 2016 bin
drwxr-xr-x. 3 hadoop hadoop    20 8月  18 2016 etc
drwxr-xr-x. 2 hadoop hadoop   106 8月  18 2016 include
drwxr-xr-x. 3 hadoop hadoop    20 8月  18 2016 lib
drwxr-xr-x. 2 hadoop hadoop   239 8月  18 2016 libexec
-rw-r--r--. 1 hadoop hadoop 84854 8月  18 2016 LICENSE.txt
-rw-r--r--. 1 hadoop hadoop 14978 8月  18 2016 NOTICE.txt
-rw-r--r--. 1 hadoop hadoop  1366 8月  18 2016 README.txt
drwxr-xr-x. 2 hadoop hadoop  4096 8月  18 2016 sbin
drwxr-xr-x. 4 hadoop hadoop    31 8月  18 2016 share

[hadoop@master100 hadoop]$ mkdir ./input

# 将配置文件作为输入文件
[hadoop@master100 hadoop]$ cp ./etc/hadoop/* ./input

[hadoop@master100 hadoop]$ hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep ./input ./output 'dfs[a-z.]+'

...........

#查看运行结果
[hadoop@master100 hadoop]$ cat ./output/*
6	dfs.audit.logger
4	dfs.class
3	dfs.server.namenode.
2	dfs.period
2	dfs.audit.log.maxfilesize
2	dfs.audit.log.maxbackupindex
1	dfsmetrics.log
1	dfsadmin
1	dfs.servers
1	dfs.file

更多的MapReduce例子在这里就不一一测试了,有兴趣的可以自己去测试


相关推荐

VMware虚拟机安装Linux系统

Linux系统下安装Java环境

CentOS 7部署Hadoop(伪分布式)

CentOS 7部署Hadoop集群(完全分布式)

CentOS 7部署Hadoop集群(HA高可用集群)

你可能感兴趣的:(Hadoop,Linux)