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

[经验分享] CentOS版hadoop完全分布初步搭建

[复制链接]

尚未签到

发表于 2017-12-17 16:13:20 | 显示全部楼层 |阅读模式
  (之前学习时的记录)
  整理一下在搭建hadoop完全分布模式时的相关步骤,及搭建过程中遇到的一些问题。
  相关环境:
  环境:基于win7的VM中CentOS64位系统
  台数:3台;分别为master、slave1、slave2
  hadoop版本:CDH3-U6
  所用到的工具:Xshell(远程链接管理工具)、filezilla(可以远程移动文件)
DSC0000.jpg

  第一部分:在VM中安装CentOS
  1、下载
  VM自己从网上下载,尽量不要装最新版本的;CentOS选择后缀为iso版本下载
  2、安装
  VM自己安装;
  安装好VM后,开始安装CentOS;相关安装可以参考链接如下:
  http://www.91linux.com/html/2014/CentOS_0415/9725.html
  刚开始安装可以照着教程来装,参考教程上安装的是Desktop(桌面版)的,比较熟练的话尽量安装成Basic Serve版,相关步骤一样,只是后者没有操作界面,完全是代码行。
  3、每个CentOS信息
  对于初步搭建hadoop完全分布来说,安装三台Linux系统已足以。对于此,我分别安装了命名为master、slave1、slave2三台虚拟机,为Basic Serve版,相关配置后续再说。
第二部分、在CentOS中搭建hadoop集群

  1、修改主机名和用户名(root用户执行,所有节点都需执行)
  1)对上一步已搭建完的三个虚拟机,分别增加hadoop用户(root用户执行,所有节点都执行):
DSC0001.jpg

  [iyunv@localhost ~]#useradd hadoop
  #添加以hadoop为用户名的用户
  [iyunv@localhost ~]#passwd hadoop
  #修改该用户密码,密码统一设置为hadoop
  2)修改主机名(root用户,所有节点都需要执行)
  [iyunv@localhost ~]#vi /etc/sysconfig/network
  #使用VI对network文件进行修改,文件打开后会出现:
  NETWORK=yes
  HOSTNAME=localhost.localhost
  按键盘的I键进行编辑,对于完全分布式来说,分别修改其“localhost.localhost”为“master”“slave1”“slave2”,修改完之后按Esc+Shift:+wq进行保存退出。
