博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[zz]Ubuntu Hadoop HDFS 配置
阅读量:7036 次
发布时间:2019-06-28

本文共 4641 字,大约阅读时间需要 15 分钟。

什么是Hadoop?

Apache Hadoop 是一个用java语言实现的软件框架,在由大量计算机组成的集群中运行海量数据的分布式计算,它可以让应用程序支持上千个节点和PB级别的数据。 Hadoop是从google MapReduce和Google文件系统的论文获得的灵感。Hadoop是Apache的一线项目,开发和实用来自世界各地的社区,Yahoo!是目前 为止最大的贡献者,并且Yahoo广泛使用它在搜索业务和广告业务上。IBM和Google的联合就是使用的Hadoop,为大学的课程提供分布式计算。 Hadoop的创始人是Doug Cutting(目前在yahoo工作),关于hadoop的命名,是Doug Cutting在它儿子画图时画了一只大象而获得的灵感。其实Doug Cutting最初的目的是想为Nutch搜索引擎提供分布式。

hadoop有三个子项目:Hadoop core,HBase, Zookeeper.

  • hadoop core,提供分布式文件系统HDFS,支持MapReduce分布式计算,组建
    大型集群。Hadoop框架中最核心设计就是:MapReduce和HDFS。MapReduce的思
    想是由Google的一篇论文所提及而被广为流传的,简单的一句话解释MapReduce就
    是任务的分解与结果的汇总。HDFS是Hadoop分布式文件系统的缩写,为分布式计算
    存储提供了底层支持。
  • HBase,类似Google的BigTable,是hadoop的数据库。
    HBase使用和Bigtable非常相同的数据模型.用户存储数据行在一个表里.一个
    数据行拥有一个可选择的键和任意数量的列.表是疏松的存储的,因此用户可以给行定
    义各种不同的列。
  • Zookeeper,高可用和具有可靠的协调机制,分布式应用使用它来存储和协调。

HDFS安装需求

JavaTM 1.6.x, 官方推荐Sun JDK,OpenJDK也是可以的。SSH,需要通过ssh调用其他节点机器。

本文安装系统为Ubuntu Server 10.04。192.168.1.171为Master,192.168.1.175为Slave。

View Code BASH
1234567891011121314151617181920212223242526
# ssh, rsyncsudo apt-get install ssh rsync # openjdk,也可以是sun jdksudo apt-get install openjdk-6-jdk openjdk-6-jre # hadoop 稳定版下载地址# http://mirror.bjtu.edu.cn/apache/hadoop/core/stable/wget  "http://mirror.bjtu.edu.cn/apache/hadoop/core/stable/hadoop-0.20.2.tar.gz" # cd /your_dir, and untartar zxvf hadoop-0.20.2.tar.gz  # 解压后,修改conf/hadoop-env.sh,设置JAVA_HOME为java安装目录# jdk安装目录 /usr/lib/jvm/java-1.6.0-openjdk# vim conf/hadoop-env.sh# 修改为 export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk# !!!这步灰常重要,否则java程序就跑不起来鸟。。。。 # 设置全局变量,可选vim /etc/environment# 添加下面两行# JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk/# CLASSPATH=.:$JAVA_HOME/lib

如果你不打算采用open-jdk,可以按照下面步骤安装sun-jdk。Ubuntu后期版本均采用open-jdk,所以需要添加额外的源来安装sun版的。

View Code BASH
1234567
sudo vim /etc/apt/sources.list # 在最后 添加一行:# deb http://archive.canonical.com/ lucid partner  # 安装sun jre, jdksudo apt-get updatesudo apt-get install sun-java6-jre  sun-java6-jdk

设置/etc/hosts

View Code BASH
12345
# 编辑/etc/hostsvim /etc/hosts# 添加# 192.168.1.171   hadoop-m171# 192.168.1.175   hadoop-s175

配置SSH认证,实现免密码登陆

