RHadoop实践系列之一:Hadoop环境搭建

RHadoop实践系列文章,包含了R语言与Hadoop结合进行海量数据分析。Hadoop主要用来存储海量数据,R语言完成MapReduce 算法,用来替代Java的MapReduce实现。有了RHadoop可以让广大的R语言爱好者,有更强大的工具处理大数据1G, 10G, 100G, TB, PB。 由于大数据所带来的单机性能问题,可能会一去不复返了。

RHadoop实践是一套系列文章,主要包括”Hadoop环境搭建”,”RHadoop安装与使用”,R实现MapReduce的协同过滤算法”,”HBase和rhbase的安装与使用”。对于单独的R语言爱好者,Java爱好者,或者Hadoop爱好者来说,同时具备三种语言知识并不容 易。此文虽为入门文章,但R,Java,Hadoop基础知识还是需要大家提前掌握。

关于作者:

  • 张丹(Conan), 程序员Java,R,PHP,Javascript
  • weibo:@Conan_Z
  • blog: http://blog.fens.me
  • email: bsspirit@gmail.com

转载请注明出处:
http://blog.fens.me/rhadoop-hadoop/

rhadoop-hadoop

第一篇 Hadoop环境搭建部分,分为3个章节。

Haddop环境准备
Hadoop完全分步式集群搭建
HDFS测试

每一章节,都会分为”文字说明部分”和”代码部分”,保持文字说明与代码的连贯性。

Haddop环境准备

文字说明部分:

首先环境准备,这里我选择了Linux Ubuntu操作系统12.04的64位版本,大家可以根据自己的使用习惯选择顺手的Linux。

但JDK一定要用Oracle SUN官方的版本,请从官网下载,操作系统的自带的OpenJDK会有各种不兼容。JDK请选择1.6.x的版本,JDK1.7版本也会有各种的不兼容情况。
http://www.oracle.com/technetwork/java/javase/downloads/index.html

完全分步式的Hadoop集群,这个选择5台一样配置的虚拟机,通过内网的一个DNS服务器,指定5台虚拟机所对应的域名。
每台虚拟机,1G内存,系统硬盘2G,外接硬盘16G。hadoop会存储在外接硬盘上面。

外接硬盘,需要先进行格式化,然后创建目录,再mount到操作系统,通过修改/etc/fstab配置,系统每次重起都是自动加载外接硬盘。
(如果用户操作系统的硬盘够大,不用外接硬盘,这步可以省略)

接下来,为hadoop集群创建访问账号hadoop,创建访问组hadoop,创建用户目录/home/hadoop,把账号,组和用户目录绑定。

再为hadoop的hdfs创建存储位置/hadoop/conan/data0,给hadoop用户权限。

设置SSH自动登陆,从nn.qa.com虚拟机开始,通过ssh-keygen命令,生成id_rsa.pub,再合并到 authorized_keys的文件。再通过scp把authorized_keys复制到其他的虚拟机。循环生成authorized_keys并合并文件。使得5台虚拟机,都有了相互的SSH自动登陆的配置。

环境准备完成,参考下面代码部分,动手实现。

代码部分:
1. 操作系统Ubuntu 12.04 x64
~ uname -a
Linux domU-00-16-3e-00-00-85 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
2. JAVA环境
~ java -version
java version "1.6.0_29"
Java(TM) SE Runtime Environment (build 1.6.0_29-b11)
Java HotSpot(TM) 64-Bit Server VM (build 20.4-b02, mixed mode)
3. Hadoop集群:5台机器,1个NameNode,4个DataNode,通过DNS指定域名
虚拟机名字   域名     内存  硬盘
namenode:  nn.qa.com   1G  2G+16G
datanode1: dn0.qa.com 1G  2G+16G
datanode2: dn1.qa.com  1G  2G+16G
datanode3: dn2.qa.com  1G  2G+16G
datanode4: dn3.qa.com  1G  2G+16G
挂载硬盘16G
1. mkfs.ext4 -j /dev/xvdb
2. mkdir /hadoop
3. mount /dev/xvdb /hadoop
4. vi /etc/fstab

    /dev/xvdb /hadoop ext4 noatime 0 1
创建hadoop账号和组
1. groupadd hadoop
2. useradd hadoop -g hadoop;
3. passwd hadoop
4. mkdir /home/hadoop
5. chown -R hadoop:hadoop /home/hadoop
创建hadoop工作目录
1. mkdir /hadoop/conan/data0
2. chown -R hadoop:hadoop /hadoop/conan/data0

配置ssh及密码

