一、安装JDK

  1、用户可以在Oracle JDK的官网下载相应版本的JDK,本例以JDK 1.6为例,官网地址为http://www.oracle.com/tech-network/java/javase/downloads/index.html。

  2、配置环境变量,在/etc/profile增加以下代码。  



1 #Seeting JDK JDK环境变量
2 export JAVA_HOME=/opt/java/jdk/jdk1.7.0_79
3 export JRE_HOME=${JAVA_HOME}/jre
4 export CLASSPATH=${JAVA_HOME}/lib
5 export PATH=${JAVA_HOME}/bin:$PATH



  输入java -version命令查看是否安装成功

  

hadoop安装完成之后测试 hadoop是否安装成功_大数据

二、配置SSH

  一般linux系统都自带了SSH服务,如果没有SSH服务需要自己安装

  1、查看是否安装SSH: ps -e | grep ssh

    

hadoop安装完成之后测试 hadoop是否安装成功_java_02

    如果没有显示sshd,说明没有安装ssh服务

  2、通过 “sudo apt-get install openssh-server” 安装   



$ sudo apt-get install openssh-server
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
 
下列软件包有未满足的依赖关系:
 openssh-server : 依赖: openssh-client (= 1:6.6p1-2ubuntu1)
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。



这是因为,openssh-server是依赖于openssh-clien的,那ubuntu不是自带了openssh-client吗?原由是自带的openssh-clien与所要安装的openssh-server所依赖的版本不同,这里所依赖的版本是1:6.6p1-2ubuntu1,所以要安装对应版本的openssh-clien,来覆盖掉ubuntu自带的。  



$ sudo apt-get install openssh-client=1:6.6p1-2ubuntu1
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
建议安装的软件包:
  libpam-ssh keychain monkeysphere
下列软件包将被【降级】:
  openssh-client
升级了 0 个软件包,新安装了 0 个软件包,降级了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
需要下载 566 kB 的软件包。
解压缩后会消耗掉 0 B 的额外空间。
您希望继续执行吗? [Y/n] y
获取:1 http://cn.archive.ubuntu.com/ubuntu/ trusty/main openssh-client amd64 1:6.6p1-2ubuntu1 [566 kB]
下载 566 kB,耗时 2秒 (212 kB/s)        
dpkg:警告:downgrading openssh-client from 1:6.6p1-2ubuntu2 to 1:6.6p1-2ubuntu1
(正在读取数据库 ... 系统当前共安装有 200015 个文件和目录。)
Preparing to unpack .../openssh-client_1%3a6.6p1-2ubuntu1_amd64.deb ...
Unpacking openssh-client (1:6.6p1-2ubuntu1) over (1:6.6p1-2ubuntu2) ...
Processing triggers for man-db (2.6.7.1-1) ...
正在设置 openssh-client (1:6.6p1-2ubuntu1) ...



 可以看到,提示了系统中openssh-client被降级,这样再安装openssh-server就可以成功了!

  3、查看SSH 目录 /etc/ssh 下是否有密钥文件

  

hadoop安装完成之后测试 hadoop是否安装成功_hadoop_03

  如果没有这两个文件,需要自己生成。输入以下命令。  



#ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
#ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key



  生成密钥文件时,会提示输入密码,这里我们不输入密码,默认按回车

  可以用“passwd 用户” 来修改ssh的登录密码。

  4、启动ssh    



/etc/init.d/ssh status 查看ssh状态 
/etc/init.d/ssh start  启动ssh
/etc/init.d/ssh restart 重启ssh



  5、测试ssh 是否安装成功

  

hadoop安装完成之后测试 hadoop是否安装成功_java_04

三、配置SSH免密码登录

  1、输入 ssh-keygen  -t rsa



$ssh-keygen  -t rsa 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/*回车,设置默认路径*/
Enter passphrase (empty for no passphrase):
/*回车,设置空密码*/
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

如果是root用户,则在/root/.ssh/目录下生成一个私钥id_rsa和一个公钥id_rsa.pub。



  2、将id_rsa.pub 文件 写入 authorized_keys 

          cat id_rsa.pub >> ~/.ssh/authorized_keys  

   查看 /root/.ssh目录

   

hadoop安装完成之后测试 hadoop是否安装成功_java_05

 3、装id_rsa.pub 文件发送到远程机器上

  scp id_rsa.pub root@172.20.14.144:/home

  cat /home/id_rsa.pub >> /root/.ssh/authorized_keys

  这样ssh登录远程机器就不需要密码了。

四、安装Hadoop

  1、下载安装Hadoop2.2.0

  2、解压tar包  



