Hadoop 是一个基于谷歌发表的几篇论文而开发的一个分布式系统基础架构,用户可在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop现在已经成了大数据的代名词。也就是说,现在如果要处理大数据,Hadoop是首要选择。所以学好Hadoop是非常实用的。

Hadoop 目前大的版本分为1和2,对于初学者来说,先学习 Hadoop 1.x 比较容易上手,相比 2.x会简单不少。

环境

Ubuntu 16.04

openjdk-8

Hadoop-1.2.1

安装

由于 Hadoop 是用 Java 开发的,所以要依赖 JDK,首先要安装 JDK,并配置JDK的环境变量。

安装 Java 命令:

sudo apt-get install openjdk-8-jdk

如果出现一下错误:

E: 软件包 sun-java6-jre 没有可供安装的候选者

则执行一下命令:

sudo add-apt-repository ppa:openjdk-r/ppa

sudo apt-get update

之后再执行安装命令。

JDK 安装完成后需要配置环境变量,编辑/etc/profile,加入一下内容:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-i386
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$PATH

安装Hadoop。

下载 Hadoop 的安装包 hadoop-1.2.1.tar.gz,解压后放到/opt/目录下

接着是对 Hadoop 配置:

hadoop-env.sh

修改JAVA_HOME 的路径

core-site.xml

初始是空文件,加入以下内容:

<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop</value>
</property>

<property>
<name>dfs.name.dir</name>
<value>/hadoop/name</value>
</property>

<property>
<name>fs.default.name</name>
<value>hdfs://tang:9000</value>
</property>

hdfs-site.xml

加入以下内容:

<property>
<name>dfs.data.dir</name>
<value>/hadoop/data</value>
</property>

mapred-site.xml

加入以下内容:

<property>
<name>mapred.job.tracker</name>
<value>tang:9001</value>
</property>

配置好后,加入 Hadoop 的环境变量

export HADOOP_HOME=/opt/hadoop-1.2.1

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$PATH

执行 source /etc/profile 让配置的环境变量立即生效。

输入 hadoop 看到 hadoop 的参数说明,表明配置成功了。

接着切换到 hadoop/bin 下,执行 hadoop namenode -format 进行格式化,如果出现以下错误:

hadoop java.io.IOException: while running namenode -format

12/07/03 17:03:56 ERROR namenode.NameNode: java.io.IOException: Cannot create directory /your/path/to/hadoop/tmp/dir/hadoop-hadoop/dfs/name/current

需要检查一下刚才在几个配置文件中定义的路径是否存在、当前用户是否有权限访问。

格式化成功后,切换到/hadoop/bin下,执行 start-all.sh

如果出现以下错误:

ssh: connect to host localhost port 22: Connection refused
可能的原因是ssh server没装,查看方法:

ps -e |grep ssh

如果没有sshd,说明还没有安装ssh server

解决方案:

sudo apt-get install openssh-server
接着再运行start-all.sh就可以了。

再运行 jfs,观察以下几个内容是否存在。

3542 TaskTracker
3334 SecondaryNameNode
4058 Jps
3931 JobTracker
3677 NameNode
3182 DataNode

如果都存在,表明hadoop启动成功。

运行 hadoop fs -ls / 时,出现以下错误:

14/07/29 13:25:35 INFO ipc.Client: Retrying connect to server: centhost.centdomain/10.110.30.30:9000. Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)

原因是没有启动 hadoop,切换到$HADOOP_HOME/bin 下,运行 start-all.sh即可。

出现以下错误

s: unknown host: tang

检查一下 /etc/hosts、 /etc/hostname 下是否存在该主机。

运行 jps 时没有出现datanode,可能的原因是:

当前用户是否有配置文件中指定的文件夹打操作权限。

