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

[经验分享] 搭建完全分布式的hadoop

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-3-6 10:31:03 | 显示全部楼层 |阅读模式

sudo addgroup hadoop#添加一个hadoop组
sudo usermod -a -G hadoop larry#将当前用户加入到hadoop组
sudo gedit etc/sudoers#将hadoop组加入到sudoer
在root ALL=(ALL) ALL后 hadoop ALL=(ALL) ALL

修改hadoop目录的权限
sudo chown -R larry:hadoop /home/larry/hadoop<所有者:组 文件>

sudo chmod -R 755 /home/larry/hadoop

修改hdfs的权限
sudo bin/hadoop dfs -chmod -R 755 /
sudo bin/hadoop dfs -ls /

修改hdfs文件的所有者

sudo bin/hadoop fs -chown -R larry /


sudo bin/hadoop dfsadmin -safemode leave #解除hadoop的安全模式


hadoop fs -copyFromLocal <localsrc> URI#拷贝本地文件到hdfs

hadoop fs -cat file:///file3 /user/hadoop/file4#将路径指定文件的内容输出到stdout

hadoop fs -chgrp [-R] GROUP URI#改变文件的所属组

hadoop fs -chmod [-R] 755 URI#改变用户访问权限

hadoop fs -chown [-R] [OWNER][:[GROUP]] URI [URI ]#修改文件的所有者

hadoop fs -copyToLocal URI localdst#拷贝hdfs文件到本地

hadoop fs -cp URI [URI …] <dest>#拷贝hdfs文件到其它目录

hadoop fs -du URI [URI …]#显示目录中所有文件的大小

hadoop fs -getmerge <src> <localdst> [addnl]#合并文件到本地目录




用于测试,我用4台虚拟机搭建成了hadoop结构

13134833-69706f5f43ef4920861cab670e300b47.jpg

我用了两个台式机。一个xp系统,一个win7系统。每台电脑装两个虚拟机,要不然内存就满了。


1、安装虚拟机环境

     Vmware,收费产品,占内存较大。

     或

     Oracle的VirtualBox,开源产品,占内存较小,但安装ubuntu过程中,重启会出错。

     我选Vmware。


2、安装操作系统

     Centos,红帽开源版,接近于生产环境。

     Ubuntu,操作简单,方便,界面友好。

     我选Ubuntu12.10.X 32位


3、安装一些常用的软件

     在每台linux虚拟机上,安装:vim,ssh

     sudo apt-get install vim

     sudo apt-get install ssh

     在客户端,也就是win7上,安装SecureCRT,Winscp或putty,这几个程序,都是依靠ssh服务来操作的,所以前提必须安装ssh服务。

     service ssh status 查看ssh状态。如果关闭使用service ssh start开启服务。

     SecureCRT,可以通过ssh远程访问linux虚拟机。

     winSCP或putty,可以从win7向linux上传文件。


4、修改主机名和网络配置

    主机名分别为:master,host2,host3,host4。

    sudo vim /etc/hostname

    网络配置,包括ip地址,子网掩码,DNS服务器。如上图所示。


5、修改/etc/hosts文件。

    修改每台电脑的hosts文件。

    hosts文件和windows上的功能是一样的。存储主机名和ip地址的映射。

    在每台linux上,sudo vim /etc/hosts 编写hosts文件。将主机名和ip地址的映射填写进去。编辑完后,结果如下:

    13141808-ecfcb490235c428092f5857d8e00e7bd.jpg



6、配置ssh,实现无密码登陆

    无密码登陆,效果也就是在master上,通过 ssh host2 或 ssh host3 或 ssh host4 就可以登陆到对方计算机上。而且不用输入密码。

    四台虚拟机上,使用   ssh-keygen -t rsa    一路按回车就行了。

    刚才都作甚了呢?主要是设置ssh的密钥和密钥的存放路径。 路径为~/.ssh下。

    打开~/.ssh 下面有三个文件

    authorized_keys,已认证的keys

    id_rsa,私钥

    id_rsa.pub,公钥   三个文件。

    下面就是关键的地方了,(我们要做ssh认证。进行下面操作前,可以先搜关于认证和加密区别以及各自的过程。)

    ①在master上将公钥放到authorized_keys里。命令:sudo cat id_rsa.pub >> authorized_keys

    ②将master上的authorized_keys放到其他linux的~/.ssh目录下。

       命令:sudo scp authorized_keys hadoop@10.10.11.192:~/.ssh      

               sudo scp authorized_keys 远程主机用户名@远程主机名或ip:存放路径。

    ③修改authorized_keys权限,命令:chmod 644 authorized_keys

    ④测试是否成功

       ssh host2 输入用户名密码,然后退出,再次ssh host2不用密码,直接进入系统。这就表示成功了。


7、上传jdk,并配置环境变量。

    通过winSCP将文件上传到linux中。将文件放到/usr/lib/java中,四个linux都要操作。

    解压缩:tar -zxvf jdk1.7.0_21.tar

    设置环境变量 sudo vim ~/.bashrc

    在最下面添加:

    export JAVA_HOME = /usr/lib/java/jdk1.7.0_21

    export PATH = $JAVA_HOME/bin:$PATH


    修改完后,用source ~/.bashrc让配置文件生效。


8、上传hadoop,配置hadoop

    通过winSCP,上传hadoop,到/usr/local/下,解压缩tar -zxvf hadoop1.2.1.tar

    再重命名一下,sudo mv hadoop1.2.1 hadoop

    这样目录就变成/usr/local/hadoop


    修改环境变量,将hadoop加进去(最后四个linux都操作一次)

    sudo vim ~/.bashrc

    export HADOOP_HOME = /usr/local/hadoop

    export PATH = $JAVA_HOme/bin:$HADOOP_HOME/bin:$PATH


    修改完后,用source ~/.bashrc让配置文件生效。


    修改/usr/local/hadoop/conf下配置文件

    hadoop-env.sh,

      13150338-5dc358a4104940c6803ddd7cbb380463.jpg

    core-site.xml,

    13150455-b0ec81400b3e4ceba5f87e8f0c29790b.jpg

    hdfs-site.xml,

    13150619-dc4cf08002e34f5fbc96341c8abbcb8f.jpg

    mapred-site.xml,

    13150724-aba149169f7741109e96e3e5afe0adfd.jpg

    master,

    13150828-b57df97ef59d41a28c6044188c746470.jpg

    slave,

    13150910-c4baade655ae4e9485baa2f8561b882d.jpg


    上面的hadoop-env.sh,core-site.xml,mapred-site.xml,hdfs-site.xml,master,slave几个文件,在四台linux中都是一样的。

    配置完一台电脑后,可以将hadoop包,直接拷贝到其他电脑上。


    最后要记得,将hadoop的用户加进去,命令为

      sudo chown -R hadoop@hadoop hadoop

      sudo chown -R 用户名@用户组 目录名

    让hadoop配置生效

      source hadoop-env.sh


    格式化namenode,只格式一次

      hadoop namenode -format


    启动hadoop

      切到/usr/local/hadoop/bin目录下,执行 start-all.sh启动所有程序


    查看进程,是否启动

       jps

      master,

       13152105-0178918f3d234fefbc1003f3bd452749.jpg

      host2,

       13152211-f63c6067711445f68abafbe82e400c13.jpg

      host3,host4,的显示结果,与host2相同。



运维网声明 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-15491-1-1.html 上篇帖子: hadoop集群监控工具ambari安装 下篇帖子: hadoop 创建用户及hdfs权限,hdfs操作等常用shell命令
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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