[大数据学习之路] Hadoop该怎样入门(一)
与之前的文章一样,还是先介绍一下什么是Hadoop吧!
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统( Distributed File System),其中一个组件是HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。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文件夹才能再次运行。
- 点赞
- 收藏
- 关注作者
评论(0)