Hadoop 初体验
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 初体验的更多相关文章
- 全分布式的Hadoop初体验
背景 之前的时间里对 Hadoop 的使用都是基于学长所搭建起的实验环境的,没有完整的自己部署和维护过,最近抽时间初体验了在集群环境下装机.配置.运行的全过程,梳理总结到本文中. 配置 内存:8G C ...
- Hadoop初体验(续)--YARN
1.Hadoop已经安装完成并启动成功 复制mapred-site.xml.template重命名为mapred-site.xml /etc/hadoop/mapred-site.xml.templa ...
- Hadoop初体验
1.首先准备环境 系统:Linux(centOS) jdk:1.7 这里jdk要安装配置完成,具体步骤参考:Linux环境下安装JDK 注意:本次没有配置免密登录,所以在启动和停止的时候回让你输入多次 ...
- Flume 实战(1) -- 初体验
前言: Flume-ng是数据收集/聚合/传输的组件, Flume-ng抛弃了Flume OG原本繁重的zookeeper和Master, Collector, 其整体的架构更加的简洁和明了. 其基础 ...
- YII学习,初体验 ,对YII的一些理解.
先说点没用的: 不会选择,选择后不坚持,不断的选择.这是人生中的一个死循环,前两一直迷茫.觉得自己前进方向很不明朗.想去学的东西有很多.想学好YII,想学PYTHON 想学学hadoop什么的,又想研 ...
- 【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 ...
- 一 Hive安装及初体验
一 .Hive安装及初体验 1 .hive简介 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能. 1.1直接使用hadoop面临的问题 ...
- .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
不知不觉,“.NET平台开源项目速览“系列文章已经15篇了,每一篇都非常受欢迎,可能技术水平不高,但足够入门了.虽然工作很忙,但还是会抽空把自己知道的,已经平时遇到的好的开源项目分享出来.今天就给大家 ...
- Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验
Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...
随机推荐
- Java多线程(五)之BlockingQueue深入分析
一.概述: BlockingQueue作为线程容器,可以为线程同步提供有力的保障. 二.BlockingQueue定义的常用方法 1.BlockingQueue定义的常用方法如下: 1)add( ...
- Python匹马行天下之初识python!
python的发展史 1989年,被称为龟叔的Guido在为ABC语言写插件时,产生了写一个简洁又实用的编程语言的想法,并开始着手编写.因为其喜欢Monty Python喜剧团,所以将其命名为pyth ...
- android:两个应用之间怎样传值之activity
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/zjh171/article/details/37738579 两个应用之间怎样传值.事实上这个标题太 ...
- css3的选择器
先来做一下准备工作 页面的效果: 看到上面的框框了吗?我们就是通过给这些框框添加背景色的方式,来让大家,了解css3的选择器的效果,下面正式开始: 关联选择器 E1~E2 选择 E1 后面的兄弟 E2 ...
- JS事件 编程练习-自制计算器 使用JS完成一个简单的计算器功能。实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除。
编程练习 使用JS完成一个简单的计算器功能.实现2个输入框中输入整数后,点击第三个输入框能给出2个整数的加减乘除. 提示:获取元素的值设置和获取方法为:例:赋值:document.getElement ...
- 详解redis服务
http://mp.weixin.qq.com/s?__biz=MzIyMDA1MzgyNw==&mid=2651968327&idx=1&sn=6e6cb01d334d7ae ...
- 威布尔weibull distribution
data = wblrnd(0.5,0.8,100,1); 生成威布尔随机函数,尺寸参数为0.5,形状参数为0.8,生成数列100行,一列: parmhat = wblfit(data) 对data的 ...
- Android Button.getWidth()为0的问题
View在onCreate的时候,没有渲染组件,所以获取到的宽度和高度为0, 需要添加一个观察者,在layout渲染后再去取宽高.代码如下: private Button btn_icon; @Ove ...
- Dom关于位置和尺寸的api
parentNode 直接父级//和offsetParent不同 inner2.parentNode <!DOCTYPE html> <html id="html&q ...
- 一张图轻松掌握 Flink on YARN 应用启动全流程(上)
Flink 支持 Standalone 独立部署和 YARN.Kubernetes.Mesos 等集群部署模式,其中 YARN 集群部署模式在国内的应用越来越广泛.Flink 社区将推出 Flink ...