在VMware虚拟机上分布式安装Hadoop架构(2)——Master节点的hadoop安装配置

0、主要参考教程

1 、厦门大学数据库实验室
2、JeffreyZhou的博客园

00 大概步骤

1、在 Master 节点上配置 hadoop 用户、安装 SSH server、安装 Java 环境
2、在 Master 节点上安装 Hadoop,并完成配置
3、在其他 Slave 节点上配置 hadoop 用户、安装 SSH server、安装 Java 环境
4、将 Master 节点上的 /usr/local/hadoop 目录复制到其他 Slave 节点上
5、在 Master 节点上开启 Hadoop

2.1 安装Hadoop

  • 下载Hadoop 2 可以直接通过链接 http://mirror.bit.edu.cn/apache/hadoop/common/ 或者 http://mirrors.cnnic.cn/apache/hadoop/common/ 下载,本例中选择的是2.7.6版本,以前下啥都选最新的,后来发现,用起来到处是问题,连找解决办法都找不到,别人不用你有啥招,所以现在基本选择最新版本的前2-3版。。。
  • 将下载的Hadoop文件(其实就是一个tar.gz压缩包),安装到系统中(其实就是解压缩到指定目录)
# 解压到/usr/local目录下
$ sudo tar -zxf ~/Downloads/hadoop-2.7.6.tar.gz -C /usr/local   
# 将hadoop-2.7.6文件夹改名为hadoop,方便后续操作
$ sudo mv ./hadoop-2.7.6/ ./hadoop
$ sudo chown -R hadoop ./hadoop # 修改权限,前一个hadoop是指hadoop用户

上面解个压缩就算是“安装”成功啦,比Windows还是要方便很多的吧,可以测试一下是否成功。

$ cd /usr/local/hadoop
$ ./bin/hadoop version

2.2 配置PATH环境变量

  • 在上述安装完成后,安装过JDK(特别是不止一次的同学)应该就可看出,Hadoop的执行命令都在HADOOP_HOME/bin/目录下,为方便后续操作,将其加入环境变量。
  • 但与JDK的环境变量不同,本例中将HADOOP_HOME加入~/.bashrc文件中,关于这两个文件设置环境变量的不同之处,可以参见

设置Linux环境变量的方法和区别 – 厦大数据库实验室博客

~/。bashrc内容

然后让该环境变量生效$ source ~/.bashrc

2.3 Hadoop单机配置

安装完默认就是单机配置,此时可以利用Hadoop附带的栗子来尝试一下,顺便测试一下前期工作是否正确。在HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar文件中,包含了最常见最经典的WordCount例子,来随便试一下

$ cd ~
$ mkdir input
$ cd /usr/local/hadoop   # 转到Hadoop_home目录下
$ ./bin/hadoop jar ./share/hadoop/mapreduce//hadoop-mapreduce-examples-*.jar grep ./input ./output 'hello world,hello hadoop'

成功执行后,可以看到以下信息:
wordcount运行成功

$ cat ./output/*查看执行结果
注: Hadoop 默认不会覆盖结果文件,因此再次运行上面实例会提示出错,需要先将 ./output 文件夹删除,否则会报错。

2.4 主节点分布式配置

  1. 配置文件都在HADOOP_HOME/etc/hadoop/文件夹里

  2. 文件slaves,将作为 DataNode 的主机名写入该文件,每行一个,默认为 localhost,此时我们打算配置三个DataNode,则如下:
    master_slaves

  3. 文件core-site.xml改为如下配置:

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs:/mMaster:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/usr/local/hadoop/tmp</value>
                <description>Abase for other temporary directories.</description>
        </property>
</configuration>
  1. 文件hdfs-site.xml改为如下配置:
<configuration>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>master:50090</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/usr/local/hadoop/tmp/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/local/hadoop/tmp/dfs/data</value>
        </property>
</configuration>
  1. 文件mapred-site.xml改为如下配置:
    :在初始文件夹下可能只有mapred-site.xml.template文件,先重命名为mapred-site.xml
    $ mv mapred-site.xml.template mapred-site.xml
<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>Master:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>Master:19888</value>
        </property>
</configuration>
  1. 文件yarn-site.xml改为如下配置:
<configuration>
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>Master</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
</configuration>

2.5 后记

到此,master节点上的hadoop基本配置已经完成,在本例中,由于是使用虚拟机搭建的完全分布式环境,下一篇将开始DataNode的配置。

要注意的是,在完成单机配置后,是可以运行wordcount程序的,因为此时还没改变过任何原始的配置文件,但是在进行后续的配置后,暂无法运行wordcount等hadoop程序,这是因为在配置文件中,指定了DataNode和一些其他信息,但我们还没配置好,所以整个系统应该是运行不了的。

猜你喜欢

转载自blog.csdn.net/qq_41059320/article/details/82778861
今日推荐