Hadoop 初体验的更多相关文章

  1. 全分布式的Hadoop初体验

    背景 之前的时间里对 Hadoop 的使用都是基于学长所搭建起的实验环境的,没有完整的自己部署和维护过,最近抽时间初体验了在集群环境下装机.配置.运行的全过程,梳理总结到本文中. 配置 内存:8G C ...

  2. Hadoop初体验(续)--YARN

    1.Hadoop已经安装完成并启动成功 复制mapred-site.xml.template重命名为mapred-site.xml /etc/hadoop/mapred-site.xml.templa ...

  3. Hadoop初体验

    1.首先准备环境 系统:Linux(centOS) jdk:1.7 这里jdk要安装配置完成,具体步骤参考:Linux环境下安装JDK 注意:本次没有配置免密登录,所以在启动和停止的时候回让你输入多次 ...

  4. Flume 实战(1) -- 初体验

    前言: Flume-ng是数据收集/聚合/传输的组件, Flume-ng抛弃了Flume OG原本繁重的zookeeper和Master, Collector, 其整体的架构更加的简洁和明了. 其基础 ...

  5. YII学习,初体验 ,对YII的一些理解.

    先说点没用的: 不会选择,选择后不坚持,不断的选择.这是人生中的一个死循环,前两一直迷茫.觉得自己前进方向很不明朗.想去学的东西有很多.想学好YII,想学PYTHON 想学学hadoop什么的,又想研 ...

  6. 【Spark深入学习 -15】Spark Streaming前奏-Kafka初体验

    ----本节内容------- 1.Kafka基础概念 1.1 出世背景 1.2 基本原理 1.2.1.前置知识 1.2.2.架构和原理 1.2.3.基本概念 1.2.4.kafka特点 2.Kafk ...

  7. 一 Hive安装及初体验

    一 .Hive安装及初体验 1 .hive简介 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能. 1.1直接使用hadoop面临的问题 ...

  8. .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验

    不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...

  9. Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验

    Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...

随机推荐

  1. Python3实用编程技巧进阶✍✍✍

    Python3实用编程技巧进阶  整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频的感受,单论单个知识点课程本身没问题,大家看的时候可以 ...

  2. 第四天:语句、表达式与if分支、循环语句

    表达式 代码风格 代码格式指南 PEP8 缩进4空格 一行不超过79 空行 赋值语句 基本 (x,y) = (5,10) x [x,y,z] = [1,2,3] x a,b,c = 'uhk' a 5 ...

  3. HTTP请求默认值

    填写后,后面的请求如果对应的未填写,默认使用该参数

  4. FTP、SFTP、SCP、SSH、OpenSSH关系解密

    FTP(File Transfer Protocol):是TCP/IP网络上两台计算机传送文件的协议,FTP是在TCP/IP网络和INTERNET上最早使用的协议之一,它属于网络协议组的应用层.FTP ...

  5. QT之发布

    https://blog.csdn.net/qq_40194498/article/details/79926054打开windows控制台直接输入 windeployqt --help 可以知道想要 ...

  6. C++相对路径和绝对路径

    学习备忘 转自:http://www.cnblogs.com/vranger/p/3820783.html 电脑硬盘E盘下,建文件夹“test”,"test"下建立子文件夹“fil ...

  7. Jmeter-BeanShell断言:将数据库结果封装成list作为参数

    import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjso ...

  8. python相关软件安装流程图解——linux 安装python3——Python-3.7.1

    请先确保已经安装了虚拟机 python相关软件安装流程图解——虚拟机安装——CentOS-7-x86_64-DVD-1810——CentOS-01下载 https://www.cnblogs.com/ ...

  9. k8s 弹性伸缩

    k8s弹性伸缩,需要附加插件heapster 1.安装heapster监控 1:上传并导入镜像,打标签 ls *.tar.gz for n in `ls *.tar.gz`;do docker loa ...

  10. 【AT3611】Tree MST

    题目 这个题的输入首先就是一棵树,我们考虑一下点分 我们对于每一个分治重心考虑一下跨过这个分治重心的连边情况 就是把当前分治区域内所有的点向距离分治重心最近的点连边 考虑一下这个算法的正确性,如果我们 ...