hadoop 学习之(一)搭建环境

来源:互联网 发布:脍炙人口的网络歌曲 编辑:程序博客网 时间:2024/06/05 16:20
  • 环境说明
    • 系统:centos 6.5
    • hadoop:2.7.1
    • JDK:1.7
    • 虚拟机3台(1台 namenode;2台 datanode)
  • 环境准备(可选)
    准备了3台虚拟机,1台 namenode,叫 master;2台 datanode,分别叫 slave1 和 slave2。
    • 修改主机名称
      命令:vi /etc/sysconfig/network,修改 HOSTNAME=master(其他两台机器请自行修改成 slave1 和 slave2)。
    • IP 与主机名映射
      命令:vi /etc/hosts,增加3行:
      192.168.182.128 master
      192.168.182.129 slave1
      192.168.182.130 slave2
      注:其中的 ip 为 主机名对应机器的ip(ip使用 ifconfig 命令查看)。
      其他两台机器,做相同修改。
    • 增加组、用户
      – groupadd hadoopGrp #增加组
      – useradd hadoop -g hadoopGrp #增加用户 hadoop,并将用户分配到组 hadoopGrp 中
      – passwd hadoop #修改用户登录密码
      其他两台机器,做相同修改。
    • 创建文件夹 files,并将 hadoop 和 jdk 通过 ftp 上传到该目录下
      ## 请退出 root 用户,用 hadoop 用户登录
      – mkdir files
      – 请自行通过 ftp 工具,将文件上传到该目录下
      其他两台机器,做相同修改(或使用 scp 命令直接传输文件)。
    • 安装 JDK
      – su - root ## 切换 root 用户
      – [root@master ~]# rpm -ivh /home/hadoop/files/jdk-7u80-linux-x64.rpm ##安装 jdk
      Preparing… ########################################### [100%]
      1:jdk ########################################### [100%]
      Unpacking JAR files…
      rt.jar…
      jsse.jar…
      charsets.jar…
      tools.jar…
      localedata.jar…
      jfxrt.jar…
      – [root@master source]# rpm -ql jdk ## 查看 jdk 安装路径
      …….
      /usr/java/jdk1.7.0_80/src.zip
    • 配置环境变量
      – [root@master ~]# vi /etc/profile ##在文件最后增加 2 行,jdk 的目录是上面你自己机器加粗的部分。
      JAVA_HOME=/usr/java/jdk1.7.0_80
      export JAVA_HOME
      – [root@master ~]# source /etc/profile
      – [root@master ~]# echo $JAVA_HOME
      其他两台机器做相同修改。
  • hadoop 配置
    • 免密码登录
      ## hadoop 用户
      [hadoop@master ~] $ ssh-keygen -t dsa -P ” -f ~/.ssh/id_dsa
      [hadoop@master ~]$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
      [hadoop@master ~]$ chmod 0600 ~/.ssh/authorized_keys ## 这步特别重要,否则不能免密码登录
    • 创建 .ssh 文件夹
      ## hadoop 用户,在 slave1 和 slave2 机器上创建
      – [hadoop@slave1 ~]$ mkdir /home/hadoop/.ssh
      – [hadoop@slave2 ~]$ mkdir /home/hadoop/.ssh
    • 复制 master 公开密码,到 slave1 和 slave2 机器上
      –[hadoop@master .ssh]$ scp ./authorized_keys hadoop@slave1:~/.ssh/
      hadoop@slave1’s password:
      authorized_keys
      –[hadoop@master .ssh]$ scp ./authorized_keys hadoop@slave2:~/.ssh/
      hadoop@slave1’s password:
      authorized_keys
  • 解压 hadoop 文件
    ## hadoop 用户
    – [hadoop@master ~]$ cd /home/hadoop/files/
    – [hadoop@master source]$ tar -xvf hadoop-2.7.1.tar.gz
    – [hadoop@master source]$ mv hadoop-2.7.1 hadoop
    其他两台机器做相同操作。
  • 配置 namenoe 地址
    ## hadoop 用户
    – [hadoop@master hadoop]$ vi /home/hadoop/files/hadoop/etc/hadoop/core-site.xml
<configuration>    <property>        <name>fs.defaultFS</name>        <value>hdfs://master:9000</value>    </property></configuration>

– [hadoop@master hadoop]$ scp /home/hadoop/files/hadoop/etc/hadoop/core-site.xml hadoop@slave1:/home/hadoop/files/hadoop/etc/hadoop/
– [hadoop@master hadoop]$ scp /home/hadoop/files/hadoop/etc/hadoop/core-site.xml hadoop@slave2:/home/hadoop/files/hadoop/etc/hadoop/

  • 设置 namenode 和 datanode 目录
    – [hadoop@master hadoop]$ vi /home/hadoop/files/hadoop/etc/hadoop/hdfs-site.xml
<configuration>    <property>        <name>dfs.namenode.name.dir</name>        <value>/home/hadoop/files/hadoop/data/namenode</value>    </property>    <property>        <name>dfs.datanode.data.dir</name>        <value>/home/hadoop/files/hadoop/data/datanode</value>    </property></configuration>
  • 配置 slave 机器
    – [hadoop@master hadoop]$ vi etc/hadoop/slaves #增加两行
    slave1
    slave2

  • 配置 JAVA_HOME
    – [hadoop@master hadoop]$ vi etc/hadoop/hadoop-env.sh #修改成以下内容,大约在文件 25 行
    export JAVA_HOME=/usr/java/jdk1.7.0_80 ## 配置成自己机器的 jdk 安装路径
    其他两台机器做相同操作。

  • 格式化 namenode
    – [hadoop@master hadoop]$ /home/hadoop/files/hadoop/bin/hdfs namenode -format
    – 启动 namenode
    – [hadoop@master hadoop]$ /home/hadoop/files/hadoop/sbin/start-dfs.sh

  • 查看 namenode
    – 浏览器访问: http://192.168.182.128:50070/ #192.168.182.128 为 master 机器的 ip

上面的地址可能访问不了,因为 linux 的端口没有开放。此处为了方便,只能关闭了防火墙。
## root 用户
- [root@master ~]# /etc/init.d/iptables stop #上面的地址就可以了
## 可以看到 namenode 里有两个 datanode,分别叫 slave1 和 slave2
这里写图片描述

此时, hadoop 的环境就已经搭好了。

  • 停止 namenode
    – [hadoop@master hadoop]$ /home/hadoop/files/hadoop/sbin/stop-dfs.sh

因为怕读者不知道当前目录的位置,固采用绝对路径。如果读者清楚当前路径,采用相对路径即可。

0 0