简介:

Hadoop是处理大数据的主要工具,其核心部分是HDFS、MapReduce。为了学习的方便,我在虚拟机上搭建了一个伪分布式环境,来进行开发学习。

一、安装前准备:

1)linux服务器:Vmware 上CentOS6.4 mini安装

2) JDK:jdk-7u65-linux-x64.gz

3) SSH:ssh client

4) YUM源配置妥当:yum list查看

5)Hadoop:hadoop-2.5.2.tar.gz

下载地址:http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.5.2/hadoop-2.5.2.tar.gz

二、环境配置

1)linux环境基本设置:

vi /etc/sysconfig/network
编辑HOSTNAME=Master
 
vi /etc/hosts
#添加
本机IP地址   Master
 
#关闭防火墙iptables,并设置为开机不启动
service iptables stop
chkconfig iptables off
 
2)JDK的安装配置
#将jdk解压到指定目录/opt/java
mkdir /opt/java
tar -zxvf jdk-7u65-linux-x64.gz -C /opt/java
 
#配置环境变量
vi /etc/profile
#在文件最后添加以下内容
export JAVA_HOME=/opt/java/jdk1.7.0_65
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
#保存退出,立即生效该配置文件
source /etc/profile
#查看java是否配置好
java -version

重启系统,接下来是配置ssh无密码登陆。配置这个的理由是在启动hadoop可以不用输入密码。

3)配置SSH无密码登录

vi /etc/ssh/sshd_config
#以下4行的注释需要打开
HostKey /etc/ssh/ssh_host_rsa_key
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
 
#保存,并重启sshd
 
service sshd restart
 
#生成免登陆秘钥
ssh-keygen -t rsa
#一路回车就行。之后会在当前登陆用户主目录中的.ssh文件夹里生成2个文件。
#进入.ssh目录。
cat id_rsa.pub >> authorized_keys
 
#现在可以用ssh无密码登陆系统了。
ssh localhost
 
PS:如果提示出错,则是没有安装SSH客户端导致的
yum list|grep ssh
#找到ssh客户端
yum install -y ssh客户端名称
 
三、Hadoop安装与配置
1)上传
通过ftp将下载的hadoop安装包(hadoop-2.5.2.tar.gz)上传到/tmp目录下
2)解压
将hadoop安装包解压到指定目录下
mkdir /opt/hadoop
tar -zxvf hadoop-2.5.2.tar.gz -C /opt/hadoop
3)  配置环境变量
vi /etc/profile
#在文件最后添加以下内容

export HADOOP_HOME=/usr/hadoop-2.5.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS=-Djava.library.path=$HADOOP_HOME/lib

#保存,并执行source /etc/profile

#cd $HADOOP_HOME,看能否进入hadoop的home目录
 
4)配置Hadoop
#Hadoop配置文件放在:$HADOOP_HOME/etc/hadoop
#Hadoop主要配置五个文件:hadoop_env.sh,core_site.sh,hdfs_site.xml,mapred-site.xml,yarn-site.xml
 
#创建hadoop的name与data目录
mkdir -p /usr/hdfs/name
mkdir -p /usr/hdfs/data
mkdir -p /usr/tmp
 
#hadoop_env.sh
vi hadoop_env.sh
#配置export JAVA_HOME的目录
 
#core_site.sh
vi core_site.sh
#在configuration节点里面加入以下配置,Master也为为本地ip地址
<property>
      <name>hadoop.tmp.dir</name>
      <value>/usr/tmp</value>
      <description>A base for other temporary directories.</description>
  </property>
<!--file system properties-->
  <property>
      <name>fs.defaultFS</name>
      <value>Master:9000</value>
  </property>
 
#hdfs_site.xml
vi hdfs_site.xml
#同样在configuration节点里面加入以下配置,配置分片数和namenode和datanode的目录
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/hdfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/hdfs/data</value>
    </property>
 