nn.qa.com:
  1. su hadoop
  2. ssh-keygen -t rsa
  3. cd /home/hadoop/.ssh/
  4. cat id_rsa.pub >> authorized_keys
  5. scp authorized_keys dn0.qa.com:/home/hadoop/.ssh/

dn0.qa.com:
  1. su hadoop
  2. ssh-keygen -t rsa
  3. cd /home/hadoop/.ssh/
  4. cat id_rsa.pub >> authorized_keys
  5. scp authorized_keys dn1.qa.com:/home/hadoop/.ssh/

dn1.qa.com:
  1. su hadoop
  2. ssh-keygen -t rsa
  3. cd /home/hadoop/.ssh/
  4. cat id_rsa.pub >> authorized_keys
  5. scp authorized_keys dn2.qa.com:/home/hadoop/.ssh/

dn2.qa.com:
  1. su hadoop
  2. ssh-keygen -t rsa
  3. cd /home/hadoop/.ssh/
  4. cat id_rsa.pub >> authorized_keys
  5. scp authorized_keys dn3.qa.com:/home/hadoop/.ssh/

dn3.qa.com:
  1. su hadoop
  2. ssh-keygen -t rsa
  3. cd /home/hadoop/.ssh/
  4. cat id_rsa.pub >> authorized_keys
  5. scp authorized_keys nn.qa.com:/home/hadoop/.ssh/

nn.qa.com:
  1. su hadoop
  2. cd /home/hadoop/.ssh/
  3. scp authorized_keys dn0.qa.com:/home/hadoop/.ssh/
  4. scp authorized_keys dn1.qa.com:/home/hadoop/.ssh/
  5. scp authorized_keys dn2.qa.com:/home/hadoop/.ssh/
  6. scp authorized_keys dn3.qa.com:/home/hadoop/.ssh/

Hadoop完全分步式集群搭建

文字说明部分:

说明:本文以hadoop-0.20.2为例,与系列中其他几篇文章中的hadoop-1.0.3版本,安装和配置上是一样。

首先,我们在namenode(nn.qa.com)节点上面,下载hadoop。
修改hadoop配置文件hadoop-env.sh,hdfs-site.xml,core-site.xml,mapred-site.xml,设置master和slaves节点

把配置好的namenode(nn.qa.com)节点,用scp复制到其他4台虚拟机同样的目位置。

启动namenode(nn.qa.com)节点,
第一次启动时要先进行格式化,bin/hadoop namenode -format
启动hadoop,bin/start-all.sh
输入jps命令,可以看到所有Java的系统进程。 只要下面三个系统进程出现,SecondaryNameNode,JobTracker,NameNode,就恭喜你hadoop启动成功。
通过netstat -nl,可以检查系统打开的端口。其中包括,hdfs的9000,jobtracker的9001,namenode的web监控的50070,Map/Reduce的web监控的50030

其他的节点的测试检查是一样的,在这里就不重复说明了。

代码部分:

下载及配置hadoop

nn.qa.com:

1. cd /hadoop/conan
2. wget http://mirror.bjtu.edu.cn/apache/hadoop/common/hadoop-0.20.2/hadoop-0.20.2.tar.gz
3. tar zxvf hadoop-0.20.2.tar.gz
4. cd /hadoop/conan/hadoop-0.20.2/conf
5. vi hadoop-env.sh
    export JAVA_HOME=/etc/java-config-2/current-system-vm
6. vi hdfs-site.xml

      <configuration>
        <property>
          <name>dfs.data.dir</name>
          <value>/hadoop/conan/data0</value>
        </property>
        <property>
          <name>dfs.replication</name>
          <value>2</value>
        </property>
      </configuration>

7. vi core-site.xml 

      <configuration>
      <property>
        <name>fs.default.name</name>
        <value>hdfs://nn.qa.com:9000</value>
      </property>
      </configuration>

8. vi mapred-site.xml

      <configuration>
      <property>
        <name>mapred.job.tracker</name>
        <value>nn.qa.com:9001</value>
      </property>
      </configuration>

9. vi masters

      nn.qa.com

10. vi slaves

      dn0.qa.com
      dn1.qa.com
      dn2.qa.com
      dn3.qa.com

同步hadoop配置到其他虚拟机

  1. cd /hadoop/conan
  2. scp -r ./hadoop-0.20.2 dn0.qa.com:/hadoop/conan
  3. scp -r ./hadoop-0.20.2 dn1.qa.com:/hadoop/conan
  4. scp -r ./hadoop-0.20.2 dn2.qa.com:/hadoop/conan
  5. scp -r ./hadoop-0.20.2 dn3.qa.com:/hadoop/conan

