zoukankan      html  css  js  c++  java
  • hadoop环境搭建之伪分布集群环境搭建(单节点)

    首先,尼玛哥是一名研究生,可以说很多学习的知识都是来源于同门师兄弟,本着将自己学习到的东西以博客的形式分享到网络上,不仅仅可以让自己回顾,也可以帮助需要学习的小伙伴们,供大家一同学习。

    首先,hadoop 环境的搭建需要在linux的环境下,那么,现在,咱们需要将linux的基本网络设置已经配置完毕,注意,每一次配置完成,建议要给系统做一个快照,以免不必要的情况发生后,整个系统都崩盘,这时候就后悔莫及了~

    废话不多说,开始讲解如何搭建单节点的hadoop 伪分布集群


    开始前请大家注意了:linux 的操作系统,默认主机名为localhost,此处尼玛哥一直是以localhost 进行讲解,但是大家在学习安装伪分布单节点的hadoop过程当中,注意修改localhost的名字,不然在最后的集群运行当中会出错,和系统本身的 127.0.0.1  对应的localhost 的IP 产生冲突,导致最后无法实现集群搭建!


    首先:hadoop 伪分布环境搭建分为三大步

    一 .JDK 安装

    二.SSH 配置

    三.hadoop 环境配置


    以centos 6.5为例来安装,咱们现在安装一个nimi 桌面版本~
             咱们先将linux的网络配置设置好,(linux的安装在我的博客当中可以找到),设置为静态IP ,便于以后添加多个节点使用~
    刚刚安装好的linux他的系统IP 并没有配置好,那么,咱们先配置静态IP 


    利用 命令#vi  /etc/sysconfig/network-scripts/ifcfg-eth0
    进入了vi 编辑界面,咱们需要再根据VMware  Workstation中的设置进行配置静态IP 


    根据,上图,咱们知道了,IP 是在192.168.159.2这个网关当中的,那么,接下来,咱们开始配置静态IP ,
    输入:x保存并退出。


    OK ,静态IP 配置完成了,
                         接下来,咱们利用命令:# service  network restart 使网路服务重新启动
                         用命令 :# ifconfig  查看ip 是否修改完成,并且
                         用命令:# ping www.baidu.com   检查是否已经成功连接上网络。


    接下来,基本的网络配置已经完成了,咱们给linux系统来个快照,以便进行接下来的步骤时出现什么错误,哈哈哈,保险要紧~
    ok !,咱们最基本的linux设置已经完成了哟~接下来,就是开始环境搭建3大步骤了
    第一:JDK安装和环境变量配置
    1.检查linux 系统当种的JDK 是否已经安装了
    利用命令:# java  -version 



    上图显示得是,jdk 已经成功安装了。
    2.接下来,咱们看看 centos 的位数
    利用命令# file  /bin/ls
     
    3.切换至 usr/文件夹当中,创建一个Java/ 目录
    利用命令:# cd /
                     # ls 
      # cd usr/
     #mkdir java 
         #cd java/
                    #ls

    4.上传已经下载到本地的文件  jdk-7u79-linux-x64.tar.gz  (我会上传到我的文件当中,供大家下载)
    当然,有时候 rz命令并未安装,这时候,咱们就可以选用yum 命令来安装,介绍下,yum 命令是在连接了网络的情况下使用的。所以之前,咱们配置好了网络设置,现在就起作用了!
    利用命令:#yum -y install lrzsz 

    好了,rz 安装好了,接下来就是从本地添加文件了
    利用命令:#rz 


    咱们选中了文件后,就会自动上传到centos 系统当中
    检查一下,文件是否已经上传到java目录当中
    命令:# ls
     
    可以确认,java 当中,已经存在了我们需要的tar.gz文件
    5.解压已经上传的压缩文件。
    利用命令: # tar  -zxvf   jdk-7u79-linux-x64.tar.gz
    检查文件是否已经压缩成功;# ls


    6.接下来,咱们开始配置JDK 的环境变量
    利用命令:

    #cd /etc/profile.d

    #ls

    在profile.d文件夹通过Vi命令生成一个java.sh 文件

    #vi java.sh


    在 Java.sh 文件中,咱们需要设置的是这些

    JAVA_HOME=/usr/java/jdk1.7.0_79

    PATH=$JAVA_HOME/bin:$PATH

    CLASSPATH=$JAVA_HOME/lib:$CLASSPATH

    export JAVA_HOME PATH CLASSPATH


    wq保存退出

    7. 利用命令 #source /etc/profile.d/java.sh 使刚才的配置文件生效


    8.利用命令#vi /etc/hosts ,来修改hosts文件,但是需要知道虚拟机配置的静态IP ,前边我们已经配置过,

    是 192.168.159.22  locahost (你的主机的名字,在安装linux的时候,已经自己起名过,博主起的名字是kkc,而在此处是localhost,大家需要注意,不能和 127.0.0.1 localhost 重名,这样最后会导致出错)



    9.接下来,咱们创建一个专门的hadoop的用户组,利用一下命令

    #groupadd hadoop      创建hadoop用户组

    #useradd -g hadoop hadoop    新建hadoop用户并增加到hadoop用户组中

    #passwd hadoop     hadoop用户密码,为hadoop


    10、Hadoop使用端口比较多,建议关闭防火墙避免出现不必要的问题,生产环境中可以对相应端口做安全控制。先需要关闭防火墙

    Centos6.5自带防火墙是iptables防火墙,没有firewall防火墙。

    通过命令:#service iptables status     查看防火墙状态


    通过命令关闭防火墙:

    (1)#chkconfig iptables off  这种方式是永久性关闭,系统重启后不会复原。

    (2)#service iptables stop这种方式是即时生效,系统重启后会复原。

    咱们使用命令1 ,但是,需要重新启动, 为了方便,不用关机,咱们1,2命令同时,可以再虚拟机运行过程中关闭防火墙。

    使用完命令后,咱们检查一下,防火墙是否关闭




    第二 、SSH 配置!

    1 配置SSH实现无密码验证配置,首先切换到刚创建的hadoop用户下。

    由于hadoop需要无密码登录作为datanode的节点。

    部署单节点的时候,当前节点既是namenode又是datanode,所以此时需要生成无密码登录的ssh。方法如下:

    #su hadoop

    #cd



    2 、创建.ssh目录,生成密钥

    #mkdir .ssh

    #ssh-keygen -t rsa   注意,ssh与keygen之间是没有空格的,中间的询问部分,咱们用回车跳过,相当于设置免密码登录



    3 、切换到.ssh目录下,进行查看公钥和私钥

    #cd .ssh

    #ls


    4、将公钥复制到日志文件里。查看是否复制成功

    #cp id_rsa.pub authorized_keys             

    #ls


    5、查看日记文件具体内容

    #vi authorized_keys


    6、退回到/home/hadoop/,来赋予权限

    #cd ..

    #chmod 700 .ssh          将.ssh文件夹的权限赋予700

    #chmod 600 .ssh/*      将.ssh文件夹里面的文件(id_rsa、id_rsa.pub、authorized_keys)的权限

    赋予600


    7、切换到root用户下,安装ssh插件(openssh)

    #su root

    #yum -y install openssh-clients


    8、切换到/home/hadoop/,测试ssh无密码访问

    #su hadoop

    #ssh localhost

    #yes




    三.hadoop 环境配置
    接下来,到了关键的步骤了,搭建hadoop伪分布式环境
    下载并解压Hadoop2.2.0,把文件放到/usr/java/目录下,注意:下载前确认一下你的Linux系统是64位系统还是32位系统,分别下载对应的版本,如果下载错了,后面会有很多问题
    当然,这个文件,已经下载到了本地,接下来,我们将利用rz命令将文件上传到虚拟机当中

    1.

    首先,切换到/usr/java/ ,再切换到root用户下,再 /root/java

    #cd /usr/java

    #su root


    2、用rz命令从Windows来上传hadoop-2.2.0-x64.tar.gz到/usr/java/下。
    #rz

    3、查看上传好的hadoop-2.2.0-x64.tar.gz,并解压

    #ls

    #tar axvf hadoop-2.2.0-x64.tar.gz


    4、将文件名hadoop-2.2.0修改为hadoop,并查看

    #mv hadoop-2.2.0 hadoop

    #ls

    将刚改名的hadoop文件,权限赋给hadoop用户,并查看权限

    #chown -R hadoop:hadoop hadoop

    #ls -l 

    5、创建一个hadoop数据目录 ,将整个data目录权限赋予给hadoop用户

    #mkdir -p /data/dfs/name

    #mkdir -p /data/dfs/data

    #mkdir -p /data/tmp

    #chown -R  hadoop:hadoop  hadoop  /data

     #ls -l  /data


    6、修改hadoop对应的配置文件

    切换到hadoop用户,切换到hadoop目录

    #su hadoop

    #cd hadoop

    查看下etc/hadoop的配置文件

    #cd etc/

    #ls

    #cd hadoop/

    #ls

    7.接下来的步骤,需要十分仔细,是修改hadoop的配置文件了!会尽量详细的解释下这些文件的用处以及如何配置

    首先,修改etc/hadoop/core-site.xml配置文件,添加如下信息

    #vi core-site.xml

    (1)配置HDFS(hadoop)的分布式文件系统的地址及端口号

    <property>

                    <name>fs.defaultFS</name>

                    <value>hdfs://localhost:9000</value>          <!--   注意,本机的名称localhost需要大家更改-->

    </property>

    (2)配置HDFS路径的存放数据的公共目录

    <property>

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

                    <value>file:/data/tmp</value>

     </property>

    (3)注意:由于在hadoop1.0中引入了安全机制,所以从客户端发出的作业提交者全变成了hadoop,不管原始提交者是哪个用户,为了解决该问题,引入了安全违章功能,允许一个超级用户来代替其他用户来提交作业或者执行命令,而对外来看,执行者仍然是普通用户。

    配置设置为任意客户端

    <property>

                    <name>hadoop.proxyuser.hadoop.hosts</name>

                    <value>*</value>

     </property>

    配置设为任意用户组

     <property>

                    <name>hadoop.proxyuser.hadoop.groups</name>

                    <value>*</value>

    </property>



    #wq 保存退出!

    8.修改etc/hadoop/hdfs-site.xml配置文件,添加信息。

    通过命令 #vi hdfs-site.xml

    (1)配置namenode文件目录

    <property>

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

                    <value>/data/dfs/name</value>

                    <final>true</final>

    </property>

    (2)配置datanode文件目录

    <property>

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

                    <value>/data/dfs/data</value>

                    <final>true</final>

    </property>

    (3)配置数据块副本和HDFS权限

     <property>

                    <name>dfs.replication</name>

                    <value>1</value>

     </property>

     <property>

                    <name>dfs.permissions</name>

                    <value>false</value>

     </property>



    #wq保存并退出


    9、修改etc/hadoop/mapred-site.xml配置文件,添加如下信息。

    #cp mapred-site.xml.template mapred-site.xml

    #vi mapred-site.xml


    配置mapreduce环境为yarn

     <property>

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

                    <value>yarn</value>

     </property>


    #wq保存退出

    10 、修改etc/hadoop/yarn-site.xml配置文件。

    #vi yarn-site.xml

    为了能够运行mapreduce程序,我们需要让.nodemanger在启动时加载shuffle。

    所以需要下面设置

    <property>

                    <name>yarn.nodemanager.aux-services</name>

                    <value>mapreduce_shuffle</value>

    </property>



    #wq 保存退出

    11、修改etc/hadoop/slaves,添加如下信息。即slaves文件

    #vi slaves


    现在是伪分布式单节点集群,所以datanode和namedata在一个节点上。

    12、设置总结 : jdk环境变量配置是放在/etc/profile.d    hadoop环境变量配置是放在/etc/profileHadoop环境变量

    切换到root用户下,修改/etc/profile文件

    #su root

    不是HADOOP_HOME=/usr/java/hadoop-2.2.0  ,因为前面更改名字了



    #wq 保存并退出

    注意 : jdk环境变量配置是放在/etc/profile.d    hadoop环境变量配置是放在/etc/profile

    13、使配置文件生效

    #source /etc/profile


    第四、测试hadoop运行

         

    1、切换到hadoop用户,退回到hadoop目录下。

    #su hadoop

    #cd ..

    #cd ..

    #ls


    2、格式化namenode

    #bin/hadoop namenode  -format


    3 启动集群(每次开机时候,都要启动)

    #sbin/start-all.sh 


    4、查看集群进程

    #jps


    5.打开本地的hosts文件,修改设置,然后,保存,退出。


    添加  192.168.159.22  localhost(注意,你们的电脑的用户名称是什么,就相应的写什么,比如,博主的是 kkc )  到其中


    7、 最后,现在是来验证hadoop是否安装成功

    在Windows上可以通过 http://localhost:50070 访问WebUI来查看NameNode,集群、文件系统的状态。这里是HDFS的Web页面

    由于,博主的电脑设置的http//kkc:50070  


    OK ,单节点的环境搭建成功!



    参考博客------好记性不如烂笔头!

  • 相关阅读:
    MySQL数据库表的设计和优化(上)
    MySQL性能优化最佳实践20条
    MySQL高性能优化指导思路
    MySQL 5.6 my.cnf优化后的标准配置(4核 16G Centos6.5 x64)
    MySQL优化之索引优化
    MySQL优化之SQL语句优化
    MySQL优化之配置参数调优
    Apache的ab测试
    FastCGI模式下安装Xcache
    除了用作缓存数据,Redis还可以做这些
  • 原文地址:https://www.cnblogs.com/DeepRunning/p/9206027.html
Copyright © 2011-2022 走看看