View Code BASH
12345678910111213141516
# 在Master主节点,这里是171. 设置ssh密钥,这样就可以免密码登陆其他Slaves节点了ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys # ssh 测试一下ssh hadoop-m171# 如果依然需要输入密码,请检查。注意运行用户,您可以全部采用root。 # 其他slaves机器,把~/.ssh/id_dsa.pub scp拷贝过去scp ~/.ssh/id_dsa.pub root@192.168.1.175:/tmp/ # !!下面这句在slaves上执行!!cat /tmp/id_dsa.pub >> ~/.ssh/authorized_keys # 一定要测试一下,否则就无法启动slaves节点hadoop了。。。ssh hadoop-s175

设置主从节点信息

View Code BASH
123456789
# 主节点vim conf/master# 添加内容# hadoop-m171 # 从节点vim conf/slaves# 添加内容# hadoop-s175

编辑 conf/core-site.xml,内容如下:

View Code XML
123456789101112
fs.default.name
hdfs://hadoop-m171:9010
hadoop.tmp.dir
/d1/hadoopdata
A base for other temporary directories.

编辑 cconf/mapred-site.xml,内容如下:

View Code XML
123456
mapred.job.tracker
hadoop-m171:9001

编辑 cconf/mapred-site.xml,内容如下:

View Code XML
123456
dfs.replication
1

拷贝hadoop文件到slave上去

View Code BASH
12
# 拷贝hadoop文件到slave上去scp -r hadoop-0.20.2 root@192.168.1.175:/d1/hadoop

Master设置完毕。下面去slave

View Code BASH
12345
# 安装ssh,java等sudo apt-get install ssh rsync  openjdk-6-jdk openjdk-6-jre # 设置/etc/hosts,和master一样,自行参考# 。。。省略了。。。

最后的步骤

View Code BASH
12345678
# 格式化namenodebin/hadoop namenode -format # 启动bin/start-all.sh # 关闭# bin/stop-all.sh

启动后,查看具体状态

NameNode – http://192.168.1.171:50070/
JobTracker – http://192.168.1.171:50030/

遇到安装错误,切记心平气和,否则你废上一天也配不起来的,哈哈,开个玩笑。。。一般是datanode容易跑不起来,报“ 。。INFO org.apache.hadoop.ipc.Client: Retrying connect to server: 。。。”之类的错误。去查看日志吧,检查一下配置,就能起来了。日志在logs目录下,也可以通过http://192.168.1.171:50030 /logs/查看。

祝你成功,Good Luck~~

来张截图:

其他语言的API,是通过一个叫做thrift的东东来完成的。

Hadoop Distributed File System (HDFS) APIs in perl, python, ruby and php
See:

Thrift is a software framework for scalable cross-language services development. It combines a software stack with a code generation engine to build services that work efficiently and seamlessly between C++, Java, Python, PHP, Ruby, Erlang, Perl, Haskell, C#, Cocoa, Smalltalk, and OCaml.

See:

更多请参考官方站点:

转载地址:http://jhyal.baihongyu.com/

你可能感兴趣的文章
升级到 OS X Yonsemite 10.10后 Verions 崩溃
查看>>
Oracle共享池
查看>>
oracle JOB常见的执行时间
查看>>
自动补0
查看>>
Python如何批量给云主机配置安全组?
查看>>
iOS音频播放 (四):AudioFile
查看>>
Oracle 存储过程异常处理
查看>>
URL里面存在下划线导致SESSION在IE下被分隔
查看>>
自定义注册的 Windows服务 无法访问网络共享文件解决办法
查看>>
postgersql日志备份和还原
查看>>
简单的pythonweb程序
查看>>
RemoteView概述
查看>>
JAVA集合小结
查看>>
ubuntu下android 源码下载
查看>>
Oracle数据库角色管理
查看>>
订单系统 高级设计
查看>>
flutter 底部输入框 聊天输入框 Flexible
查看>>
mac安装thrift 0.93
查看>>
cxf客户端代码自动生成
查看>>
sql语句的分页技术
查看>>