#mapred-site.xml
#从模板复制一份mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
#同样在configuration节点里面加入以下配置,因为从0.23.0版本开始,就用新的mapreduce框架YARN来代替旧的框架了,所以,这里要配置成yarn
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
 
#yarn-site.xml
vi yarn-site.xml
#同样在configuration节点里面加入以下配置,注意使用Master或者本机的ip地址
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <description>The address of the applications manager interface in the RM.</description>
    <name>yarn.resourcemanager.address</name>
    <value>Master:18040</value>
  </property>
  <property>
    <description>The address of the scheduler interface.</description>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>Master:18030</value>
  </property>
  <property>
    <description>The address of the RM web application.</description>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>Master:18088</value>
  </property>
  <property>
    <description>The address of the resource tracker interface.</description>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>Master:8025</value>
  </property>
 至此,就将Hadoop的基本环境配置好了,现在可以开始我们的Hadoop之旅了!
 
四、Hadoop启动
1)HDFS格式化
#在启动Hadoop之前,我们需要先将HDFS的namenode格式化
输入命令:hadoop namenode -format
 
2)启动Hadoop,这几个sh文件在$HADOOP_HOME/sbin
启动命令:
start-dfs.sh
start-yarn.sh
 
停止命令:
stop-dfs.sh
stop-yarn.sh
 
3) 查看启动状况
#我们通过java自带的命令来查看
jps
#我们可以看到6个进程
9293 Jps
5762 ResourceManager
4652 NameNode
5850 NodeManager
4907 SecondaryNameNode
4733 DataNode
至此,我们就将Hadoop启动起来了!
我们可以通过浏览器来查看,打开浏览器输入  http://Master的IP:50070  与  http://Master的IP:8088  验证安装。
 
五、测试Hadoop

#通过运行hadoop自带的wordcount来验证安装是否正确。

#进入hadoop安装的目录,输入以下命令。

mkdir example
cd example
 
#编辑file1.txt与file2.txt
vi file1.txt
hellozhmsdd
hello hadoop
hello cz

vi file2.txt

hadoop is ok

hadoop is newbee
hadoop 2.5.2
#拷贝fiel1和file2到输入目录:data目录下
cd ..
hadoop fs -mkdir /data
hadoop fs -put -f example/file1.txt example/file2.txt /data
#进入HADOOP_HOME目录,运行wordcount例子
hadoop jar ./share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.5.2-sources.jar org.apache.hadoop.examples.WordCount /data /output
#查看运行结果
hadoop fs -cat /output/part-r-00000
#结果如下:
2.5.2   1
cz      1
hadoop  4
hello   3
is      2
newbee  1
ok      1
zhm     1
到这里,环境就已经配置好了,下面就是搞使用Maven开发Hadoop项目了。

