使用三台虚拟机和Hadoop3.1.0搭建集群

首先要说明一点,一下教程针对hadoop3.1.0,注意不是2.X.X!!!(本人因为版本浪费了将近三天的时间,人生观都差点崩塌了)

虚拟机这里就不过多说了,网上教程一大把,这里使用的是ubuntu系统

1、三台虚拟机启动后修改hostname

使用一下命令 sudo gedit /etc/hostname,将三台虚拟机的分别修改为master,slave1,slave2(master,node1,node2)均可自己分得清就成

修改完之后重启虚拟机,下面是修改后的效果

2、修改hosts,将三台虚拟机的ip写入

首先输入ifconfig命令,依次查看三台虚拟机的IP地址

然后 依次在三台虚拟机的命令行中输入sudo vim /etc/hosts,修改内容如图所示:

完成修改后,用下面的命令测试三台虚拟机是否可以相互ping通。

3、建立hadoop账号

为hadoop集群专门设置一个用户组及用户,命令如下

添加一个属于hadoop用户组的had_user用户,命令如下:

设置用户had_user的登录密码,命令如下:

切换到had_user用户,之后的操作都是在该用户下进行,命令如下:

上述设置需要在3台虚拟机里面都同样进行。

4、 SSH无密码验证配置

安装SSH,命令如下:

 生成公钥、私钥,命令如下:

提示输入密钥保存的路径,直接按enter键使用默认值即可,如下图:

把id_rsa.pub追加到授权的key里面去,命令如下:

 

测试是否可以用ssh无密码登录本地localhost,命令如下:

 

在另外两个节点虚拟机重复以上步骤。

5、jdk、hadoop安装

在had_user用户的根目录下创建文件夹local,jdk和hadoop都安装在这个文件夹下,命令如下:

将下载好的jdk和hadoop安装包复制到local文件夹下并解压,命令如下:

完成后,查看local目录,如图所示:

安装完之后配置jdk与hadoop的环境变量修改profile文件

输入 sudo gedit /etc/profile

配置jdk

export JAVA_HOME=/usr/local/jdk1.8.0_181

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export JRE_HOME=$JAVA_HOME/jre

PATH=$JAVA_HOME/bin:$PATH
配置hadoop

export HADOOP_HOME=/usr/local/hadoop-3.1.0 PATH=$JAVA_HOME/bin:$PATH:$HADOOP_HOME:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

修改完之后 使用 source /etc/profile 使修改的环境变量生效。

6、配置hadoop文件-----------首先切到/hadoop3.1.0/etc/hadoop下,然后使用sudo gedit XXXX来编辑这几个文件

     1  配置hadoop-env.sh

添加export JAVA_HOME=/opt/java/jdk1.8.0_172/ 

 

2 配置core-site.xml

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://servera:9000</value>

</property>

<property>

<name>io.file.buffer.size</name>

<value>131072</value>

</property>

</configuration>

 

3 配置hdfs-site.xml

 
<configuration>
 
 
<!-- Configurations for NameNode: -->
<property>
  <name>dfs.namenode.name.dir</name>
  <value>/var/lib/hadoop/hdfs/name/</value>
</property>
 
<property>
  <name>dfs.blocksize</name>
  <value>268435456</value>
</property>
 
<property>
  <name>dfs.namenode.handler.count  </name>
  <value>100</value>
</property>
 
<!-- Configurations for DataNode: -->
 
<property>
  <name>dfs.datanode.data.dir</name>
  <value>/var/lib/hadoop/hdfs/data/</value>
</property>
 
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>
 
</configuration>

 

4 配置yarn-site.xml

 
<configuration>
 
  <property>
          <name>yarn.resourcemanager.hostname</name>
          <value>servera</value>
  </property>
 
  <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
  </property>
    <property>
          <name>yarn.nodemanager.resource.memorymb</name>
          <value>800</value>
  </property>
<!-- Configurations for History Server (Needs to be moved elsewhere): -->
</configuration>

5 配置mapred-site.xml

<configuration>
    <!-- 通知框架MR使用YARN -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>  
        <name>mapreduce.application.classpath</name>  
        <value>  
        /opt/hadoop/hadoop-3.1.0/etc/hadoop,  
        /opt/hadoop/hadoop-3.1.0/share/hadoop/common/*,  
        /opt/hadoop/hadoop-3.1.0/share/hadoop/common/lib/*,  
        /opt/hadoop/hadoop-3.1.0/share/hadoop/hdfs/*,  
        /opt/hadoop/hadoop-3.1.0/share/hadoop/hdfs/lib/*,  
        /opt/hadoop/hadoop-3.1.0/share/hadoop/mapreduce/*,  
        /opt/hadoop/hadoop-3.1.0/share/hadoop/mapreduce/lib/*,  
        /opt/hadoop/hadoop-3.1.0/share/hadoop/yarn/*,  
        /opt/hadoop/hadoop-3.1.0/share/hadoop/yarn/lib/*  
        </value>  
    </property>
</configuration>


 6 配置workers

slave1

slave2

猜你喜欢

转载自blog.csdn.net/Mr_wuliboy/article/details/85254667