设为首页 收藏本站
查看: 1799|回复: 0

[经验分享] [zz]Ubuntu Hadoop HDFS 配置

[复制链接]
发表于 2015-7-11 09:14:55 | 显示全部楼层 |阅读模式
DSC0000.jpg

什么是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



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26


# ssh, rsync
sudo apt-get install ssh rsync
# openjdk,也可以是sun jdk
sudo 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 untar
tar 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



1
2
3
4
5
6
7


sudo vim /etc/apt/sources.list
# 在最后 添加一行:
# deb http://archive.canonical.com/ lucid partner
# 安装sun jre, jdk
sudo apt-get update
sudo apt-get install sun-java6-jre  sun-java6-jdk
  设置/etc/hosts


?View Code BASH



1
2
3
4
5


# 编辑/etc/hosts
vim /etc/hosts
# 添加
# 192.168.1.171   hadoop-m171
# 192.168.1.175   hadoop-s175
  配置SSH认证,实现免密码登陆


?View Code BASH



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16


# 在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



1
2
3
4
5
6
7
8
9


# 主节点
vim conf/master
# 添加内容
# hadoop-m171
# 从节点
vim conf/slaves
# 添加内容
# hadoop-s175
  编辑 conf/core-site.xml,内容如下:


?View Code XML



1
2
3
4
5
6
7
8
9
10
11
12




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



1
2
3
4
5
6




mapred.job.tracker
hadoop-m171:9001


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


?View Code XML



1
2
3
4
5
6




dfs.replication
1


  拷贝hadoop文件到slave上去


?View Code BASH



1
2


# 拷贝hadoop文件到slave上去
scp -r hadoop-0.20.2 root@192.168.1.175:/d1/hadoop
  Master设置完毕。下面去slave


?View Code BASH



1
2
3
4
5


# 安装ssh,java等
sudo apt-get install ssh rsync  openjdk-6-jdk openjdk-6-jre
# 设置/etc/hosts,和master一样,自行参考
# 。。。省略了。。。
  最后的步骤


?View Code BASH



1
2
3
4
5
6
7
8


# 格式化namenode
bin/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: http://wiki.apache.org/hadoop/HDFS-APIs
  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://incubator.apache.org/thrift/
  更多请参考官方站点: http://hadoop.apache.org/common/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-85388-1-1.html 上篇帖子: Hadoop伪分布模式配置 下篇帖子: 《Wrox.Professional.Hadoop.Solutions》中文目录全稿
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表