CentOS5.4 搭建Hadoop2.5.2伪分布式环境的更多相关文章

  1. 在Win7虚拟机下搭建Hadoop2.6.0伪分布式环境

    近几年大数据越来越火热.由于工作需要以及个人兴趣,最近开始学习大数据相关技术.学习过程中的一些经验教训希望能通过博文沉淀下来,与网友分享讨论,作为个人备忘. 第一篇,在win7虚拟机下搭建hadoop ...

  2. ubuntu14.04搭建Hadoop2.9.0伪分布式环境

    本文主要参考 给力星的博文——Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04 一些准备工作的基本步骤和步骤具体说明本文不再列出,文章中提到的“见参考”均指以上 ...

  3. Hadoop2.5.0伪分布式环境搭建

    本章主要介绍下在Linux系统下的Hadoop2.5.0伪分布式环境搭建步骤.首先要搭建Hadoop伪分布式环境,需要完成一些前置依赖工作,包括创建用户.安装JDK.关闭防火墙等. 一.创建hadoo ...

  4. 32位Ubuntu12.04搭建Hadoop2.5.1完全分布式环境

    准备工作 1.准备安装环境: 4台PC,均安装32位Ubuntu12.04操作系统,统一用户名和密码 交换机1台 网线5根,4根分别用于PC与交换机相连,1根网线连接交换机和实验室网口 2.使用ifc ...

  5. OS X Yosemite下安装Hadoop2.5.1伪分布式环境

    最近开始学习Hadoop,一直使用的是公司配好的环境.用了一段时间后发现对Hadoop还是一知半解,故决定动手在本机上安装一个供学习研究使用.正好自己用的是mac,所以没啥说的,直接安装. 总体流程 ...

  6. Ubuntu15.10下Hadoop2.6.0伪分布式环境安装配置及Hadoop Streaming的体验

    Ubuntu用的是Ubuntu15.10Beta2版本,正式的版本好像要到这个月的22号才发布.参考的资料主要是http://www.powerxing.com/install-hadoop-clus ...

  7. 搭建Hadoop2.6.4伪分布式

    准备工作 操作系统 CentOS 7 软件环境 JDK 1.7.0_79 下载地址 SSH,正常来说是系统自带的,若没有请自行搜索安装方法 关闭防火墙 systemctl stop firewalld ...

  8. Docker中搭建Hadoop-2.6单机伪分布式集群

    1 获取一个简单的Docker系统镜像,并建立一个容器. 1.1 这里我选择下载CentOS镜像 docker pull centos 1.2 通过docker tag命令将下载的CentOS镜像名称 ...

  9. hadoop2.4.1伪分布式环境搭建

    注意:所有的安装用普通哟用户安装,所以首先使普通用户可以以sudo执行一些命令: 0.虚拟机中前期的网络配置参考: http://www.cnblogs.com/qlqwjy/p/7783253.ht ...

随机推荐

  1. 移动端接口:java写get方式访问数据(springmvc+spring。。。)

    很多时候,一个问题想明白,找对点了再去问,这样被问的人也知道怎么给你讲,你也听的明白. 就比如做移动端接口,上去就问 怎么弄接口呀,其实是没找到主要的点上,所以不知道怎么弄,那个点就是手机接口是干嘛的 ...

  2. easyui DataGrid 工具类之 TableUtil class

    import java.lang.reflect.InvocationTargetException;import java.util.ArrayList;import java.util.HashM ...

  3. SpringMVC框架下实现JSON(类方法中回传数据到jsp页面,使用jQuery方法回传)

    JSON的实现,即将需要的数据回传到jsp页面: 1>.加入实现Json的三个架包到lib中:2>.目标方法上边加入注解,需要返回的值3>.在jsp页面中书写jQuery方法: ec ...

  4. mysqli链接数据库:面向对象

    $mysqli = new mysqli('localhost','root','123','test');//检查连接是否成功if (mysqli_connect_error()){ //注意mys ...

  5. JavascriptExecutor

    Why we use it?To enhance the capabilities of the existing scripts by performing javascript injection ...

  6. Git 笔记整理3

    1,git clone某一个分支 git clone -b <branch> <remote_repo> 2,.git 文件太大 :clone的时候,可以指定深度,如下,为1即 ...

  7. vue.js存储--localStorage

    //list例子:绑定从localStorage中读取的数据,动态添加list并监听将数据变化存储在localStorage中,绑定点击事件改变样式, 页面 data数据: input_name:'' ...

  8. 没人能阻止你,除了你自己——Keep up the good work!

    今天在网上搜索一些关于计算机专业的论坛或者博客,于是发现了博客园,就进来了.我想把我的一些关于计算机科学与技术领域的学习经历纪录在此,以便于能和大家一起分享,一起努力,一起进步.说实话我是临床医学专业 ...

  9. android学习之路--------intent

    正式开始学习android,没有看书和视频,所以没有系统的学,只是看到哪个知识点就去学习,今天学习界面之间的跳转,以及传值,主要的知识点是intent, @Override protected voi ...

  10. kafka使用getOffsetsBefore()获取获取offset异常分析

    根据时间戳获取kafka的topic的偏移量,结果获取的偏移量量数据组的长度为0,就会出现如下的数组下标越界的异常,实现的原理是使用了kafka的getOffsetsBefore()方法: Excep ...