带你快速搭建Hadoop运行环境

大数据 Hadoop
Hadoop 是一个分布式系统基础架构,在大数据领域被广泛的使用,它将大数据处理引擎尽可能的靠近存储,Hadoop 最核心的设计就是 HDFS 和 MapReduce,HDFS 为海量的数据提供了存储,MapReduce 为海量的数据提供了计算。这篇文章主要就是介绍一下如何搭建一个 Hadoop 运行环境。

Hadoop 是一个分布式系统基础架构,在大数据领域被广泛的使用,它将大数据处理引擎尽可能的靠近存储,Hadoop 最核心的设计就是 HDFS 和 MapReduce,HDFS 为海量的数据提供了存储,MapReduce 为海量的数据提供了计算。这篇文章主要就是介绍一下如何搭建一个 Hadoop 运行环境。

 

带你快速搭建Hadoop运行环境

我们使用 Linux 操作系统来搭建环境,下面的信息是用来准备搭建 Hadoop 环境的电脑环境信息。

  1. hadoop@ubuntu:~$ cat /etc/os-release 
  2. NAME="Ubuntu" 
  3. VERSION="14.04.5 LTS, Trusty Tahr" 
  4. ID=ubuntu 
  5. ID_LIKE=debian 
  6. PRETTY_NAME="Ubuntu 14.04.5 LTS" 
  7. VERSION_ID="14.04" 
  8. HOME_URL="http://www.ubuntu.com/" 
  9. SUPPORT_URL="http://help.ubuntu.com/" 
  10. BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" 

紧接着来新建一个用户,这一步其实也可以省略的,可以根据实际情况来决定,这里是新建了一个叫 hadoop 的新用户。

  1. #创建新用户 
  2. sudo useradd -m hadoop -s /bin/bash 
  3. #设置密码 
  4. sudo passwd hadoop 
  5. #为hadoop用户增加管理员权限 
  6. sudo adduser hadoop sudo 
  7. #切换到hadoop用户 
  8. su hadoop 

我们首先来设置一下 SSH 无密码登录,这一步建议都设置一下,因为分布式系统环境都是由多台服务器构成的,设置免密码登录会方便使用。

  1. #先检查下是否可以在没有密码的情况下ssh到localhost 
  2. ssh localhost 
  3. #如果在没有密码的情况下无法ssh到localhost,请执行以下命令 
  4. ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa 
  5. cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 
  6. chmod 0600 ~/.ssh/authorized_keys 

