hadoop集群详细安装步骤(hadoop.2.7.3)

来源:互联网 发布:免费虚拟专用网络 编辑:程序博客网 时间:2024/05/21 22:40

一: 安装准备

  1. 在虚拟机VWare下安装了四个redhat操作系统,下载路径:http://pan.baidu.com/share/link?shareid=3216417135&uk=2939827074&fid=917415041364300(快速方法:安装一个,克隆3个)
    rhel-server-6.3-x86_64-dvd.iso
  2. 四个虚拟机网络互通设置
    这里写图片描述
  3. 官网下载(hadoop和jdk)
    Hadoop http://apache.fayea.com/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz?crazycache=1
    Jdk http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
  4. 新建用户和组hadoop
  5. 配置/etc/hosts文件(4个节点均要)
    这里写图片描述

二:java安装(root操作,4个节点相同步骤)

  1. 新建一个jdk的安装目录,我这里是在/usr/local/下新建了java目录,命令:mkdir /usr/local/java ,再把 jdk-7u75-linux-x64.tar.gz压缩包放置/usr/local/java目录下,命令如下:
    gunzip jdk-7u75-linux-x64.tar.gz
    tar xvf jdk-7u75-linux-x64.tar
    mv jdk1.7.0_25 jdk
  2. 解压完成后打开/etc/profile,添加JAVA环境变量:
    export JAVA_HOME=/usr/java/jdk
    export CLASSPATH=${JAVA_HOME}/lib/:${JAVA_HOME}/jre/lib
    export HADOOP_HOME=/home/hadoop/hadoop
    export PATH=$PATH:${JAVA_HOME}/bin
  3. source /etc/profile (变量生效;重启服务器也可以)
  4. java -version(各自节点能显示java信息说明安装成功)

三:ssh配置(hadoop用户配置)

  1. 在132节点(namenode)上进入cd /home/hadoop/~.ssh/,运行$ssh-keygen -t rsa(一路回车)
  2. ls -la 会生成一对秘钥(id_rsa id_rsa.pub)
  3. cp id_rsa.pub authorized_keys (这步完成后,正常情况下就可以无密码登录本机了,即ssh localhost,无需输入密码)
  4. scp authorized_keys hadoop@datanode1:/home/hadoop/.ssh ——把刚刚产生的authorized_keys文件拷一份到129(datanode1)上.  
  5. scp authorized_keys hadoop@datanode2:/home/hadoop/.ssh ——把刚刚产生的authorized_keys文件拷一份到130(datanode2)上.
  6. scp authorized_keys hadoop@datanode3:/home/hadoop/.ssh ——把刚刚产生的authorized_keys文件拷一份到131(datanode3)上.
  7. 测试 ssh datanode1 ssh datanode2 ssh datanode3是否能成功无密码登入
  8. 若测试仍需要密码登入检查下sshd服务是否开启;namenode节点上known_hosts确保配置前没有;$~/.ssh权限问题。

四:hadoop 配置(hadoop用户主节点namenode(132)操作)

  1. 使用Hadoop用户将包hadoop-2.7.3.tar.gz上传至/home/hadoop/

  2. 解压hadoop-2.7.3.tar.gz

  3. ln –fs hadoop-2.7.3 hadoop

  4. 进入hadoop将etc目录修改成conf目录

  5. Su - root用户配置/etc/profile的环境变量如下:

    export JAVA_HOME=/usr/java/jdk
    export CLASSPATH=${JAVA_HOME}/lib/
    export HADOOP_HOME=/home/hadoop/hadoop
    export PATH=$PATH:${JAVA_HOME}/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
    export HADOOP_CONF_DIR=$HADOOP_HOME/conf

  6. 配置conf目录下的/home/hadoop/hadoop/conf/hadoop-env.sh

    export JAVA_HOME=/usr/java/jdk
    export HADOOP_LOG_DIR=/home/hadoop/hadoopdir/logs
    export HADOOP_PID_DIR=/home/hadoop/hadoopdir/pids

  7. 配置core-site.xml
    这里写图片描述

  8. 配置hdfs-site.xml
    这里写图片描述
  9. 配置conf/masters、slaves(没有此文件新建)

    [hadoop@namenode conf]catmastersnamenode[hadoop@namenodeconf] cat slaves
    datanode1
    datanode2
    datanode3
    [hadoop@namenode conf]$

  10. 由于在hdfs-site.xml文件中指定相关数据、临时、日志目录在/home/hadoop/hadoopdir中,新建
    mkdir /home/hadoop/hadoopdir(注:hadoopdir子目录不需要新建,在格式化会自动创建)

  11. 复制hadoop目录至其他3个数据节点

    scp -r hadoop hadoop@datanode1:/home/hadoop/
    scp -r hadoop hadoop@datanode2:/home/hadoop/
    scp -r hadoop hadoop@datanode3:/home/hadoop/

  12. Root用户复制/etc/profile至其他三个数据节点,并行各自节点source /etc/profile使其生效
    scp /etc/profile root@datanode1:/etc/
    scp /etc/profile root@datanode1:/etc/
    scp /etc/profile root@datanode1:/etc/

  13. 格式化hadoop主节点(namenode)

    hadoop namenode –format

  14. 启动守护进程

    Start-all.sh

  15. jps查看主节点显示如下进程:

    [hadoop@namenode conf]$ jps22192 ResourceManager21854 NameNode22044 SecondaryNameNode23051 Jps[hadoop@namenode conf]$ 
  16. jps查看datanode1(2|3)

    [hadoop@datanode1 logs]$ jps

    10682 DataNode
    10784 NodeManager
    11244 Jps
    [hadoop@datanode1 logs]$

五:hadoop测试

  1. 新建目录 hadoop fs -mkdir /foodir
  2. 本地文件上传至hadoop的/foodir目录上 hadoop fs -put a.txt /foodir/
  3. 查看目录 hadoop fs -ls /foodir
  4. 查看文件内容 hadoop fs -cat /foodir/a.txt

六: 安装过程中出现的问题

问题一. 安装完能正常显示相关进程,多次查询jps进程消失,查看/home/hadoop/hadoopdir/logs下日志
发现Hadoop报错:NoRouteToHostException:No route to host

解决: 根据日志我发现使用hostname 配置的主机名与/etc/hosts内不一致,于是我修改hostname的名字
为了永久生效修改配置文件/etc/sysconfig/network
[hadoop@namenode conf]$ cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=namenode

注: 修改完重启守护进程再次报同样错,于是关掉了防火墙 service iptables stop(立即生效);chkconfig iptables off(重启后生效永久)

问题二: 在当中主节点处问题,克隆了一个数据节点的hadoop相关目录给主节点,然后格式化后报错:
ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException:
Incompatible namespaceIDs in
解决: 删除四个节点/home/hadoop/hadoopdir/目录下的所有目录,重新格式化主节点和重启守护进程
自动生成相关目录

原创粉丝点击