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

[经验分享] Hadoop第二天---伪分布式环境搭建

[复制链接]

尚未签到

发表于 2015-7-13 09:20:41 | 显示全部楼层 |阅读模式
  1.准备好Linux镜像,VMware或者VisualBox,然后在虚拟机上面安装Linux系统,保存好用户名和密码。
  2.配置虚拟机过程中,可以把内存设置为1GB,硬盘8GB,网络设置为NAT,开启共享等等。
  3.安装Linux镜像。
  4.解决Linux下中文输入的问题。具体步骤如下:
  (1) 切换到Root用户,或者使用Terminal 键入命令 su 输入root密码。
  (2) 键入yum install "@Chinese Support"。
  (3) 等待完成之后键入exit退出Terminal。
  (4) 回到桌面,进入System->preferences->input method(如果没有,先注销一下)。
  (5) 进入,选择上面的USB IBUS(recommended),点击Input Method Preferences按钮,弹出 IBUS Preferences对话框,选择Input Method选项卡,在下拉菜单里面选择Chinese,并点击Add按钮即可。
  (6) 可以在General选项卡中设置启动栏的提示,切换快捷键等等。
  (7) 再次注销后,就可以使用输入法了。
  5.按照步骤,首先为用户配置root权限。具体方法如下:
  方法一:
  (1) 用Root登陆,或者使用Terminal 键入命令 su 输入root密码。
  (2) 用vi命令打开/etc/sudoers文件,然后找到如下一行:   



        ##Allows people in group wheel to run all commands
        # %wheel    ALL=(ALL)    ALL
  将上述代码修改为:



        ##Allows people in group wheel to run all commands
        %wheel    ALL=(ALL)    ALL
  (3) 修改用户,使其输入root组(wheel)即可。命令如下:



        [iyunv@localhost ~] # usermod -g root xxxx(用户名)
  方法二:
  (1) 用Root登陆,或者使用Terminal 键入命令 su 输入root密码。
  (2) 用vi命令打开/etc/sudoers文件,然后找到如下一行:



        ##Allows root to run any commands anywhere
        root    ALL=(ALL)    ALL
  将上述代码修改为:



        ##Allows people in group wheel to run all commands
        root    ALL=(ALL)    ALL
        xxx(用户名)   ALL=(ALL)    ALL
  6.修改机器名(在修改用户root权限的前提下)。命令如下:
  (1) 使用Terminal 键入命令 su 输入root密码。
  (2) 在Terminal 下键入 vi /etc/sysconfig/network,进入VI修改模式,显示为:



        NETWORKING=yes
        HOSTNAME=localhost.localdomain
  修改为:



        NETWORKING=yes
        NETWORKING_IPV6=no
        HOSTNAME=XXX(主机名)
  (3) 重新启动生效,在Terminal下能看到主机名已经改掉。
  7.开启SSH服务,步骤如下:
  (1) 打开Terminal,键入命令 su ,输入root密码。
  (2) 首先检查是否已经安装了openssh-server,命令如下:



        rpm -qa |grep ssh
  若没有安装,则键入命令,等待完成:



        yum install openssh-server
  (3) 安装完成后会在/etc/init.d目录下增加一个名为sshd的服务,可以设置sshd服务开机自动启动,命令如下:



        chkconfig sshd on
  也可以使用 chkconfig sshd off 来关闭自动启动服务。
  另外,可以使用chkconfig --add sshd 来添加服务,使用 chkconfig --list 来列出所有自启动服务,使用 chkconfig --list sshd 来查看某一个服务是否自启动(0~6均为off代表不会自启动)。
  (4) 键入 chkconfig --list sshd 检查SSHD是否在本运行级别下设置为开机启动,如果没有设置为自动启动,则键入 chkconfig --level 2345 sshd on 设置自动启动。然后键入 service sshd restart 重启服务,键入 netstat -antp |grep sshd 确认22端口是否已经启动,键入 iptables -nL 看看是否放行了22端口,如果没有,则在防火墙设置中设置SSH服务放行。
  (5) 配置SSH免密码模式:
  进入root路径下,运行 ssh-keygen -t rsa 命令,生成SSH密匙对(公钥和私钥,RSA算法)。
  系统会询问你要存放在什么地址下,回车默认地址。
  如果地址已经存在,则会提示你是否Overwrite。
  如果地址不存在,系统会提示你输入私钥的密语,输入并回车即可(输入过程是看不见提示的)。
  输入 cd .ssh 以及 ls 命令,可以查看.ssh路径下生成的私钥,其中有 id_rsa(私钥) 和 id_rsa.pub(公钥) 两个文件。输入 cp id_rsa.pub authorized_keys 来复制出一份公钥,并以authorized_keys命名,以便以后调用。
  8.下载安装JDK 1.6(链接:http://pan.baidu.com/s/1hqvfGBq),使用Terminal 来解压安装 JDK,命令如下:



        /home/hadoop/Desktop/Hadoop/jdk-6u24-linux-i586.bin
  安装完成后,执行编辑profile文件,代码如下:



        vi /etc/profile
  在umas k022前,添加一下语句,配置环境变量: 



        export JAVA_HOME=/home/hadoop/jdk1.6.0_24(具体安装路径和JDK版本可能都不同)
        export JAVA_BIN=/home/hadoop/jdk1.6.0_24/bin
        export PATH=$PATH:$JAVA_HOME/bin
        export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
        export JAVA_HOME JAVA_BIN PATH CLASSPATH
  最后使用 . /etc/profile将修改的文件立即生效(注意.与路径之间有空格)。
  可以键入 java -version 命令来判断环境配置是否正确,若成功出现版本号等信息,表明JDK环境配置成功。
  9.Hadoop的安装:
  (1) 下载Hadoop,推荐Hadoop-0.20.2.tar.gz,因为很多书上都是这个版本,也可以到Apache官网上下载最新的版本。
  链接:http://pan.baidu.com/s/1i3uxGt3。
  (2) 解压Hadoop安装包,命令为:  



        tar xzvf /root/hadoop-0.20.2(需要Root权限)
  再把Hadoop的安装路径添加到/etc/profile中:



        vi /etc/profile
        export HADOOP_HOME=/root/hadoop-0.20.2
        export PATH=$HADOOP_HOME/bin:$PATH
  (3) 修改Hadoop配置文件:
  1.hadoop_env.sh配置文件(conf目录下,各个版本都有不同):



            # The java implementation to use.   Required.
            # export JAVA_HOME=....(将#打开,并修改JAVA_HOME环境变量的路径)
  2.core-site.xml配置文件(conf目录下):        



            
              
                fs.default.name(指定NameNode的IP地址和端口)
                hdfs://localhost:9000(若是完全分布式的模式,则要将此处改为真实NameNode的IP)
              
            
  3.hdfs-site.xml配置文件(conf目录下):



            
          
        dfs.data.dir(指出DataNode存放数据的路径)
        /root/hadoop-0.20.2/data
          
          
        dfs.replication(数据块复制的份数,副本数)
        1(伪分布式只有一个节点,所以是1)
          
            
      4.mapred-site.xml配置文件(conf目录下):        



            
              
                mapred.job.tracker(配置作业机的地址)
                localhost:9001(若是完全分布式,则此处应该为真实的Tracker的IP)
              
            
  10.进入Hadoop目录下,格式化NameNode,然后启动Hadoop服务,可以用jps命令来查看各个Hadoop服务是否启动。
DSC0000.png
DSC0001.png
  再次开机启动hadoop时,就不需要格式化NameNode了,如果发现有一些进程没有启动,则可以进入http://localhost:50070,进入NameNode log下,查看相应进程的日志,可以看到熟悉的JAVA异常,不同情况有不同的解决方法,具体可以百度。
  我遇到的情况是UnknownHostException,发现是/etc/hosts内没有添加用户名对应的IP地址,导致找不到Host。
  解决方案是在/etc/hosts文件中添加相应的主机名。
  如果出现NameNode 的namespaceID 与DataNode 的namespaceID 不同而导致的IOException,具体如下:
  



java.io.IOException: Incompatible namespaceIDs in /home/iic/hadoop-0.20.2/hdfs-data: namenode namespaceID = 1444851414; datanode namespaceID = 620054427
  解决方案是将对应文件的namespaceID修改成一样的就可以了。
  成功启动后的效果如图:
DSC0002.jpg
  
  附:完全分布式环境搭建过程:
  1.配置hosts文件,对集群里面的主机名进行解析,使彼此都能将主机名解析成为IP地址。在所有节点中都将/etc/hosts文件修改,使彼此之间都能把主机名解析为IP。如果集群规模比较大,也可以用DNS服务器来专门解析主机名。
DSC0003.png    
  2.建立hadoop运行账号,不能使用root账号,否则可能会有安全隐患。
DSC0004.png
  3.配置SSH免密码连入,注意:要用上一步新建的账号登陆,并进入主目录下(/home/用户名),每个节点做相同的操作。
DSC0005.png
  将各个节点的authorized_keys的内容互相拷贝,加入到对方的authorized_keys文件中,这样就可以免去密码连接了。
DSC0006.png
  4.下载并解压hadoop安装包。
DSC0007.png
  5.配置NameNode,修改site文件(同伪分布式,注意:修改localhost,变为主机名,以及副本数)。
  6.配置hadoop-env.sh(同伪分布式)。
  7.配置masters和slaves文件。
DSC0008.png
DSC0009.png
  8.向各节点复制hadoop,如果SSH免密码配置未完成,则scp命令会询问用户名和密码,注意:先配置好再复制。
DSC00010.png
  9.格式化NameNode(同伪分布式),要保证先进入hadoop-0.20.2目录下。

  10.启动hadoop。

  11.用jps检验各后台进程是否成功启动(jps指的是观看与JAVA有关的进程的信息),总共5个进程。
  主服务器:
DSC00011.png
  从服务器:
DSC00012.png
  

运维网声明 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-86078-1-1.html 上篇帖子: [hadoop源码阅读][6]-org.apache.hadoop.ipc-ipc总体结构和RPC 下篇帖子: Hadoop阅读笔记(四)——一幅图看透MapReduce机制
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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