设为首页 收藏本站
查看: 1134|回复: 0

[经验分享] 如果没能一次成功,那就叫它1.0版吧!

[复制链接]

尚未签到

发表于 2017-12-17 15:42:34 | 显示全部楼层 |阅读模式
  摘自:http://blog.csdn.net/u014039577/article/details/49813531
  由于日志数据量越来越大,数据处理的逻辑越来越复杂,同时还涉及到大量日志需要批处理,当前的flume-kafka-storm-Hbase-web这一套流程已经不能满足当前的需求了,所以只能另寻出路,于是想到了Hadoop这个东西。之前的storm是一个基于流式处理的实时分析系统,相比Hadoop的离线批处理各有千秋,两者相比,我有看到一个比较形象的比喻:Hadoop就像是纯净水,一桶一桶地搬,而Storm是用水管,预先接好,打开水龙头,水就源源不断的出来了。
  同样,Hadoop的批处理也是相当的强大,高性能、高稳定、高吞吐量、分布式、批处理这些特点都是我们所需要的。于是,在目前的形势下,在之前的实时处理的基础上,我们想再加一个离线的日志批处理,于是用到了Hadoop。首先,我们得搭建好Hadoop集群,由于我也是第一次搭建Hadoop集群,其中遇到了许多的问题,可以说是一把辛酸泪,后面终于把集群搭建起来了,可算不负众望。
  下面记录Hadoop的搭建过程:
  1、首先到官网上下载一个Hadoop的压缩安装包,我安装用的版本是hadoop-2.7.1.tar.gz,由于我安装的是最新的版本,和Hadoop之前的版本有很大的差异,所以网上很多的教程都不适用,这也是导致在安装过程中遇到问题所在,下载地址:http://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-2.7.1/hadoop-2.7.1.tar.gz

  2、下载完成后(这个压缩包比较大,有201M,下载比较慢,耐心等待吧),放到Linux某个目录下,这里我用的系统是:CentOS>  3、配置host文件
  进入/etc/hosts,配置主机名和ip的映射, 这里是集群的每个机子都需要配置,这里我的logsrv02是主机(master),其余两台是从机(slave)
[java] view plain copy  

  • [iyunv@logsrv03 /]# vi /etc/hosts
  • 172.17.6.142 logsrv02
  • 172.17.6.149 logsrv04
  • 172.17.6.148 logsrv03
4、jdk的安装(这里我的机子上面已经有了,所以就不需要再安装了)  我使用的jdk是jdk1.7.0_71,没有的需要安装,将jdk下载下来,解压到某个目录下,然后到/etc/profile中配置环境变量,在执行Java -version验证是否安装成功。
  5、配置SSH免密码登陆
  这里所说的免密码登录是相对于主机master来说的,master和slave之间需要通信,配置好后,master和slave进行ssh登陆的时候不需要输入密码。
  如果系统中没有ssh的需要安装,然后执行:
[java] view plain copy  

  • [iyunv@logsrv03 ~]# ssh-keygen -t rsa
会在根目录下生成私钥id_rsa和公钥id_rsa.pub[java] view plain copy  

  • [iyunv@logsrv03 /]# cd ~
  • [iyunv@logsrv03 ~]# cd .ssh
  • [iyunv@logsrv03 .ssh]# ll
  • 总用量 20
  • -rw-------  1 root root 1185 11月 10 14:41 authorized_keys
  • -rw-------  1 root root 1675 11月  2 15:57 id_rsa
  • -rw-r--r--  1 root root  395 11月  2 15:57 id_rsa.pub
  然后将这里的公钥分别拷贝到其余slave中的.ssh文件中,然后要把公钥(id_dsa.pub)追加到授权的key中去:
[java] view plain copy  

  • cat id_rsa.pub >> authorized_keys
  然后修改权限(每台机子都需要修改),这点我也没太弄明白,具体可以参考:http://blog.csdn.net/leexide/article/details/17252369
[java] view plain copy  

  • [iyunv@logsrv04 .ssh]# chmod 600 authorized_keys
  • [iyunv@logsrv04 .ssh]# chmod 700 -R .ssh
  将生成的公钥复制到从机上的.ssh目录下:
[java] view plain copy  

  • [iyunv@logsrv03 .ssh]# scp -r id_rsa.pub root@logsrv02:~/.ssh/
  • [iyunv@logsrv03 .ssh]# scp -r id_rsa.pub root@logsrv04:~/.ssh/
  然后所有机子都需要重启ssh服务
[java] view plain copy  

  • [iyunv@logsrv03 .ssh]# service sshd restart
  • [iyunv@logsrv02 .ssh]# service sshd restart
  • [iyunv@logsrv04 .ssh]# service sshd restart
然后验证免密码登陆是否成功,这里在主机master这里验证:[java] view plain copy  

  • [iyunv@logsrv03 .ssh]# ssh logsrv02
  • [iyunv@logsrv03 .ssh]# ssh logsrv04
  如果在登陆slave不需要输入密码,则免密码登陆设置成功。
  6、开始安装Hadoop,配置hadoop环境变量/etc/profile(所有机子都需要配置)
[java] view plain copy  

  • export HADOOP_HOME=/usr/local/jiang/hadoop-2.7.1
  • export PATH=$PATH:$HADOOP_HOME/bin
7、修改配置文件:(1)、修改hadoop-2.7.1/etc/hadoop/hadoop-env.sh[java] view plain copy  

  • [iyunv@logsrv03 /]# cd usr/local/jiang/hadoop-2.7.1
  • [iyunv@logsrv03 hadoop-2.7.1]# cd etc/hadoop/
  • [iyunv@logsrv03 hadoop]# vi hadoop-env.sh
  • export JAVA_HOME=/usr/local/jdk1.7.0_71