上面是一些准备工作,接下来就正式开始部署 Hadoop 环境了。我们先在 Apache 官网(http://hadoop.apache.org)这里下载最新的稳定版本的 Hadoop 发行版,然后解压到指定目录并进入这个目录,执行 ./bin/hadoop 和 ./bin/hadoop version 可以分别显示 hadoop 脚本的使用文档和版本信息,然后修改一下 ./etc/hadoop/core-site.xml 和 ./etc/hadoop/hdfs-site.xml这两个配置文件,配置修改分别如下所示。

修改 ./etc/hadoop/core-site.xml 配置文件,添加如下配置:

  1. <configuration> 
  2.     <property> 
  3.         <name>fs.defaultFS</name
  4.         <value>hdfs://localhost:9090</value> 
  5.     </property> 
  6.     <property> 
  7.         <name>hadoop.tmp.dir</name
  8.         <value>file:/opt/bigdata/hadoop/tmp</value> 
  9.         <description>A base for other temporary directories.</description> 
  10.     </property> 
  11. </configuration> 

修改 ./etc/hadoop/hdfs-site.xml 配置文件,添加如下配置:

  1. <configuration> 
  2.     <property> 
  3.         <name>dfs.replication</name
  4.         <value>1</value> 
  5.     </property> 
  6.     <property> 
  7.         <name>dfs.namenode.name.dir</name
  8.         <value>file:/opt/bigdata/hadoop/tmp/dfs/name</value> 
  9.     </property> 
  10.     <property> 
  11.         <name>dfs.datanode.data.dir</name
  12.         <value>file:/opt/bigdata/hadoop/tmp/dfs/data</value> 
  13.     </property> 
  14. </configuration> 

配置修改好之后,执行格式化文件系统,操作如下。

  1. hadoop@ubuntu:/opt/bigdata/hadoop$ ./bin/hdfs namenode -format 
  2. #执行后输出会比较多,看到下边这条信息表示成功 
  3.  INFO common.Storage: Storage directory /opt/bigdata/hadoop/tmp/dfs/name has been successfully formatted. 

在格式化 NameNode 的时候可能会遇到下面这样的两个问题。

  1. 提示 Error: JAVA_HOME is not set and could not be found. 的错误,这说明 JAVA_HOME 环境变量没有配置好,重新配置一下,或者修改 ./etc/hadoop/hadoop-env.sh 文件把 export JAVA_HOME=${JAVA_HOME} 直接修改成绝对目录 export JAVA_HOME=/usr/lib/jvm/java-8 既可解决。
  2. 提示 ERROR namenode.NameNode: java.io.IOException: Cannot create directory /opt/bigdata/hadoop/tmp/dfs/name/current 的错误,这是因为配置的 /opt/bigdata/hadoop/tmp 目录的写入权限有问题,可以直接执行 sudo chmod -R a+w /home/hadoop/tmp 即可解决。

接下来执行 ./sbin/start-dfs.sh 来开启 NameNode 和 DataNode 守护进程,然后检查 NameNode、DataNode 和 SecondaryNameNode 是否都已经启动成功,操作如下:

  1. hadoop@ubuntu:/opt/bigdata/hadoop$ jps 
  2. 4950 Jps 
  3. 3622 SecondaryNameNode 
  4. 3295 DataNode 
  5. 2910 NameNode 

启动成功之后可以用浏览器来打开 http://localhost:50070/ 浏览 NameNode 的Web界面。

 

带你快速搭建Hadoop运行环境

到此为止,Hadoop 单节点集群(伪分布式)环境搭建就已经成功了, 接下来运行一个 Hadoop 伪分布式实例。因为 Hadoop 单机模式是运行的本地文件系统,(伪)分布式模式则是运行的 HDFS 上的数据。我们现在 HDFS 中创建用户目录,执行目命令 ./bin/hdfs dfs -mkdir -p /user/hadoop 即可,执行如下命令将输入文件复制到分布式文件系统中。

  1. #这个可以不执行,因为会自动创建好目录的  
  2. #./bin/hdfs dfs -mkdir input 
  3. ./bin/hdfs dfs -put etc/hadoop input 
  4. #查看复制到HDFS的文件列表 
  5. ./bin/hdfs dfs -ls input 

接下来运行一个 Hadoop 自带的 mapreduce 实例看看效果吧,直接执行如下命令。

  1. ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples- 
  2. 2.9.1.jar grep input output 'dfs[a-z.]+' 

使用 ./bin/hdfs dfs -cat output/* 命令查看运行后在 HDFS 上的输出文件列表,或者使用下面的命令拷贝到本地查看。

  1. ./bin/hdfs dfs -get output output 
  2. ./cat output/* 

关闭 Hadoop 直接使用 ./sbin/stop-dfs.sh 命令即可。

 

带你快速搭建Hadoop运行环境

这里介绍了 Hadoop 环境搭建的最基本最简单的方法,我建议最好是边看边动手操作一下,这样可以加深印象和理解,更加有利于掌握相关知识点。当然,Hadoop 环境搭建还有其他一些方法,也是实际开发中常用的方法,比如基于 Yarn、Mesos 等资源调度系统搭建、使用 Docker 搭建等等,有兴趣的朋友们可以尝试一下这些方法,也欢迎留言交流。

责任编辑:未丽燕 来源: 今日头条
相关推荐

2010-06-04 16:17:02

2018-07-10 15:15:11

2023-08-03 07:35:10

kubernetes云原生

2021-07-16 09:51:21

kubernetes环境容器

2022-10-14 15:44:03

大数据Hadoop

2012-11-01 17:15:04

2012-02-16 10:00:59

2009-07-21 14:18:01

Rails运行环境

2017-12-22 10:51:04

Hadoop编译环境

2012-11-07 17:25:46

hadoopUbuntu 12.0

2015-05-27 10:29:41

DockerHadoopHadoop集群

2017-02-06 11:55:40

DockerJava Web环境

2009-07-28 17:02:10

ASP.NET运行环境

2024-10-25 15:25:42

2009-07-02 13:42:57

JSP动态网站

2020-10-12 11:33:00

鸿蒙

2010-09-17 11:01:05

Java运行环境

2015-01-05 14:16:16

DockerFig自动化容器编排

2017-05-11 11:00:11

大数据Hadoop数据处理

2014-09-04 09:35:17

点赞
收藏

51CTO技术栈公众号