hadoop集群 虚拟机配置

三台 ubuntu 14.04 32bit 机器配置

/etc/hostname修改主机名

三台机器如下

ip 主机名 用户 用户组
192.168.226.128 vm2 hadoop hadoop
192.168.226.129 vm3 hadoop hadoop
192.168.226.130 vm4 hadoop hadoop
sudo addgroup hadoop # 添加一个hadoop组

sudo adduser --ingroup hadoop hadoop

sudo gedit etc/sudoers # 将hadoop组加入到sudoer

在root ALL=(ALL) ALL后 
hadoop ALL=(ALL) ALL

vm2 作为mater; vm3、vm4作为slave

  • 三台机器的/etc/hosts 配置DNS,确保能相互访问

这里写图片描述

ssh 无密码登录

vm2机器上

sudo apt-get install openssh-server

cd ~/.ssh
ssh-keygen -t rsa
cat id_dsa.pub >> authorized_keys

ssh-copy-id vm3
ssh-copy-id vm4
或者
scp authorized_keys hadoop@vm3:~/.ssh/
scp authorized_keys hadoop@vm4:~/.ssh/

这样 vm2 可以无密码ssh访问 vm2, vm3, vm4

同理可以实现vm3,vm4 无密码访问其他机器

jdk,hadoop 环境搭建

配置好vm2,然后scp jdk,hadoop到 vm3,vm4中

  • 环境变量设置 /etc/profile
export JAVA_HOME=/home/hadoop/java/jdk1.8.0_151
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

export HADOOP_HOME=/home/hadoop/hadoop/hadoop-2.7.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$HADOOP_HOME/bin:$PATH

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

jdk直接官网下载

hadoop下载如下
http://archive.apache.org/dist/hadoop/core/

  • 有一个32bit lib库问题, 需要用32bit的替换64bit的 hadoop库文件

下载32bit的进行替换

http://download.csdn.net/download/lsyangmx600/9734055

启动hadoop测试务必确保 namenode等都启动起来

这里写图片描述

hadoop 配置文件修改

  • hadoop-evn.sh 修改JAVA_HOME如下
# The java implementation to use.
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/home/vm2/java/jdk1.8.0_151
  • core-site.xml
<configuration>
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://vm2:9000</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/hadoop/hadoop/tmp</value>
    </property>
    <property>
        <name>hadoop.security.authorization</name>
        <value>false</value>
    </property>
</configuration>
  • hdfs-site.xml
<configuration>
<property>  
                <name>dfs.namenode.secondary.http-address</name>  
               <value>vm2:9001</value>  
       </property>  
     <property>  
             <name>dfs.namenode.name.dir</name>  
             <value>file:/home/hadoop/hadoop/dfs/name</value>  
       </property>  
      <property>  
              <name>dfs.datanode.data.dir</name>  
              <value>file:/home/hadoop/hadoop/dfs/data</value>  
       </property>  
       <property>  
               <name>dfs.replication</name>  
               <value>2</value>  
        </property>  
        <property>  
                 <name>dfs.webhdfs.enabled</name>  
                  <value>true</value>  
         </property>  
</configuration>
  • mapred-site.xml
<configuration>
<property>                                                                    
        <name>mapreduce.framework.name</name>  
                <value>yarn</value>  
           </property>  
          <property>  
                  <name>mapreduce.jobhistory.address</name>  
                  <value>vm2:10020</value>  
          </property>  
          <property>  
                <name>mapreduce.jobhistory.webapp.address</name>  
                <value>vm2:19888</value>  
       </property>  
</configuration>
  • yarn-site.xml
<configuration>

<!-- Site specific YARN configuration properties -->
<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>  
        <property>  
               <name>yarn.resourcemanager.address</name>  
               <value>vm2:8032</value>  
       </property>  
       <property>  
               <name>yarn.resourcemanager.scheduler.address</name>  
               <value>vm2:8030</value>  
       </property>  
       <property>  
            <name>yarn.resourcemanager.resource-tracker.address</name>  
             <value>vm2:8031</value>  
      </property>  
      <property>  
              <name>yarn.resourcemanager.admin.address</name>  
               <value>vm2:8033</value>  
       </property>  
       <property>  
               <name>yarn.resourcemanager.webapp.address</name>  
               <value>vm2:8088</value>  
       </property>  
</configuration>
  • hadoop集群开启

启动前清空logs, tmp , dfs/name, dfs/data等文件夹

hadoop namenode -format

./sbin/start-all.sh


这里写图片描述

集群环境检测

jps 查看各台机器

vm2 有namenode
vm3,vm4有datanode

vm2浏览器打开 vm2:50070,live nodes数目为2


这里写图片描述
vm3,vm4


这里写图片描述


添加文件,查看,datanode

fs -ls hdfs://vm2:9000/

fs -mkdir hdfs://vm2:9000/mydata

fs -put in.txt hdfs://vm2:9000/mydata


这里写图片描述

相关文章
相关标签/搜索