(2)、修改hadoop-2.7.1/etc/hadoop/slaves[java] view plain copy  

  • [iyunv@logsrv03 hadoop]# vi slaves
  • logsrv02
  • logsrv04
(3)、修改hadoop-2.7.1/etc/hadoop/core-site.xml[java] view plain copy  

  • <configuration>
  • <property>
  •                 <name>fs.defaultFS</name>
  •                 <value>hdfs://logsrv03:8020</value>
  •         </property>
  •         <property>
  •                 <name>io.file.buffer.size</name>
  •                 <value>131072</value>
  •         </property>
  •         <property>
  •                 <name>hadoop.tmp.dir</name>
  •                 <value>file:/opt/hadoop/tmp</value>
  •         </property>
  •         <property>
  •                 <name>fs.hdfs.impl</name>
  •                 <value>org.apache.hadoop.hdfs.DistributedFileSystem</value>
  •                 <description>The FileSystem for hdfs: uris.</description>
  •         </property>
  •         <property>
  •                 <name>fs.file.impl</name>
  •                 <value>org.apache.hadoop.fs.LocalFileSystem</value>
  •                 <description>The FileSystem for hdfs: uris.</description>
  •     </property>
  • </configuration>
(4)、修改hadoop-2.7.1/etc/hadoop/hdfs-site.xml[java] view plain copy  

  • <configuration>
  • <property>
  •                 <name>dfs.namenode.name.dir</name>
  •                 <value>file:/opt/hadoop/dfs/name</value>
  •         </property>
  •         <property>
  •                 <name>dfs.datanode.data.dir</name>
  •                 <value>file:/opt/hadoop/dfs/data</value>
  •         </property>
  •         <property>
  •                 <name>dfs.replication</name>
  •                 <value>2</value>
  •         </property>
  • </configuration>
(5)、修改hadoop-2.7.1/etc/hadoop/yarn-site.xml[java] view plain copy  

  • <configuration>

  • <!-- Site specific YARN configuration properties -->
  • <property>
  •                 <name>yarn.resourcemanager.address</name>
  •                 <value>logsrv03:8032</value>
  •         </property>
  •         <property>
  •                 <name>yarn.resourcemanager.scheduler.address</name>
  •                 <value>logsrv03:8030</value>
  •         </property>
  •         <property>
  •                 <name>yarn.resourcemanager.resource-tracker.address</name>
  •                 <value>logsrv03:8031</value>
  •         </property>
  •         <property>
  •                 <name>yarn.resourcemanager.admin.address</name>
  •                 <value>logsrv03:8033</value>
  •         </property>
  •         <property>
  •                 <name>yarn.resourcemanager.webapp.address</name>
  •                 <value>logsrv03:8088</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>
  • </configuration>
(6)、修改hadoop-2.7.1/etc/hadoop/mapred-site.xml [java] view plain copy  

  • <configuration>
  • <property>
  •                 <name>mapreduce.framework.name</name>
  •                 <value>yarn</value>
  •         </property>
  •         <property>
  •                 <name>mapreduce.jobhistory.address</name>
  •                 <value>logsrv03:10020</value>
  •         </property>
  •         <property>
  •                 <name>mapreduce.jobhistory.webapp.address</name>
  •                 <value>logsrv03:19888</value>
  •         </property>
  • </configuration>
8、这些配置文件配置完毕后,然后将整个hadoop-2.7.1文件复制到各个从机的目录下,这里目录最好与主机一致[java] view plain copy  

  • [iyunv@logsrv03 hadoop-2.7.1]# scp -r hadoop-2.7.1 root@logsrv02:/usr/local/jiang/
  • [iyunv@logsrv03 hadoop-2.7.1]# scp -r hadoop-2.7.1 root@logsrv04:/usr/local/jiang/
  9、到这里全部配置完毕,然后开始启动hadoop,首先格式化hdfs
[java] view plain copy  

  • [iyunv@logsrv03 hadoop-2.7.1]# bin/hdfs namenode -format
如果出现successfully formatted则表示格式化成功。  10、然后启动hdfs
[java] view plain copy  

  • [iyunv@logsrv03 hadoop-2.7.1]# sbin/start-dfs.sh
到这里,可以查看启动的进程:主机logsrv03:[java] view plain copy  

  • [iyunv@logsrv03 hadoop-2.7.1]# jps
  • 29637 NameNode
  • 29834 SecondaryNameNode
  从机logsrv02、logsrv04:
[java] view plain copy  

  • [iyunv@logsrv04 hadoop-2.7.1]# jps
  • 20360 DataNode
[java] view plain copy  

  • [iyunv@logsrv02 hadoop-2.7.1]# jps
  • 10774 DataNode
  11、启动yarn
[java] view plain copy  

  • [iyunv@logsrv03 hadoop-2.7.1]# sbin/start-yarn.sh
  到这里,启动的进程:
主机logsrv03:[java] view plain copy  

  • [iyunv@logsrv03 hadoop-2.7.1]# jps
  • 29637 NameNode
  • 29834 SecondaryNameNode
  • 30013 ResourceManager
  从机logsrv02、logsrv04:
[java] view plain copy  

  • [iyunv@logsrv02 hadoop-2.7.1]# jps
  • 10774 DataNode
  • 10880 NodeManager
[java] view plain copy  

  • [iyunv@logsrv04 hadoop-2.7.1]# jps
  • 20360 DataNode
  • 20483 NodeManager
  到这里,恭喜整个集群配置完成,可以通过:http://logsrv03:8088/cluster查看hadoop集群图:
DSC0000.jpg

  查看HDFS:
DSC0001.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-425049-1-1.html 上篇帖子: [原创]Hadoop-2.5.2-HA原文译 下篇帖子: parkin
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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