大数据入门之开发环境搭建之hadoop篇

这篇教程我将会教大家如何一步步从零开始搭建好我们的大数据完全分布式实验平台

实验环境:1.由于实验环境是在linux系统中,所以我们需要用虚拟机摸拟linux操作系统,操作系统的版本我们选 centOS 7,需要建立的虚拟机的台数根据自己的电脑的配置来决定,一般为了较好的完成实验,我们需要3台或3台以上,一台master主机,其于为slave从机,虚拟机可以使用vmware或者oracl VirtualBox,这里不再讲解虚拟机的搭建

                   2.软件:本课程第一节将讲基础环境hadoop的搭建,只有把hadoop搭好了并且把hdfs(hadoop distributed file systemhadoop分布式文件存储系统)配置好,才可以使我们hadoop生态圈的其他的组件得以运行,比如我们的大数据环境下的数据库有hbase、mongodb等,包括hbase所依赖的zookeeper环境,以及不同于mapreduce计算框架的spark和storm计算框架的搭建都会在后续中讲解

                                                  java环境:jdk-8u151-linux-x64.tar.gz,

                                                                    hadoop-2.7.4.tar.gz(hdfs,mapreduce计算框架,yarn架构等都是在hadoop进行配置)

软件我们使用官方版本而不是cdh5版本,下面给出cdh5版本地址:http://archive.cloudera.com/cdh5/cdh/5/

三台虚拟机配置,网卡配置使用NAT方式,这样主机会给虚拟机自动分配IP,打开虚拟机时,进入设置,点开“网络”,把有线连接打开就行了
                master 192.168.1.103
                slave1 192.168.1.105
                slave2 192.168.1.106
                slave3 192.168.1.107

用SecureCRT远程连接虚拟机,方便上传文件。


大数据入门之开发环境搭建之hadoop篇

先修改四台主机的主机名并配置主机名和ip地址的映射,依次修改为master,slave1,slave2,slave3因为我们的hadoop集群是根据是主机名通信的

大数据入门之开发环境搭建之hadoop篇

修改etc/hosts下的hosts的文件添加映射,centos下可以用gedit直接大开编辑

大数据入门之开发环境搭建之hadoop篇

在每台机器的home目录下建一个softwares用于保存软件,tar用于保存安装包

大数据入门之开发环境搭建之hadoop篇

在SecureCRT使用文件上传命令把tar包上传的虚拟机

先进入master机器的tar目录下

大数据入门之开发环境搭建之hadoop篇

然后运行rz命令,选择文件上传(双击要选择的tar包)

上传完成之后,在虚拟机里就可以看到我们的tar包了

大数据入门之开发环境搭建之hadoop篇

或者我们可以直接进入/home/tar目录用ls命令查看

大数据入门之开发环境搭建之hadoop篇

配置主机与从机的ssh免密码连接,在主机根目录上(cd ~可以进入根目录)运行命令  ssh-****** -t rsa

大数据入门之开发环境搭建之hadoop篇

然后连续输入回车

大数据入门之开发环境搭建之hadoop篇

生成的秘钥位于 ~/.ssh文件夹下。可进入查看

大数据入门之开发环境搭建之hadoop篇

在master上,导入authorized_keys,进入~/.ssh目录,运行 cat id_rsa.pub >> authorized_keys命令

大数据入门之开发环境搭建之hadoop篇

