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,可能的原因是:

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

最新文章

  1. 布局TextView和EditText区别,layout_width和lay_weight区别--Android Studio
  2. pt-diskstats 报错 Can&#39;t locate Time/HiRes.pm in @INC
  3. .Net分布式异常报警系统-服务端Service
  4. Oracle-表格的建立
  5. webkit内核分析之 Frame
  6. Objective-c 基础框架(初学者-总结)
  7. Mysql数据库中设置root密码的命令及方法
  8. 数据库连接字符串大全 资料引用:http://www.knowsky.com/339545.html
  9. 编写函数,以读模式打开一个文件,将其内容读入到一个string的vector中,将每一行作为一个对立的元素存于vector中
  10. PAT (Advanced Level) 1001. A+B Format (20)
  11. bootstrap select2 参数详解
  12. 最详细的Windows平台安装MongoDB教程
  13. spark中RDD的转化操作和行动操作
  14. latex与word之间的各种转化方法
  15. JDBC-day01
  16. java结合js获取验证码
  17. javaAgent 参数
  18. 删除数据库所有存储过程的SQL语句
  19. e676. 把彩色图像转换为灰色
  20. DOM介绍

热门文章

  1. Selenium(二)---无界面模式+滑动底部
  2. 用多线程发送邮箱(一次给一个用户发送N封邮件)
  3. CSS3——2D变形和3D变形
  4. springboot启动报 A child container failed during start 错误解决过程
  5. 14 win7 sp1下安装vs2015
  6. 利用redis的bitmap实现用户签到功能
  7. 查看linux的登录日志
  8. [ZJOI 2018]历史
  9. Codeforces-GYM101873 G Water Testing 皮克定理
  10. DXP 笔记