启动namenode节点

  1. cd /hadoop/conan/hadoop-0.29.2
  2. bin/hadoop namenode -format
  3. bin/start-all.sh

检查hadoop启动是否成功

  1. jps
    9362 Jps
    7756 SecondaryNameNode
    7531 JobTracker
    7357 NameNode
    
  2. netstat -nl
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address         State      
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
    tcp        0      0 0.0.0.0:5666            0.0.0.0:*               LISTEN     
    tcp        0      0 0.0.0.0:8649            0.0.0.0:*               LISTEN     
    tcp6       0      0 :::50070                :::*                    LISTEN     
    tcp6       0      0 :::22                   :::*                    LISTEN     
    tcp6       0      0 :::39418                :::*                    LISTEN     
    tcp6       0      0 :::32895                :::*                    LISTEN     
    tcp6       0      0 192.168.1.238:9000      :::*                    LISTEN     
    tcp6       0      0 192.168.1.238:9001      :::*                    LISTEN     
    tcp6       0      0 :::50090                :::*                    LISTEN     
    tcp6       0      0 :::51595                :::*                    LISTEN     
    tcp6       0      0 :::50030                :::*                    LISTEN     
    udp        0      0 239.2.11.71:8649        0.0.0.0:*  
    

HDFS测试

文字说明部分:

hadoop环境启动成功,我们进行一下hdfs的简单测试。
通过命令在hdfs上面,创建一个目录bin/hadoop fs -mkdir /test
通过命令复制一个本地文件到hdfs文件系统中,bin/hadoop fs -copyFormLocal README.txt /test
通过命令查看刚刚上传的文件bin/hadoop fs -ls /test

代码部分:

nn.qa.com:

  1. cd /hadoop/conan/hadoop-0.29.2
  2. bin/hadoop fs -mkdir /test
  3. bin/hadoop fs -copyFormLocal README.txt /test
  4. bin/hadoop fs -ls /test
    Found 1 items
    -rw-r--r--   2 hadoop supergroup       1366 2012-08-30 02:05 /test/README.txt
    

最后,恭喜你完成了,hadoop的完成分步式安装,环境成功搭建。

继续学习,请看第二篇 RHadoop实践系列文章之RHadoop安装与使用。

注:由于两篇文章并非同一时间所写,hadoop版本及操作系统,分步式环境都略有不同。
两篇文章相互独立,请大家在理解的基础上动手实验,不要完成依赖两篇文章中的运行命令。

转载请注明出处:
http://blog.fens.me/rhadoop-hadoop/

打赏作者

This entry was posted in Hadoop实践, R语言实践

RHadoop搭建 1)    RHadoop安装 下载RHadoop相关的2个程序包: https://github.com/RevolutionAnalytics/RHadoop/wiki/Downloads rmr-3.3.1 rhdfs-1.0.8 安装依赖库: 安装上面的两个库之前,我们需要先安装这两个库的依赖库。 首先是rJava,由于我们已经配置好JDK1.8的环境,运行R CMD jav 阅读详情

相关推荐

u检验、t检验、F检验、卡方检验详细分析

要点: 一、正态分布是统计学的基础,它对于各种假设检验极其的重要,t分布,F分布,卡方分布都是基于正态分布衍生出来的,而且中心极限定理也证明了,多数分布在样本量n足够大的情况下,其样本均值服从正态分布。 二、假设检验的步骤 1 提出假设,包括无效假设H0和备择假设H1。 2 预设检验水准,一般设为0.05,概率小于0.05为小概率事件 3 选定检...

csefrfvdv的博客 5万+

hadoop学习使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、hadoop的作用?hadoop是什么?hadoop能做什么?hadoop能为我司做什么?二、hadoop的配置1.引入库2.读入数据问题及解决解决办法:1、操作Hadoop时,改变了配置文件,报错ls: Call From hadoop01/192.168.1.128 to hadoop01:9000 failed on connection总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发

weixin_43206536的博客 2394

u检验和t检验区别与联系

u检验的应用条件是:样本例数n较大或样本例数虽小但是总体标准差已知

luobogen666的博客 1万+

【转】RHadoop实践系列之一:Hadoop环境搭建

RHadoop实践系列之一:Hadoop环境搭建 RHadoop实践系列文章,包含了R语言与Hadoop结合进行海量数据分析。Hadoop主要用来存储海量数据,R语言完成MapReduce 算法,用来替代Java的MapReduce实现。有了RHadoop可以让广大的R语言爱好者,有更强大的工具处理大数据1G, 10G, 100G, TB, PB。 由于大数据所带来的单机性能问题,可能会...

weixin_34357962的博客 123

RHadoop培训 之 R基础课