远程无密码登录(把master上的authorized_keys拷贝到其他主机的相应目录***意,你的从机上可能没有.ssh目录,所以在三个从机上cd ~,然后mkdir .ssh建立.ssh目录

大数据入门之开发环境搭建之hadoop篇

master上的authorized_keys拷贝到其他主机的相应目录下

scp authorized_keys [email protected]:~/.ssh/

主意以下几点:root为你的slave1机器 linux系统的用户名,slave1是从机1的主机名,同理其他两台从机也是类似的方似

第一次连接需要输入密码,但是在linux下密码不会显示出来,所以别以为你没敲上

大数据入门之开发环境搭建之hadoop篇

所有机器的~/.ssh目录下,均执行命令:chmod 600 authorized_keys

大数据入门之开发环境搭建之hadoop篇

验证ssh连接,在master上 输入ssh slave1,测试已连上slave1

大数据入门之开发环境搭建之hadoop篇


解压软件

在master上,进入/home/tar 运行 tar -zxf jdk-8u151-linux-x64.tar.gz -C /home/softwares解压jdk

使用命令把master上的jdk发到其他三台机器,以slave1为例

scp -r /home/softwares/jdk1.8.0_151 [email protected]:/home/softawres


然后配置环境变量,可直接在虚拟机里用gedit打开/etc/profile添加如下  三个机器上都配置

#java

export JAVA_HOME=/home/softwares/jdk1.8.0_151
exprot PATH=$JAVA_HOME/bin:$PATH


在master上,进行/home/tar 运行 tar -zxf hadoop-2.7.4.tar.gz -C /home/softwares解压hadoop

然后配置环境变量,可直接在虚拟机里用gedit打开/etc/profile添加如下 master机器上配置

#hadoop  
export HADOOP_HOME=/home/softwares/hadoop-2.7.4
export PATH=$PATH:$HADOOP_HOME/sbin  
export PATH=$PATH:$HADOOP_HOME/bin 

然后用source命令刷新一下/etc/profile文件使配置生效

大数据入门之开发环境搭建之hadoop篇


修改hadoop的一些重要配置文件

修改/home/softwares/hadoop-2.7.4/etc/hadoop下的七个配置文件

大数据入门之开发环境搭建之hadoop篇

3)配置文件:hadoop-env.sh

修改JAVA_HOME值(export JAVA_HOME=/home/softwares/jdk1.8.0_151) 

2)配置文件:yarn-env.sh

修改JAVA_HOME值(export JAVA_HOME=/home/softwares/jdk1.8.0_151

3)配置文件:slaves 这就是配置从节点

slave1

slave2

slave3


core-site.xml

<configuration>  
    <property>  
        <name>fs.defaultFS</name>  
        <value>hdfs://master:9000</value>  
    </property>  
    <property>  
        <name>io.file.buffer.size</name>  
        <value>131072</value>  
    </property>  
    <property>  
        <name>hadoop.tmp.dir</name>  
        <value>file:/home/softwares/hadoop-2.7.4/tempdir</value>  
        <description>Abase for other temporary   directories.</description>  
    </property>  
</configuration> 

 其中第三个属性需要我们创建一个文件夹,如果不创建它默认是在/tmp/hadoop-${user.name}

我们手动在/home/softwares/hadoop-2.7.4建一个tempdir

hdfs-site.xml

<configuration>  
       <property>  
                <name>dfs.namenode.secondary.http-address</name>  
               <value>master:9001</value>  
       </property>  
     <property>  
             <name>dfs.namenode.name.dir</name>  
             <value>file:/home/softwares/hadoop/hadoop-2.7.4/namenode</value>  
       </property>  
      <property>  
              <name>dfs.datanode.data.dir</name>  
              <value>file:/home/softwares/hadoop/hadoop-2.7.4/datanode</value>  
       </property>  
       <property>  
               <name>dfs.replication</name>  
               <value>3</value>  
        </property>  
        <property>  
                 <name>dfs.webhdfs.enabled</name>  
                  <value>true</value>  
         </property>  
</configuration>

 其中第二三个属性需要我们创建一个文件夹,如果不创建它默认是在/tmp/hadoop-${user.name}

我们手动在/home/softwares/hadoop-2.7.4建一个namenode和一个datanode


mapred-site.xml

先创建然后编辑

把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> 


yarn-site.xml

<configuration>  
        <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>master:8032</value>  
       </property>  
       <property>  
               <name>yarn.resourcemanager.scheduler.address</name>  
               <value>master:8030</value>  
       </property>  
       <property>  
            <name>yarn.resourcemanager.resource-tracker.address</name>  
             <value>master:8031</value>  
      </property>  
      <property>  
              <name>yarn.resourcemanager.admin.address</name>  
               <value>master:8033</value>  
       </property>  
       <property>  
               <name>yarn.resourcemanager.webapp.address</name>  
               <value>master:8088</value>  
       </property>  
</configuration> 


到此配置完成,把master上的hadoop发送slave上,以slave1为例

scp -r /home/softwares/hadoop-2.7.4 [email protected]:/home/softwares


在master

source /etc/profile

进入/home/softwares.hadoop-2.7.4

执行

bin/hdfs namenode -format
sbin/start-all.sh
启动后分别在master, slave下输入jps查看进程,如下则启动正确

master

大数据入门之开发环境搭建之hadoop篇

slave1

大数据入门之开发环境搭建之hadoop篇

slave2

大数据入门之开发环境搭建之hadoop篇

slave3

大数据入门之开发环境搭建之hadoop篇