Ubuntu上搭建单机版Hadoop运行环境

本文详细介绍了在Ubuntu环境下安装与配置JDK及Hadoop的过程,包括下载、解压、配置环境变量等步骤,并通过MapReduce程序验证安装是否成功。

1.JDK及其环境的配置

ubuntu下JDK配置本质上和win是一样的:

1、去官网下载JDK7,找jdk-7u21-linux-i586.tar.gz并下载:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

2、解压后得到名字为jdk1.7.0_21的文件夹,将其复制到 /usr/lib/jvm下(需要新建jvm文件夹)。

        tar zvxf jdk-7u21-linux-i586.tar.gz

3、配置jdk环境变量:

在启动终端并输入

  1. sudo vi /etc/profile  

在末尾添加一下配置,保存并退出

  1. #set jdk environment  
  2. export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_21  
  3. export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH  
  4. export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH  

终端输入一下命令使配置生效

  1. source /etc/profile  

4、查看配置是否成功。在终端输入

  1. java -version  

如果显示版本是1.7.0.21则配置成功,如下显示:

  1. java version "1.7.0_21"  
  2. Java(TM) SE Runtime Environment (build 1.7.0_21-b11)  
  3. Java HotSpot(TM) Server VM (build 23.21-b01, mixed mode)  

 5.查看JAVA_HOME   ---  注意这个变量Hadoop需要使用

              echo $JAVA_HOME

             /usr/lib/jvm/java-7-openjdk-amd64


2.Hadoop安装及其环境的配置

          运行Hadoop需要JDK1.6+,记住JDK的安装目录,配置到JAVA_HOME
          这里我使用的是最新版本  Hadoop2.7
          
     1.创建一个目录hadoop,将从官网上下载的Hadoop包放到hadoop目录下并解压。
          
           tar zvxf hadoop-2.7.0.tar.gz
          说明: 我的安装路径是   /home/develop/hadoop/hadoop-2.7.0
    
 2.打开配置文件夹,配置Hadoop相关的环境变量

     

sudo vi /etc/profile
添加以下命令语句:
export HADOOP_INSTALL=/home/develop/hadoop/hadoop-2.7.0
export PATH=$PATH:$HADOOP_INSTALL/bin:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
</pre><pre name="code" class="html">wq保存并退出
source /etc/profile      --- 使之生效


说明:
         HADOOP_INSTALL    ---  类似于JAVA_HOME,指定Hadoop的安装路径,我的安装路径是: /home/develop/hadoop/hadoop-2.7.0


3.测试Hadoop是否安装成功    ----  执行Hadoop自带的MapReduce程序示例  WordCount   ---  在hadoop的share/hadoop下
     示例程序位置: 
            
/home/develop/hadoop/hadoop-2.7.0/share/hadoop/mapreduce/sources
hadoop-mapreduce-examples-2.7.0-sources.jar

运行Hadoop的MapReduce程序

1.创建需要分析的文件夹和需要存放结果输出的文件夹
                         
 /home/develop/hadoop/mydemos/test1/input/input1            ----  需要统计的单词所在文件夹位置,  运行程序后会统计,这个文件夹中所有的文件中包含的单词信息
 /home/develop/hadoop/mydemos/test1/output          ----  output用于存放MapReduce程序运行后的结果,包含统计的结果文件和成功与否的标识文件

特别注意: 
                 hadoop的的输出目录是自动生成的,不能是已存在的目录,这里你可以在output目录下,指定结果生成的目录


2.进入到hadoop-2.7.0的bin目录执行命令
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"></span><pre name="code" class="html">develop@ubuntu14-dev3:~/hadoop/hadoop-2.7.0/bin/output$ ./hadoop jar /home/develop/hadoop/hadoop-2.7.0/share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.7.0-sources.jar org.apache.hadoop.examples.WordCount /home/develop/hadoop/mydemos/test1/input/input1 /home/develop/hadoop/mydemos/test1/output/output1


 
 
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">说明:</span>
         后两个参数用于表明:1.要统计的文件所在目录,2.MapReduce程序之后的结果存放目录
3.查看结果
  
cd /home/develop/hadoop/mydemos/test1/output/output1
develop@ubuntu14-dev3:~/hadoop/mydemos/test1/output/output1$ ls
part-r-00000  _SUCCESS
<pre name="code" class="html">
part-r-00000   ---- MapReduce程序生成的结果
_SUCCESS        ---- 标识程序执行成功

 
 

3.Hadoop2.7完全分布式安装

1、安装JDK1.7+

