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

[经验分享] Ubuntu 12.04搭建hadoop单机版环境

[复制链接]

尚未签到

发表于 2018-10-31 12:20:29 | 显示全部楼层 |阅读模式
  前言:
  本文章是转载的,自己又加上了一些自己的笔记整理的
  详细地址请查看Ubuntu 12.04搭建hadoop单机版环境
  Hadoop的三种运行模式
  独立模式:无需任何守护进程,所有程序都在单个JVM上执行。
  伪分布模式:Hadoop守护进程运行在本地机器上,模拟一个小规模的集群。
  全分布模式:Hadoop守护进程运行在一个集群中。
  一. 安装Ubuntu;
  二. 在Ubuntu下创建hadoop用户组和用户;
  1. 创建hadoop用户组:
sudo groupadd hadoop  如图:
DSC0000.png

  2. 创建hadoop用户:
sudo useradd -ms /bin/bash -g hadoop hadoop  如图:
DSC0001.jpg

  3. 给hadoop用户添加sudo权限,打开/etc/sudoers文件:
sudo gedit /etc/sudoers  按回车键后就会打开/etc/sudoers文件了,给hadoop用户赋予root用户同样的权限。
  在root   ALL=(ALL:ALL)   ALL下添加hadoop   ALL=(ALL:ALL)  ALL,
hadoop  ALL=(ALL:ALL) ALL  如图:
DSC0002.png

  三. 在Ubuntu下安装JDK
  使用如下命令执行即可:
sudo apt-get install openjdk-6-jre  (这里我自己下载的jdk,具体的安装方法见我的另一篇Linux下安装JDK和Eclipse)
  如图:
DSC0003.jpg

  四. 修改机器名
  每当ubuntu安装成功时,我们的机器名都默认为:ubuntu ,但为了以后集群中能够容易分辨各台服务器,需要给每台机器取个不同的名字。机器名由 /etc/hostname文件决定。
  1. 打开/etc/hostname文件:
sudo gedit /etc/hostname  2. 将/etc/hostname文件中的ubuntu改为你想取的机器名。这里我取"dubin-ubuntu"。 重启系统后才会生效。
  3. 为了彻底的改变你的主机名,还需要更改vim /etc/hosts,将其中的
  127.0.1.1改成和你hostname中一样的名字
  五. 安装ssh服务
  这里ssh可以实现远程登录和管理,具体可以参考其他相关资料。安装ssh的目的就是为了启动守护进行,且必须是无密码登陆的。
  安装openssh-server,
sudo apt-get install ssh openssh-server  这时假设您已经安装好了ssh,您就可以进行第六步了哦~
  六、 建立ssh无密码登录本机
  首先要转换成hadoop用户,执行以下命令:
su - hadoop  如图:
DSC0004.png

  ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式。
  1. 创建ssh-key,,这里我们采用rsa方式:
ssh-keygen -t rsa -P ""  如图:
DSC0005.jpg

  (注:回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的)
  2. 进入~/.ssh/目录下,将id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件的:
cd ~/.ssh
  cat>  如图:
DSC0006.jpg

  (完成后就可以无密码登录本机了。)
  3. 登录localhost:
ssh localhost  如图:
  ( 注:当ssh远程登录到其它机器后,现在你控制的是远程的机器,需要执行退出命令才能重新控制本地主机。)
  4. 执行退出命令:
