设为首页收藏本站

小牛社区-大数据学习交流社区|大数据免费学习资源

 找回密码
 立即注册!

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 118|回复: 0

从0开始搭建Hadoop

[复制链接]

86

主题

0

帖子

36

积分

吃土小白

Rank: 1

积分
36
发表于 2017-11-16 05:24:54 | 显示全部楼层 |阅读模式
        小编有个机会来搭建Hadoop,踩了很多坑,现在将踩坑的过程告诉大家,以便大家能够少走弯路。
一、准备工作


  • 虚拟机软件:VMware Workstation 12 

  • 虚拟操作系统:Ubuntu17.04 64位 

  • JDk:1.8.0_144 64位 

  • Hadoop:2.8.2
二、虚拟环境
        集群包括3个节点,1个Namenode、2个Datanode,其中节点之间可以相互ping通。节点IP地址和主机名如下:
序号IP机器名类型
1192.168.135.100liangquansheng1namenode
2192.168.135.101liangquansheng2datanode
3192.168.135.102liangquansheng3datanode
        所有节点的防火墙关闭不然没办法实现无密码连接,且各节点之间能够相互ping通。
三、环境搭建
        1、虚拟环境的搭建
        在VMware上搭建三台虚拟机,其中一台为Namennode,内存为6G以上,不然带不动,剩下两台为Datanode,内存为2G,可以先搭建一台然后利用克隆搭建剩下的两台,网络模式建议选择NAT模式,桥接模式会随着网络的变换,IP发生变换,配置的IP和公钥私钥会失效。
        虚拟机搭建Linux环境比较简单,各位可以自己百度,虚拟环境搭建好以后记得尝试一下apt-get是否可用,我们后面将会用这个命令下载net-tools、vim、openssh-server等必须工具。
        虚拟机搭建以后修改网络模式为NAT模式,并且能够上网,具体过程如下:
        (1)、VMware中点击编辑—>虚拟网络编辑器,看到下图以后点击更改设置,虚拟网络里面只保留NAT模式,点击第三步中的NAT设置查看并记住掩码和网关稍后会用到,第四步将使用本地DHCP去掉,点击应用后确定。点击当前虚拟机进入设置,设置网络适配器为自定义NAT模式。


        (2)、回到我们的Ubuntu点击网络连接-->编辑连接-->IP v4设置,将方法调为手动,在地址栏输入地址和刚刚记下的子网掩码和网关,地址栏地址前三位必须跟网关前三位相同,最后一位可以自己配,最后保存。配好IP后记得初始化一下网络,方法为断开再连接。初始化以后进入终端ifconfig查看我们的IP就是刚刚我们配置好的,curl www.baidu.com可以看到我们的IP是生效的可以访问外网。自此我们的虚拟环境就配好了,可以正式进入Hadoop的安装了。




        2、本地环境配置
        (1)、配置hosts文件     命令:vi /etc/hosts 

        该配置只需要在master上配置即可。
        (2)、关闭防火墙       命令:ufw disable

        三台机器都必须关闭防火墙
        (3)、安装jdk-8u144-linux-x64.tar
        所有机器都必须安装jdk,并且版本都一样,我们的策略是先在master上安装好以后发到各个slave上。进入root账户后在/usr下建一个文件夹Java,稍后我们将Java安装到这个目录下面,这个目录我们要记住,添加环境变量的时候我们将会用到这个。
        命令:
        sudo -i   #这里需要输入root权限的密码
        mkdir /usr/java      #创建Java文件夹
        tar zxvf jdk-8u144-linux-x64.tar   #回到存放jdk-8u144-linux-x64.tar文件的地方对文件进行解压
        mv jdk1.8.0_144 /usr/java  #将解压的文件复制到刚刚创建的Java文件夹中
        cd /usr/java #进入到/usr/java下可以看到有一个文件jdk1.8.0_144
        自此,Java安装成功,删除压缩包,进入下一环节配置环境变量。
        进入/etc/profile 将下列代码添加到末尾,Java安装完毕。
        export JAVA_HOME=/usr/java/jdk1.8.0_144
        export JRE_HOME=${JAVA_HOME}/jre
        export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
        export PATH=${JAVA_HOME}/bin:$PATH
        为了检查我们的Java安装是否成功,在检查之前需要source /etc/profile,使我们配置的环境变量生效。然后Java  -version,如果出现Java版本,说明安装成功。

        (4)、配置ssh无密码登入
        因为master需要给slave分配任务,所以几台机器之间需要相互访问,所以需要配置无密码登入,为了保证安全性,配置机器之间使用私钥登入,在将密钥传给slave时需要手动输入一次root密码,这也是唯一一次需要输入密码。
        master命令:
        chomd 700 ~/.ssh  #j设置文件夹权限为700,这很重要影响到密钥验证
        apt install openssh-server    #安装ssh服务
        ssh-keygen -t rsa                 #生成公钥私钥
        cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
        chomd 600 authorized_keys
        scp authorized_keys liangquansheng@liangquansheng2:~/.ssh
        scp authorized_keys liangquansheng@liangquansheng3:~/.ssh   #将密钥传给slave
        slave命令:
        mkdir ~/.ssh  #在机器上创建.ssh文件夹,用户liangquanshen和root下个创建一个
        chmod 700 ~/.ssh
        cd /home/liangquansheng/.ssh  #通过scp传入的密钥保存的位置
        cp authorized_keys  ~/.ssh       #将密钥复制到root账户下
        验证是否可以无密码登入,下图没有输入密码且进入到liangquansheng2中查看ifconfig,IP为192.168.135.101为我们刚才设置的liangquansheng2的IP。
        ssh liangquansheng2

        (5)、安装Hadoop
        所有的节点都需要安装Hadoop,我们的方式也是先安装好master后将master节点的Hadoop传到各个slave上。进入root权限在/usr/local下新建文件夹Hadoop,切记不要在桌面直接邮件提取,会有权限问题。
        tar -zxvf hadoop.tar.gz
        mv hadoop-2.8.2  /usr/local/hadoop  #将Hadoop截切到/usr/local下并重命名为Hadoop。
        把Hadoop的安装路径添加到/etc/profile上
        export HADOOP_HOME=/usr/local/hadoop
        export PATH=$PATH:$HADOOP_HOME/bin
        进入/usr/local/hadoop/etc/hadoop,编辑文件Hadoop-env.sh
         # The java implementation to use.
         export JAVA_HOME=/usr/java/jdk1.8.0_144
         export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
        source hadoop-env.sh,source /etc/profile使文件生效。
        输入Hadoop version,这说明安装且环境配置成功,接下来进入文件配置阶段。

        在配置Hadoop文件配置之前我们需要在/usr/local/hadoop下创建几个文件,稍后将会用到
        cd /usr/local/hadoop
        mkdir tmp
        mkdir hdfs
        mkdir hdfs/name
        mkdir hdfs/data
        文件创建完以后进入/usr/local/hadoop/etc/hadoop,需要配置的文件包括:core-site.xml、hdfs-site.xml、mapred-queues.xml.template和yarn-site.xml四个文件其中mapred-queues.xml.template要重命名为mapred-queues.xml


        配置core-site.xml:
         
                hadoop.tmp.dir
                /usr/local/hadoop/tmp
                true
               
                A base for other temporary directories.
       
       
                fs.default.name
                hdfs://192.168.135.100:9000
               
                true
       
       
                io.file.buffer.size
                131072
       


        配置hdfs-site.xml:
       
                dfs.replication
                3
       
       
                dfs.name.dir
                /usr/local/hadoop/hdfs/name
       
       
                dfs.data.dir
                /usr/local/hadoop/hdfs/data
       
       
                dfs.namenode.secondary.http-address
                192.168.135.100:9001
       
       
                dfs.webhdfs.enabled
                true
       
       
                dfs.permissions
                false
       


        配置mapred-queues.xml,cp mapred-queues.xml.template mapred-queues.xml:
            
                mapreduce.framework.name    
                yarn    
       


        配置yarn-site.xml:
            
                  yarn.resourcemanager.address    
                  192.168.135.100:18040    
            
            
                  yarn.resourcemanager.scheduler.address    
                  192.168.135.100:18030    
            
            
                  yarn.resourcemanager.webapp.address    
                  192.168.135.100:18088    
            
            
                  yarn.resourcemanager.resource-tracker.address    
                  192.168.135.100:18025    
            
            
                  yarn.resourcemanager.admin.address    
                  192.168.135.100:18141    
            
            
                  yarn.nodemanager.aux-services    
                  mapreduce_shuffle    
            
            
                  yarn.nodemanager.aux-services.mapreduce.shuffle.class    
                  org.apache.hadoop.mapred.ShuffleHandler    
       


        配置masters文件:
        将masters文件中的localhost修改为master IP:192.168.135.100
        配置slaves文件:
        将master和slave的IP全部加入到slaves文件中,且每个为一行,
        192.168.135.100
        192.168.135.101
        192.168.135.102
        (6)、传输文件
        jdk的传输:scp -r /usr/java root@liangquansheng2:/usr/
                           scp -r /usr/java root@liangquansheng3:/usr/
        profile传输:scp -r /etc/profile root@liangquansheng2:/etc/
                             scp -r /etc/profile root@liangquansheng3:/etc/
        hadoop传输:scp -r /usr/local/hadoop root@liangquansheng2:/usr/local
                               scp -r /usr/local/hadoop root@liangquansheng3:/usr/local
        (7)、启动Hadoop
        初始化Hadoop:hadoop namenode -format
        启动Hadoop:cd /usr/local/hadoop/sbin
                                ./start-all.sh
                                ./start-dfs.sh
                                ./start-yarn.sh
        验证Hadoop:jps

        进入网页查看Hadoop状态:进入浏览器输入:192.168.135.100:50070
Hadoop安装成功。

        自此Hadoop安装成功,小编接下来要深入学习大数据知识了,白!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册!

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册!

本版积分规则

快速回复 返回顶部 返回列表