DSC0002.jpg

  3)节点之间互访配置(这一步可以在配置完IP地址后在执行,所有节点均执行)
  [iyunv@localhost ~]#vi /etc/hosts
  #打开host文件,在文件末尾追加:
  192.168.1.10    master
  #masterIP地址与主机名
  192.168.1.11   slave1
  # slave1IP地址与主机名
  192.168.1.12   slave2
  # slave2IP地址与主机名
  2、配置静态IP(root用户执行,所有节点都需执行)
  1)相关注意:在安装上CentOS后,会存在一个如何与宿主机进行正常通信的问题,在这一步中,首先在VM的网络虚拟配置中找到网络链接方式,选择为“桥接”模式,并选择具体网卡,
  接着在系统设置中,设置虚拟机的连接方式为“桥接”;打开宿主机(Win7)中的cmd,输入ipconfig查看宿主机网段并记下,我的这台网段是10.129.49.xxx,所以在虚拟机桥接模式下,
  所有虚拟机IP都应设为10.129.49.xxx(所有节点后边的数都不能相同)。
  2)修改ifcfg-eth0文件(eth0代表网卡,可能有的虚拟机的网卡会不同,具体为哪个视虚拟机而定,root用户执行,所有节点都需执行)
  在root用户下,输入
  [iyunv@localhost ~]#cd /etc/sysconfig/network-scripts
  #进入network-scripts目录
  [iyunv@localhost ~]#ll
  #查看目录下所有文件,看你的网卡是否是eth0,如果不是,视具体虚拟机而定
  [iyunv@localhost ~]#vi /etc/sysconfig/network-scripts/ifcfg-eth0
  #进ifcfg-eth0文件,并进行编辑修改:(红色为修改部分)
  DEVICE=eth0
  BOOTPROTO=static
  NM_CONTROLLED=yes
  ONBOOT=yes
  IPADDR=192.168.1.10
  #静态IP地址
  NETMASK=255.255.255.0
  #掩码地址
  GATWAY=192.168.1.1
  #网关地址
  3)修改UUID
  [iyunv@localhost ~]#vi /etc/sysconfig/network-scripts/ifcfg-eth0
  #删除MAC地址行
  [iyunv@localhost ~]#rm  -rf  /etc/udev/rules.d/70-persistent-net.rules
  #删除网卡和MAC地址绑定文件
  4)重启并查看IP
  [iyunv@localhost ~]#reboot
  [iyunv@localhost ~]#ifconfig
  打开宿主机的cmd,输入ping 192.168.1.10查看是否能进行通信,如果能则表示配置成功;分别配置slave1、slave2。
  3、使用Xshell进行远程登录
  使用Xshell登录是因为CentOS自带界面不可更改,也无法调整字体大小
  对配置好IP的虚拟机用Xshell进行远程登录(即IP地址、用户名、用户密码),登陆后设置界面,调整字体大小。
  4、配置SSH无密码链接
  1)永久关闭防火墙(root用户)
  [iyunv@localhost ~]#chkconfig iptables off
  2)启动SSH服务命令(root用户)
  [iyunv@localhost ~]#service ssh restart
  #重启SSH
  [iyunv@localhost ~]#rpm -qa | grep openssh
  #检查SSH是否安装成功
  如果出现下面的信息:
  openssh-askpass-5.3p1-81.e16.x86_64
  openssh-5.3p1-81.e16.x86_64
  openssh-clients-5.3p1-81.e16.x86_64
  openssh-server-5.3p1-81.e16.x86_64
  再执行命令:
  [iyunv@localhost ~]#rpm -qa | grep rsync
  如果出现以下信息:
  rsync-3.0.6-9.e16.x86_64
  说明SSH安装成功。
  3)生成SSH公匙(hadoop用户)
  在主节点即master上执行
  [hadoop@master ~]$ssh-keygen -t rsa
  #遇到提示回车即可,最后显示图形为公匙的指纹加密
  [hadoop@master ~]$ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@master
  [hadoop@master ~]$ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@slave1
  [hadoop@master ~]$ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@slave2
  #将公匙发至从节点的slave1、slave2用户
  注意:对于完全分布来说,只在主节点配置SSH无密码链接即可,之后把公匙发至从节点
  4)验证安装(hadoop用户)
  [hadoop@master ~]$ssh master
  [hadoop@master ~]$ssh slave1
  [hadoop@master ~]$ssh slave2
  #如果没有出现输入密码提示则表示安装成功,执行这条命令后会远程登录从节点,返回主节点需执行exit
  若按照上面步骤执行任然不成功,有可能是/home/hadoop/.ssh文件夹的权限问题。以hadoop用户执行
  [hadoop@master ~]$chmod 700 /home/hadoop/.ssh
  [hadoop@master ~]$chmod 700 /home/hadoop/.ssh/authorized_keys
  5、安装JDK(root用户,所有节点都需执行)
  CentOS预装的是Open JDK,但还是要推荐用Oracle JDK,下载地址为:
  http://www.oracle.com/technetwork/Java/Javase/downloads/index.html
  1)修改/opt文件夹权限
  [iyunv@localhost ~]#chown -R hadoop /opt
  2)卸载Open JDK
  [iyunv@localhost ~]#java -version
  #查看Java版本
  [iyunv@localhost ~]#rpm -qa | grep java
  #查看Java详细信息
  显示如下信息:
  java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
  
  java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5
  卸载:
  [iyunv@localhost
~]#rpm -e --nodeps
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115

  
  [iyunv@localhost ~]#rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5
  或者执行指令卸载:
  [iyunv@localhost
~]#
yum -y remove java java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
  [iyunv@localhost
~]#
yum -y remove java java-1.6.0-openjdk-1.6.0.0-1.7.b09.el5
  3)安装Oracle JDK(hadoop用户也可)
  在第1)步给/opt文件夹加权限后,就可以使filezilla工具直接把在Windows中的JDK安装包直接拖至/opt文件夹下,然后进行解压:
  [iyunv@localhost
~]#tar -xzvf jdk-6u43-linux-x64.tar.gz

  #解压JDK至/opt文件夹下
  解压完后,删除JDK安装包
  [iyunv@localhost
~]#rm -rf jdk-6u43-linux-x64.tar.gz

  #移除JDK安装包
  4)配置环境变量
  [iyunv@localhost ~]#vi /etc/profile
  #对profile文件进行编辑
  对文件追加:
  export JAVA_HOME=/opt/jdk1.6.0
  export PATH=$PATH:$JAVA_HOME/bin
   DSC0003.jpg
  使环境变量立即生效,执行命令:
  [iyunv@localhost ~]#source /etc/profile
  5)验证安装
  [iyunv@localhost ~]#java -version
  出现如下信息,则安装成功:
  #查看Java版本
  Java version "1.6.0_31"
  Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
  Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01,mixed mode)
   DSC0004.jpg
  6、配置hadoop(hadoop用户,只在主节点执行)
  前面已经对/opt权限进行过修改,这一步就直接在/opt文件中安装配置即可;
  利用filezilla工具把安装包发送至/opt文件夹下(只在hadoop主节点即master节点执行),执行解压缩。
DSC0005.jpg

  1)解压文件
DSC0006.jpg

  [hadoop@master ~]$tar -zxvf hadoop-0.20.2-cdh3u6.tar.gz
  #解压缩hadoop安装包
  2)修改配置文件(hadoop用户在主节点执行)
  Hadoop的配置文件都在/opt/ hadoop-0.20.2-cdh3u6/conf下,对其中主要文件进行配置:
DSC0007.jpg

  修改hadoop-env.sh
  在文件hadoop-env.sh末尾追加环境变量
  export JAVA_HOME=/opt/jdk1.6.0
  export HADOOP_HOME=/opt/hadoop-0.20.2-cdh3u6
  修改core-site.xml
  修改core-site.xml为:
  

  <configuration>  

  <property>
  

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

  <value>hdfs://master:9000</value>
  

  </property>
  

  </configuration>
  

  修改hdfs-site.xml
  修改hdfs-site.xml为:
  

<configuration>  

  
<property>
  

  <name>dfs.replication</name>
  

  <value>3</value>
  

  
</property>
  

  </configuration>
  

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

  <value>/opt/hdfs/name</value>
  

  
</property>
  

  <property>
  

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

  <value>/opt/hdfs/data</value>
  

  </property>
  

  
</configuration>
  

  修改mapred-site.xml
  修改mapred-site.xml为:
  

<configuration>  

  
<property>
  

  <name>mapred.job.tracker</name>
  

  <value>master:9001</value>
  

  </property>
  

  
</configuration>
  

  3)修改masters文件
  修改masters文件为:
  master
  4)修改slaves文件
  修改slaves文件为:
  slave1
  slave2
  5)将安装文件发送至从节点
  利用scp命令将安装文件夹分发到从节点的相同路径下:
  [hadoop@master ~]$scp -r /opt/hadoop-0.20.2-cdh3u6 hadoop@slave1:/opt
  [hadoop@master ~]$scp -r /opt/hadoop-0.20.2-cdh3u6 hadoop@slave2:/opt
  至此,Hadoop安装配置工作全部完成,为了能在任何路径下使用Hadoop命令,还需要配置环境变量(root用户执行,所有节点都需要执行)。对文件/etc/profile追加如下信息:
  export HADOOP_HOME=/home/hadoop/hadoop-0.20.2-cdh3u6
  export PATH=$PATH:$HADOOP_HOME/bin
DSC0008.jpg

  修改完后,执行命令行(root用户执行,所有节点都需要执行):
  [iyunv@localhost ~]#source /etc/profile
  7、格式化HDFS
  在第一次启动Hadoop之前,必须先将HDFS格式化。执行命令:
  [hadoop@master ~]$hadoop namenode -format
  #如果别的路径执行不了,则进入/opt/hadoop-0.20.2-cdh3u6/bin文件下执行
  按照提示输入Y,格式化成功后会出现格式化成功的信息:
  16/1/20 10:50:51 INFO common.Storage: Storage directory /opt/hdfs/name has been successfully formatted.
  8、启动Hadoop并验证安装
  1)启动Hadoop
  首先赋予脚本可执行权限(hadoop用户所有节点都需要执行),执行命令:
  [hadoop@master ~]$chmod +x -R /opt/hadoop-0.20.2-cdh3u6/bin
  然后执行启动脚本(hadoop用户,主节点执行),执行命令:
  [hadoop@master ~]$./opt/ hadoop-0.20.2-cdh3u6/bin/start-all.sh
   DSC0009.jpg
  执行完成后,执行jps命令查看进程是否启动成功,若成功;
  [hadoop@master ~]$jps
  主节点会出现:
  NameNode
  JobTracker
  SecondaryNameNode
  slave1节点出现:
  DateNode
  TaskTracker
  slave2节点出现:
  DateNode
  TaskTracker
  9、验证是否安装成功
  在新安装的集群上运行一个MapReduce程序,判断集群是否安装成功,Hadoop例库中自带多中已经写好的可以运行的MR程序,此处,此处以最简单的单词计数程序WordCount进行集群平台验证:
  1)在集群的任何一台电脑上创建一个文本文件命名为words,这里以master为例。对文本文件添加内容:如“data mining on data warehouse”,如果程序正常运行,最终结果为:
  data  2
  mining  1
  on  1
  warehouse  1
  2)在HDFS中新建目录并上传本地文件,执行命令如下:
  #HDFS中新建目录
  [hadoop@master ~]$hadoop dfs –mkdir /user/hadoop/input
  #将本地文件上传
  [hadoop@master ~]$hadoop dfs –put /opt/words /user/hadoop/input
  3)运行程序并查看结果
  #运行单词统计程序
  [hadoop@master ~]$hadoop jar /opt/hadoop-0.20.2/hadoop-examples-0.20.2- cdh3u6.jar wordcount /user/hadoop/input /user/hadoop/output
  #查看程序输出
  [hadoop@master ~]$hadoop dfs –cat /user/hadoop/output/part-r-00000
  屏幕打印为:
  data  2
  mining  1
  on  1
  warehouse  1
  表示集群可以正常运行,到此Hadoop安装结束。

运维网声明 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-425053-1-1.html 上篇帖子: hadoop(ha)&hbase(双master)安装 下篇帖子: 搭建简单的hadoop集群(译文)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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