$ sudo tar-vxzf hadoop-2.2.0.tar.gz -C /usr/local
$ cd /usr/local
$ sudo mv hadoop-2.2.0 hadoop
$ sudo addgroup hadoop   添加hadoop组
$ sudo adduser -ingroup hadoop hadoop  添加hadoop用户
$ sudo chown -R hduser:hadoop hadoop  授权



  3、查看Hadoop包是32位还是64位

   

hadoop安装完成之后测试 hadoop是否安装成功_运维_06

  4、配置Hadoop环境变量  



$ gedit /etc/profile

export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$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_HOME/lib/native  
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"



  5、编辑配置文件

    1)、进入Hadoop所在目录/usr/local/hadoop/etc/hadoop。

core-site.xml文件



<configuration>/*这里的值指的是默认的HDFS路径*/
    <property>
        <name>fs.default.name</name><!-- 客户端用于连 HDFS端口,操作文件. -->
        <value>hdfs://master:9000</value>
    </property>
  /*缓冲区大小:io.file.buffer.size默认是4KB*/
    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
    </property><property>
        <name>hadoop.tmp.dir</name><!-- 临时文件路径-->
        <value>/home/tmp</value>
        <description>Abase for other temporary directories.       </description>
    </property>
    <property>
        <name>hadoop.proxyuser.hduser.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.hduser.groups</name>
        <value>*</value>
    </property>
</configuration>



    3)、配置hdfs-site.xml

       创建namenode和datanode目录,执行以下命令

             $ mkdir /hdfs/namenode
             $ mkdir /hdfs/datanode

       配置hdfs-site.xml文件



<configuration>
    <!--
    <property>  
         <name>dfs.namenode.rpc-address</name>  
         <value>master:9000</value>  
    </property>-->
    <!--
    <property>
    <name>dfs.namenode.http-address</name>
    <value>master:50070</value>
    <description>dfs namenode web ui 的地址 </description>        
    </property>-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:9001</value><!--???-->
    </property>
    
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/hdfs/namenode</value>
    </property>
    <!--配置datanode的数据存储目录-->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/hdfs/datanode</value>
    </property>
    <!--配置副本数-->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <!--将dfs.webhdfs.enabled属性设置为true,否则就不能使用webhdfs的LISTSTATUS、LISTFILESTATUS等需要列出文件、文件夹状态的命令,因为这些信息都是由namenode保存的-->
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
</configuration>



   4)、配置hadoop-env.sh 和 yarn-env.sh 文件

      加入环境变量:export JAVA_HOME=/opt/java/jdk/jdk1.7.0_79/

   5)、配置yarn-site.xml文件



<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>/*resourcemanager的地址*/
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
    </property>/*调度器的端口*/
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value> master:8030</value>
    </property>/*resource-tracker端口*/
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
    </property>/*resourcemanager管理器端口*/

    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
    </property>/*ResourceManager 的 Web 端口,监控 job 的资源调度*/
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>
</configuration>



   6)、配置mapred-site.xml文件     伪分布式不用配



<configuration>/*hadoop对map-reduce运行框架一共提供了3种实现,在mapred-site.xml中通过"mapreduce.framework.name"这个属性来设置为"classic"、"yarn"或者"local"*/
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>/*MapReduce JobHistory Server地址*/
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>/*MapReduce JobHistory Server Web UI地址*/
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>
</configuration>



    7)、配置masters,slaves 

      sudo gedit /usr/local/hadoop/etc/hadoop/masters 添加:localhost (或master 必须配置hosts文件)

      sudo gedit /usr/local/hadoop/etc/hadoop/slaves  添加:localhost

   8)、配置hosts 文件 (可不配置)

      gedit /etc/hosts   添加如下内容



192.168.0.161 master
192.168.0.156 slave1



   9)、格式化Namenode(在Hadoop根目录下)



 ./bin/hadoop namenode -format



   10)、启动hadoop(在hadoop根目录下)



./sbin/start-all.sh


  

hadoop安装完成之后测试 hadoop是否安装成功_hadoop_07

   11)、查看hadoop是否启动功能

  

hadoop安装完成之后测试 hadoop是否安装成功_hadoop安装完成之后测试_08

 

五、测试hadoop

  1、hadoop根目录下创建文件夹



hadoop fs -mkdir /test



  2、查看hadoop目录文件

  

hadoop安装完成之后测试 hadoop是否安装成功_hadoop安装完成之后测试_09

 

 

http://localhost:8088

http://localhost:50070

HDFS NameNode界面:http://localhost:8042

hadoop 下载地址:http://archive.apache.org/dist/hadoop/core/hadoop-2.6.0/