2、SSH互信免登陆

3、/etc/profile

HADOOP_PREFIX=/opt/hadoop
JAVA_HOME=/opt/jdk1.7
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin

export HADOOP_PREFIX PATH JAVA_HOME

4、hadoop安装目录/etc/hadoop/hadoop-en.sh

export JAVA_HOME=/opt/jdk1.7
export HADOOP_COMMON_HOME=/opt/hadoop

5、编辑/etc/hosts

192.168.98.34 NameNode34
192.168.98.35 DataNode35
192.168.98.37 DataNode37
192.168.98.38 DataNode38


6.1 core-site.xml


<configuration>

<property>
  <name>hadoop.tmp.dir</name> 
  <value>/opt/hadoop/tmp</value>
  <description>A base for other temporary directories.</description>
</property>
<property>
  <name>fs.defaultFS</name>  
  <value>hdfs://NameNode34:9000</value>
</property>
<property>
  <name>io.file.buffer.size</name>  
  <value>131072</value>
</property>
</configuration>


6.2 hdfs-site.xml


<configuration>
<!--
<property>
  <name>dfs.replication</name>
  <value>3</value>
</property>
-->
<property>
  <name>dfs.namenode.name.dir</name>
  <value>file:/opt/hadoop/Name</value>
</property>
<property>
  <name>dfs.datanode.data.dir</name>
  <value>/opt/hadoop/Data</value>
</property>
<property>
  <name>dfs.blocksize</name>
  <value>268435456</value>
</property>
<property>
  <name>dfs.namenode.handler.count</name>
  <value>100</value>
</property>
</configuration>


6.3 yarn-site.xml


<configuration>

<!-- Site specific YARN configuration properties -->
<property>
  <name>yarn.acl.enable</name>
  <value>false</value>
</property>
<property>
  <name>yarn.admin.acl</name>
  <value>*</value>
</property>
<property>
  <name>yarn.log-aggregation-enable</name>
  <value>false</value>
</property>
<property>
   <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
   <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
  <property>
   <name>yarn.resourcemanager.address</name>
   <value>NameNode34:8032</value>
  </property>
  <property>
   <name>yarn.resourcemanager.scheduler.address</name>
   <value>NameNode34:8030</value>
  </property>
  <property>
   <name>yarn.resourcemanager.resource-tracker.address</name>
   <value>NameNode34:8035</value>
  </property>
  <property>
   <name>yarn.resourcemanager.admin.address</name>
   <value>NameNode34:8033</value>
  </property>
  <property>
   <name>yarn.resourcemanager.webapp.address</name>
   <value>NameNode34:8088</value>
  </property>
  <property>
   <name>yarn.resourcemanager.hostname</name>
   <value>NameNode34</value>
  </property>
<property>
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value>
</property>
</configuration>


6.4 mapred-site.xml


<configuration>
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>
 <property>
  <name>mapreduce.jobhistory.address</name>
  <value>NameNode34:10020</value>
 </property>
 <property>
  <name>mapreduce.jobhistory.webapp.address</name>
  <value>NameNode34:19888</value>
 </property>

<!--
<property>
  <name>mapreduce.framework.name</name>
  <value>1536</value>
</property>
<property>
  <name>mapreduce.map.java.opts</name>
  <value>-Xmx1024M</value>
</property>
<property>
  <name>mapreduce.reduce.memory.mb</name>
  <value>3072</value>
</property>
<property>
  <name>mapreduce.reduce.java.opts</name>
  <value>-Xmx2560M</value>
</property>
<property>
  <name>mapreduce.task.io.sort.mb</name>
  <value>512</value>
</property>
<property>
  <name>mapreduce.task.io.sort.factor</name>
  <value>100</value>
</property>
<property>
  <name>mapreduce.reduce.shuffle.parallelcopies</name>
  <value>50</value>
</property>
-->
</configuration>


7、执行 hdfs namenode -format

8、编辑 hadoop安装目录/etc/hadoop/slaves文件

localhost
DataNode35
DataNode37
DataNode38


9、执行 start-dfs.sh

10、执行 start-yarn.sh


http://NameNode:8088/ 查看yarn


http://NameNode:50070/ 查看hdfs



创建如下脚本程序

[root@db apps]# vi   scp_hadoop.sh 

脚本内容如下:

#!/bin/sh

for host in red  mongdb nginx;do

    echo $host

    scp  -r /work/apps/hadoop  sch@${host}:/work/apps/

Done

保存退出后, 修改文件的可执行属性 (chmod a+x *.sh)


   

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值