exit  七. 安装hadoop
  这里我的安装版本为:hadoop-1.1.2(http://www.apache.org/dyn/closer.cgi/hadoop/common/  )
  1. 假设hadoop-0.20.203.tar.gz在桌面,将它复制到安装目录 /usr/local/下:
sudo cp hadoop-1.1.2.tar.gz /usr/local/  2. 解压hadoop-1.1.2.tar.gz:
cd /usr/local  sudo tar -zxf hadoop-1.1.2.tar.gz
  3. 将解压出的文件夹改名为hadoop:
sudo mv hadoop-1.1.2 hadoop1.1.2  4. 将该hadoop1.1.2文件夹的属主用户设为hadoop:
sudo chown -R hadoop:hadoop hadoop1.1.2  5. 打开hadoop/conf/hadoop-env.sh文件:
vim hadoop1.1.2/conf/hadoop-env.sh  6. 配置conf/hadoop-env.sh(找到#export JAVA_HOME=...,去掉#,然后加上本机jdk的路径):
export JAVA_HOME=/usr/lib/jvm/java-6-openjdk  这个主要就是为了配置hadoop运行环境的jdk路径
  7. 打开conf/core-site.xml文件:
sudo gedit hadoop/conf/core-site.xml  编辑如下:

  •   
  •   
  •   
  •   
  •   
  •   fs.default.name
  •   hdfs://localhost:9000
  •   
  •   
  该文件主要是 fs.default.name,是一个描述集群中NameNode结点的URI(包括协议、主机名称、端口号)。该配置文件主要用于设置Hadoop的默认文件系统,而文件系统由URI指定,这里我们设置的是hdfs文件系统。这里的这种配置方式是属于伪分布式模式,当配置为全分布式模式的时候,需要改为hdfs://namenod/。集群里面的每一台机器都需要知道NameNode的地址。DataNode结点会先在NameNode上注册,这样它们的数据才可以被使用。独立的客户端程序通过这个URI跟DataNode交互,以取得文件的块列表。
  8. 打开conf/mapred-site.xml文件:
vim hadoop1.1.2/conf/mapred-site.xml  编辑如下:

  •   
  •   
  •   
  •   
  •   
  •   mapred.job.tracker
  •   localhost:9001
  •   
  •   
  该配置文件主要用于配置JobTracker的主机(或者IP)和端口,同样这是伪分布模式,当在全分布式模式中value的值为jobtracker:8021
  9. 打开conf/hdfs-site.xml文件:
vim hadoop/conf/hdfs-site.xml  编辑如下:

  •   
  •   
  •   dfs.name.dir
  •   /usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2
  •   
  •   
  •   dfs.data.dir
  •   /usr/local/hadoop/data1,/usr/local/hadoop/data2
  •   
  •   
  •   dfs.replication
  •   2
  •   
  •   
  dfs.replication -它决定着系统里面的文件块的数据备份个数。对于一个实际的应用,它 应该被设为3(这个  数字并没有上限,但更多的备份可能并没有作用,而且会占用更多的空间)。少于三个的备份,可能会影响到数据可靠性(系统故障时,也许会造成数据丢失)
  dfs.data.dir - 这是DataNode结点被指定要存储数据的本地文件系统路径。DataNode结点上的这个路径没有必要完全相同,因为每台机器的环境很可能是不一样的。但如果每台机器上的这个路径都是统一配置的话,会使工作变得简单一些。默认的情况下,它的值hadoop.tmp.dir, 这个路径只能用于测试的目的,因为,它很可能会丢失掉一些数据。所以,这个值最好还是被覆盖。
  dfs.name.dir - 这是NameNode结点存储hadoop文件系统信息的本地系统路径。这个值只对NameNode有效,DataNode并不需要使用到它。
  10. 打开conf/masters文件,添加作为secondarynamenode的主机名,作为单机版环境,这里只需填写 localhost 就Ok了。
vim hadoop/conf/masters  11. 打开conf/slaves文件,添加作为slave的主机名,一行一个。作为单机版,这里也只需填写 localhost就Ok了。
vim hadoop/conf/slaves  八. 在单机上运行hadoop
  1. 进入hadoop目录下,格式化hdfs文件系统,初次运行hadoop时一定要有该操作,
cd /usr/local/hadoop/  bin/hadoop namenode -format
  2. 当你看到下图时,就说明你的hdfs文件系统格式化成功了。
DSC0007.jpg

  3. 启动bin/start-all.sh:
bin/start-all.sh  4. 检测hadoop是否启动成功:
jps  如果有Namenode,SecondaryNameNode,TaskTracker,DataNode,JobTracker五个进程,就说明你的hadoop单机版环境配置好了!
  如下图:
DSC0008.png

  后记:
  1 该部署安装环境如下:
  VirtualBox-4.2.16-86992-Win
  ubuntu12.04
  jdk-6u33-linux-i586.bin
  hadoop-1.1.2.tar.gz
  经过测试完全可以正常运行
  2 在执行hadoop命令的时候,都是调用hadoop/bin中的命令,可以将hadoop安装路径设置到path中,这样每次执行hadoop就不用加上绝对路径了。具体的做法如下:
  sudo vim /etc/profile添加两句
  export HADOOP_INSTALL=/usr/local/hadoop1.1.2
  PATH=$HADOOP_INSTALL/bin:$PATH  然后注销后输入hadoop version即可
  3 由于在复制hadoop的时候已经创建了专门的用户与用户组来操作hadoop,一定要为该hadoop安装ssh无密码登陆,在安装hadoop的时候,记得也要全称用刚创建的用户来安装,且一定要使用
  chown -R hadoop:hadoop hadoop1.1.2来将所有的文件权限改为hadoop用户。在安装后,如果使用jps只是显示几个进程,可以切换到root中,再次执行该命令chown -R hadoop:hadoop hadoop1.1.2
  当安装后,如果jps显示的进程不到5个,则可以将hadoop安装目录下生成data1和data2或者datalog1和datalog2删除了,再重新利用bin/hadoop namenode -format
  4 分布式存储的角度来说,集群中的结点由一个NameNode和若干个DataNode组成,另有一个SecondaryNameNode作为NameNode的备份。从分布式应用的角度来说,集群中的结点由一个JobTracker和若干个TaskTracker组成,JobTracker负责任务的调度,TaskTracker负责并行执行任务。TaskTracker必须运行在DataNode上,这样便于数据的本地计算。JobTracker和NameNode则无须在同一台机器上。



运维网声明 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-628964-1-1.html 上篇帖子: Hadoop云计算系统概述 下篇帖子: 使用python来访问Hadoop HDFS存储实现文件的操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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