hadoopcdh5大数据集群的搭建

    很久之前帮公司搭建了一个hadoopCDH5的demo,现在把详细搭建过程分析一下。因为自己搭了很多遍,因此可以说搭建说明还是很完备的,可以帮助大家借鉴一下

嘿嘿,废话不多说,先上:


一、软件环境准备

1、在Oracle官网下载(网址: http://cn.ubuntu.com/download/)

下载版本: Ubuntu 16.04 LTS(长期支持)版本

2、安装VMware,直接在百度软件中心即可。

新手选用典型模式进行一键安装(自定义模式自己了解)

注意虚拟机网络适配器选择桥接模式,硬件设置如下,需要根据电脑选择配置

       3、安装jdk

       下载地址(http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html#jdk-7u79-oth-JPR)

       注意:

              下载压缩包到Windows上想要直接拖入到ubantu当中需要安装更新VMware Tools


              将拖入的jdk压缩包转移到/opt目录下

              sudomv xxx(拖入jdk的目录) /opt

              将jdk解压到/opt目录下(一般安装包放置路径)

              sudotar -zxvf jdk-7u79-linux-x64.tar.gz jdk1.7.0_79/

              建立一个软链接(目的:在配置环境变量或者其他配置文件的时候一个简洁的名字让步骤一目了然,言简意赅)

              sudoln -snf jdk-7u79-linux-x64 jdk

       4、安装Hadoop

              下载地址()

              解压步骤跟jdk相似

       注意

二、设置ubantu环境

       1、设置jdk,hadoop环境变量

              sudovi /etc/profile(进入全局配置)

              

注意:

       在~目录下的.bashrc也可以设置环境变量但是也存在很大的不同

       /etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系。这里要在/etc/profile中设定,因为当我们建立hdfs,yarn用户的时候也需要用到这些变量。

       2、设置语法高亮

              sudovi ~/.vimrc

              按照下列设置输入

    

注意:

如果输入完成之前报错“Sorry,thecommand is not available in this version : syntax on”,可能是因为预装的vim版本太低,所以需要更新vim

       输入这个命令:sudo apt-get install vim

       3、设置网络适配器

              选用桥接模式(重点)

              设置静态ip

              sudovi /etc/network/interfaces

             

              注意:

1, 虚拟机网卡会有名称上的不同,写入的时候需要将网卡改成自己的网卡

2, dns-nameserver是ping通外网必要的DNS必须要加上,否则就不能ping类似百度等网站

3, 自己了解桥接模式,桥接模式需要三台机器跟windows上的ip在同一个网段,通过ipconfig可以知道windows系统下的ip地址,子网掩码以及网关,然后进行修改。设置如上图。

sudo /etc/init.d/networking restart 重启网络

       4、关闭防火墙

              serviceiptables stop

              http://blog.csdn.net/cmh477660693/article/details/52759750

       5、CDH 要求使用 IPv4,IPv6 不支持,禁用IPv6方法:

            

        6、节点规划

             主机       ip                         角色

             Master  192.168.1.100    NameNode ResourceManager

             Slave1     192.168.1.110  DataNode NodeManager

             Slave2     192.168.1.120  DataNode NodeManager


三、搭建集群前置步骤

       1、创建hadoop用户组,创建hdfs以及yarn用户,将这两个用户加入hadoop用户组

              创建hadoop用户组

                     sudoaddgroup Hadoop

 

              创建hdfs用户加入到hadoop用户组

                     sudoadduser -ingroup Hadoop hdfs(yarn用户类似)

       2、查看是否创建成功

              cat/etc/passwd 用户

              cat/etc/group  用户组

       3、为hdfs、yarn用户添加权限

              sudovi /etc/sudoers

             

       4、安装ssh

              sudoapt-get install ssh

              查看服务是否正确启动

              ps-e | grep ssh

       5、设置每一台机器自己的主机名为了方便标识

              sudovi /etc/hostname

            

 

       6、设置主机名和其ip的映射关系

              sudo vi /etc/hosts

         

       7、新建目录

              /tmp/hadoop/hadoop-hadoop

              /tmp/hadoop/mapred/system

              /tmp/hadoop/mapred/local

              /usr/cdh/hadoop/dfs/data

              /usr/cdh/hadoop/dfs/name

              以上目录修改所有者为hdfs

                     sudo chown -R hdfs:hadoop/tmp/hadoop

                     sudo chown -R hdfs:hadoop /usr/cdh/hadoop/dfs

              以上目录将同组人权限修改为可读可写

                     sudo chmod -R g+wr/tmp/hadoop

                     sudo chmod -R g+wr/usr/cdh/hadoop/dfs

       8、建立目录

                            /opt/hadoopcdh5/logs

              设置权限为hadoop组可读可写(可设为777)

四、修改配置文件

       sudo vi core-site.xml

            <property>

               <name>io.native.lib.available</name>

               <value>true</value>

       </property>

       <property>

               <name>fs.default.name</name>

               <value>hdfs://192.168.1.100:9000</value>

               <description>The name of the default file system.Either theliteral string "local" or host:port for NDFS.</description>

               <final>true</final>

       </property>

       <property>

               <name>hadoop.tmp.dir</name>

               <value>/tmp/hadoop/hadoop-hadoop</value>

       </property>

 

 

sudo vi hdfs-site.xml

              <property>

               <name>dfs.namenode.name.dir</name>

               <value>/usr/cdh/hadoop/dfs/name</value>

               <description>Determines where on the local filesystem the DFS namenode should store the name table.If this is a comma-delimited list ofdirectories,then name table is replicated in all of the directories,forredundancy.</description>

               <final>true</final>

        </property>

       <property>

               <name>dfs.datanode.data.dir</name>

               <value>/usr/cdh/hadoop/dfs/data</value>

               <description>Determines where on the local filesystem an DFS datanode should store its blocks.If this is a comma-delimited list ofdirectories,then data will be stored in all named directories,typically ondifferent devices.Directories that do not exist are ignored.                </description>

               <final>true</final>

       </property>

        <property>

               <name>dfs.replication</name>

               <value>1</value>

       </property>

       <property>

               <name>dfs.permission</name>

               <value>false</value>

       </property>

 

 

sudo vi mapred-site.xml

 

property>

               <name>mapreduce.framework.name</name>

               <value>yarn</value>

       </property>

       <property>

               <name>mapreduce.job.tracker</name>

               <value>hdfs://192.168.1.100:9001</value>

               <final>true</final>

       </property>

       <property>

               <name>mapreduce.map.memory.mb</name>

               <value>1536</value>

       </property>

       <property>

               <name>mapreduce.map.java.opts</name>

               <value>-Xmx1024M</value>

       </property>

       <property>

               <name>mapreduce.reduce.memory.mb</name>

               <value>3072</value>

       </property>

       <property>

               <name>mapreduce.reduce.java.opts</name>

               <value>-Xmx1024M</value>

       </property>

       <property>

               <name>mapreduce.task.io.sort.mb</name>

               <value>512</value>

        </property>

       <property>

               <name>mapreduce.task.io.sort.factor</name>

               <value>100</value>

       </property>

       <property>

               <name>mapreduce.reduce.shuffle.parallelcopies</name>

               <value>50</value>

       </property>

       <property>

               <name>mapred.system.dir</name>

               <value>/tmp/hadoop/mapred/system</value>

               <final>true</final>

       </property>

       <property>

               <name>mapred.local.dir</name>

               <value>/tmp/hadoop/mapred/local</value>

               <final>true</final>

       </property>

 

 

sudo vi yarn-site.xml

 

<!-- Site specific YARN configuration properties-->

       <property>

               <name>yarn.resourcemanager.address</name>

               <value>192.168.1.100:8080</value>

       </property>

       <property>

               <name>yarn.resourcemanager.scheduler.address</name>

               <value>192.168.1.100:8081</value>

       </property>

       <property>

               <name>yarn.resourcemanager.resource-tracker.address</name>

               <value>192.168.1.100:8082</value>

       </property>

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

 

 

注意:

       原本hadoopcdh5中是没有mapred-site.xml这个文件的,需要通过mapred-site.xml.template这个文件复制一份(sudo cp mapred-site.xml.template mapred-site.xml)

 

配置完成!

 

五、复制出两台丛节点

       1、克隆出两台机器

      

       2、修改机器中的静态ip地址以及hostname,分配成slave1,slave2,其他保持一致。

六、格式化HDFS文件系统

       hdfs namenode -format

七、服务器集群启动与关闭

       hdfs集群

       启动/关闭名字节点:hadoop-daemon.sh start/stop namenode

       启动/关闭数据节点:hadoop-daemon.sh start/stop datanode

       yarn 集群

       启动/关闭资源管理器:yarn-daemon.sh start/stopresourcemanager

       启动/关闭节点管理器:yarn-daemon.sh start/stop nodemanager

       验证服务器集群是否搭建成功

1、 输入jps查看是否有node和resourcemanager

2、 在浏览器上输入master的ip:50070(hdfs集群)

3、 在浏览器上输入master的ip:8088(yarn集群)

出现如下两个页面

      

          

八、配置免密钥登陆

       首先在主节点上面~目录下输入(ls -la)查看有没有.ssh目录

如果没有 ssh hdfs@slave1 登陆一下任意一个从节点就可以得到.ssh目录

 

在.ssh目录下输入一下命令产生一个私钥跟一个公钥

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa(rsa)

 

.ssh目录下会产生两个文件一个id_rsa,一个id_rsa.pub。进入id_rsa.pub复制其中的代码将其粘贴到两个从节点的authorized_keys中(在从节点中.ssh目录下自己创建,从节点中的.ssh目录的生成参照在主节点的步骤)

 

同时在主节点中.ssh下也建立authorized_keys粘贴公钥中的代码。

 

 

注意:

                  在start-dfs.sh的时候可能会出现 Error: JAVA_HOME is not set and could not be found.

           这是因为在/opt/hadoopcdh5/etc/hadoop/hadoop-env.sh下的JAVA_HOME无法解析,因此需要进入

这个文件修改JAVA_HOME也就是之前所设置的/opt/jdk(每个节点都需要修改)

 

在yarn集群上的免密钥登陆把以上重新操作一遍

 

免密钥登陆hdfs集群:

       start-dfs.sh

免密钥登陆yarn集群

       start-yarn.sh


友情提示:搭集群之前首先要熟悉linux系统的三种网络模式。

搭完集群需要体会到分布式的原理

会搭集群了还不是美滋滋~~

第一次写博客,有错误的细节或者阐述还望各位大佬批评指正


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值