RHadoop实践系列文章,包含了R语言与Hadoop结合进行海量数据分析。Hadoop主要用来存储海量数据,R语言完成MapReduce 算法,用来替代Java的MapReduce实现。有了RHadoop可以让广大的R语言爱好者,有更强大的工具处理大数据1G, 10G, 100G, TB, PB。 由于大数据所带来的单机性能问题,可能会一...

fens的博客 600

RHadoop实践系列文章

发现一个很好的博客,主要讲R与hadoop的结合的文章 RHadoop实践系列文章

独家记忆 3218

用R解析Mahout用户推荐协同过滤算法(UserCF)

RHadoop实践系列文章,包含了R语言与Hadoop结合进行海量数据分析。Hadoop主要用来存储海量数据,R语言完成MapReduce 算法,用来替代Java的MapReduce实现。有了RHadoop可以让广大的R语言爱好者,有更强大的工具处理大数据1G, 10G, 100G, TB, PB。 由于大数据所带来的单机性能问题,可能会一...

fens的博客 251

RHadoop搭建(HBase)

* 实验环境: ************************************************************************************** hadoop集群(virtualBox虚拟机,CentOS6.4) hadoop1 1...

chuozhi7142的博客 415

HadoopRHadoop的初步尝试

http://chen.yi.bo.blog.163.com/blog/static/1506211092012720111910827/ 跑步归来写个日记。最近在学习Hadoop的使用,起初是写一点Hive的统计脚本,后来觉得不了解Hadoop的机制就没办法对脚本做优化,所以就硬着头皮开始学习。众所周知我是个计算机小白,直接上集群操作的话总担心把机器搞坏掉,于是我就冒着较小的风险把我工作电脑的

四纪启悟 · 数据科学 1248

RHadoop实践系列之三 R实现MapReduce的协同过滤算法

RHadoop实践系列文章,包含了R语言与Hadoop结合进行海量数据分析。Hadoop主要用来存储海量数据,R语言完成MapReduce 算法,用来替代Java的MapReduce实现。有了RHadoop可以让广大的R语言爱好者,有更强大的工具处理大数据1G, 10G, 100G, TB, PB。 由于大数据所带来的单机性能问题,可能会一...

fens的博客 457

Linux系统,Hadoop,R语言,RHadoop的安装

linux下R语言与Hadoop的集成

Nothingishere的博客 2616

RHadoop(一)

Hadoop主要用来存储海量数据,R语言完成MapReduce 算法,用来替代Java的MapReduce实现。有了RHadoop可以让广大的R语言爱好者,有更强大的工具处理大数据1G, 10G, 100G, TB, PB。 由于大数据所带来的单机性能问题,可能会一去不复返了。 最近的一本新书Big Data Analytics with R and Hadoop是关于R和Hadoop实践的第一本图

慧子的博客 2176

RHadoop搭建(HDFS+MapReduce)

* 实验环境: ********************************************************************************* hadoop集群(virtualBox虚拟机,CentOS6.4) hadoop1 192.16...

chuozhi7142的博客 197

RHadoop安装与使用

RHadoop实践系列文章,包含了R语言与Hadoop结合进行海量数据分析。Hadoop主要用来存储海量数据,R语言完成MapReduce 算法,用来替代Java的MapReduce实现。有了RHadoop可以让广大的R语言爱好者,有更强大的工具处理大数据。1G, 10G, 100G, TB,PB 由于大数据所带来的单机性能问题,可能会一去联复返了。 RHadoop实践是一套系列文章,主要包

古韦的专栏 1337

RHadoop实践系列之四 rhbase安装与使用

RHadoop实践系列文章,包含了R语言与Hadoop结合进行海量数据分析。Hadoop主要用来存储海量数据,R语言完成MapReduce 算法,用来替代Java的MapReduce实现。有了RHadoop可以让广大的R语言爱好者,有更强大的工具处理大数据1G, 10G, 100G, TB, PB。 由于大数据所带来的单机性能问题,可能会一...

fens的博客 534

RHadoop实践系列之二:RHadoop安装与使用

RHadoop实践系列文章,包含了R语言与Hadoop结合进行海量数据分析。Hadoop主要用来存储海量数据,R语言完成MapReduce 算法,用来替代Java的MapReduce实现。有了RHadoop可以让广大的R语言爱好者,有更强大的工具处理大数据1G, 10G, 100G, TB, PB。 由于大数据所带来的单机性能问题,可能会一...

fens的博客 1091
上一篇: RHadoop实践系列之二:RHadoop安装与使用
下一篇: 四大招聘网站 微博推广比拼
Fens
博客等级 码龄25年 126粉丝 277原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值