[大数据学习之路] Hadoop该怎样入门(一)

举报
franco52576 发表于 2021/03/04 23:18:32 2021/03/04
【摘要】 与之前的文章一样,还是先介绍一下什么是Hadoop吧!Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cos...

与之前的文章一样,还是先介绍一下什么是Hadoop吧!

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFSMapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算  

我们可以从上面的介绍中了解到,Hadoop是一个能够对大量数据进行分布式处理软件框架。 Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理。

其拥有很多优点,这些优点也是其目前被应用广泛的原因。Hadoop主要用于一些分布式计算。在这个大数据年代,那这个的确是一个很不错的工具。所以很有必要来学一学。

如何开展这个学习呢,不管怎样,学习一样新东西,我喜欢这样的顺序:先依葫芦画瓢,一步一步行将其运行起来,再来分析一些应用场景及运行的情况,然后深入看一下其高级应用, 最后由于这个是一个开源产品,正好来借此机会来读一读大牛们的代码,学学其精华。

首先就介绍一下如何搭建一个属于自己的Hadoop环境吧!

1 创建Hadoop用户

1.1 创建新用户

用户名为hadoop,使用/bin/bash作为shell

$ sudo useradd -m hadoop -s /bin/bash

1.2 修改密码

$ sudo passwd hadoop
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

1.2 为hadoop用户添加管理员权限

$ sudo adduser hadoop sudo
Adding user `hadoop' to group `sudo' ...
Adding user hadoop to group sudo
Done.

2 安装java环境

2.1 安装

$ sudo apt-get install default-jre default-jdk

2.2 配置环境变量

$ vim ~/.bashrc

后面加入export JAVA_HOME=/usr/lib/jvm/default-java
然后使环境变量生效:

$ source ~/.bashrc

2.3 测试java是否安装成功

$ echo $JAVA_HOME
/usr/lib/jvm/default-java
$ java -version
openjdk version "1.8.0_191"
OpenJDK Runtime Environment (build 1.8.0_191-8u191-b12-0ubuntu0.16.04.1-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)

3 设置SSH

SSH是Secure Shell的缩写,SSH由客户端和服务端构成,服务端是一个守护进程,在后台运行并相应来自客户端的请求,客户端包含远程复制scp、安全文件传输sftp,远程登录slogin等运用程序。

Ubuntu已经默认安装了SSH客户端,还需要安装SSH服务端。

【注意】:Hadoop并没有提供SSH密码登录的形式,所以需要将所有机器配置为无密码登录。

3.1 安装SSH服务端

$ sudo apt-get install openssh-server

3.2 登录localhost

$ ssh localhost
The authenticity of host 'localhost (127.0.0.1)' can't be established.
ECDSA key fingerprint is SHA256:MCT7ubGt3sPlkvS9v//KhAoa7vBO+EVPJN/JXenC8XM.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
hadoop@localhost's password: 
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.10.0-42-generic x86_64)

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

243 packages can be updated.
11 updates are security updates.

之后会在~/文件夹下发现一个.ssh文件

3.3 设置为无密码登录

$ cd ~/.ssh/
$ ssh-keygen -t rsa  #出现提示直接按enter
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:FaavA0T6j8XH0clbVu0pq5hkad7kADUBibL/76I2U00 hadoop@ubuntu
The key's randomart image is:
+---[RSA 2048]----+
|      o.o.+     o|
|   . + . = + . ..|
|    + . o + + o..|
|   . o o E . = ..|
|    . o S = . o  |
|     . * X . .   |
|      + O B .    |
|     + o = +     |
|    ..+ +o       |
+----[SHA256]-----+
$ cat ./id_rsa.pub >> ./authorized_keys  #加入授权

此时就直接使用$ ssh localhost,无密码登录了。

4 安装Hadoop

Hadoop的安装包括3中模式:
(1)单机模式:只在一台机器上运行,存储采用本地文件系统,没有采用分布式文件系统HDFS。
(2)伪分布式模式:存储采用分布式文件系统HDFS,但是HDFS的节点和数据节点都在同一节点。
(2)分布式模式:存储采用分布式文件系统HDFS,而且HDFS的节点和数据节点位于不同机器上。

Hadoop的下载:http://mirrors.cnnic.cn/apache/hadoop/common

4.1 单机模式配置

下载安装包后解压即可使用:

$ sudo tar -zxvf hadoop-2.7.1.tar.gz -C /usr/local
$ cd /usr/local/
$ sudo mv ./hadoop-2.7.1/ ./hadoop      # 将文件夹名改为hadoop
$ sudo chown -R hadoop ./hadoop       # 修改文件权限

查看Hadoop版本信息:

$ cd /usr/local/hadoop/bin
$ ./hadoop version
Hadoop 2.7.1
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 15ecc87ccf4a0228f35af08fc56de536e6ce657a
Compiled by jenkins on 2015-06-29T06:04Z
Compiled with protoc 2.5.0
From source with checksum fc0a1a23fc1868e4d5ee7fa2b28a58a
This command was run using /usr/local/hadoop/share/hadoop/common/hadoop-common-2.7.1.jar

下面运行grep程序

$ cd /usr/local/hadoop
$ mkdir input
$ cp ./etc/hadoop/*.xml ./input   # 将配置文件复制到input目录下
$ ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
$ cat ./output/*          # 查看运行结果
1       dfsadmin

运行成功后,可以看到grep程序将input文件夹作为输入,从文件夹中筛选出所有符合正则表达式dfs[a-z]+的单词,并把单词出现的次数的统计结果输出到/usr/local/hadoop/output文件夹下。

【注意】:如果再次运行上述命令,会报错,因为Hadoop默认不会覆盖output输出结果的文件夹,所有需要先删除output文件夹才能再次运行。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。