hadoop在CentOS上的安装部署

发布时间:2016-12-9 2:35:41 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"hadoop在CentOS上的安装部署",主要涉及到hadoop在CentOS上的安装部署方面的内容,对于hadoop在CentOS上的安装部署感兴趣的同学可以参考一下。

平台:centOS6.4 ,hadoop版本:1.2.1 网上有大量ubuntu的安装教程,在centos上大致相同,只是在jdk安装和ssh无密码登录方面有些许差别,本文记录了安装的大致过程。   1.   jdk安装     检验系统原版本 # java -version # rpm -qa | grep java centOS默认会安装OpenJdk,首先我们要卸载OpenJDK,执行以下操作(不同版本的openjdk信息会有所不同,请根据自己的信息修改): # rpm -e --nodeps tzdata-java-2012c-1.el6.noarch # rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.x86_64 从官网上下载jdk,安装: # rpm -ivh jdk-7-linux-x64.rpm //JDK默认安装在/usr/java中。         # java -version 更新环境变量 #vi + /etc/profile 向文件里面追加以下内容: JAVA_HOME=/usr/java/jdk1.7.0 JRE_HOME=/usr/java/jdk1.7.0/jre PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib export JAVA_HOME JRE_HOME PATH CLASSPATH 使修改生效 # source /etc/profile   //使修改立即生效 # echo $PATH   //查看PATH值 2.创建hadoop用户     不建议使用root用户直接运行hadoop,因为hadoop间需要互相访问,创建普通用户运行;将hadoop.tar.gz放到该用户下,tar-zxvf 解压缩即可  。     3. 修改hosts文件     为方便访问,修改/etc/hosts文件   4.  无密码登录  hadoop也不是必须要求无密码登录,但是每次登录slaves都会要去输入密码,所以还是设上好点。     网上有大量ubuntu的设置方法,但是centOS中要稍微复杂一些。     无密码登录(host A的用户userA 无密码登录 host B,使用B的用户 userB):             userA在自己的.ssh目录下生成一对密钥;             将公钥放到userB的./ssh目录下;     首先查看/etc/ssh/sshd_config 文件,将下面三行的注释去掉,重启sshd服务:            #RSAAuthentication yes             #PubkeyAuthentication yes             #AuthorizedKeysFile     .ssh/authorized_keys     登录时userA使用私钥去匹配userB下的公钥 ,配置如下:         [[email protected] ~]$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa                    //生成密钥,-t:加密算法;-P 密码,此处为空; -f:路径;         [[email protected] ~]$ cat id_dsa.pub ~/.ssh/authorized_keys                    //将公钥放到授权访问key队列中,这样ssh localhost也可以接受本地该用户的无密码登录,可用于测试;               [[email protected] ~]$ scp ~/.ssh/authorized_keys [email protected]:~/.ssh/         //将authorized_keys传到B的userB目录下         [[email protected] ~]$ chmod 700 ~/.ssh                                                    //将.ssh目录权限改为700,默认是775;否则认证会失败,sshd要求安全性高,只允许用户本身有该目录的访问权限         [[email protected] ~]$ chmod 600 ~/.ssh/authorized_keys                        //修改    authorized_keys 权限;否则同样会认证失败;同样是安全性问题。                 [[email protected] ~]$ ssh [email protected]                                                                //测试,如还是需要密码说明配置有问题,ssh -v 打开debug;tail /var/log/secure -n 20  查看日志,具体处理           在hadoop安装中,nameNode要访问其他的机器,所以用namenode生成密钥放到其他的slaves上。 /**     采用了vmware虚拟机克隆的方式,需要注意两个问题:         (1)    记得修改hostname: /etc/sysconfig/network         (2)    当时修改了一下网卡的设置,造成network重启时,报网卡貌似不存在Device does not seem to be present;                         这是因为克隆之后eth*中的mac信息和系统文件不符:/etc/udev/rules.d/70-persistent-net.rules;将该文件删除,重启即可;可以再查看该文件然后配置相应的eth*; **/       5.安装hadoop     hadoop的安装现在已经非常简单,只需要将hadoop.*.*.tar.gz 解压缩即可(tar -zxvf hadoop-1.2.1.tar.gz),然后修改一下配置文件,基本的环境就可以搭建好了。     hadoop分为3种运行模式:单机,伪分布,全分布。3种模式的配置方式不一样,我们看一下主要的参数配置区别:              I 单机模式         hadoop默认单机模式,适合调试开发,只需要将hadoop-env.sh的JAVA_HOME配置好就可以了:             conf/hadoop-env.sh:                 export JAVA_HOME=        //指向本地jdk目录     II 伪分布式         是在一台机器上模拟一个cluster,配置文件如下:              conf/core-site.xml: <configuration>      <property>          < name>fs.default.name</name>          < value>hdfs://localhost:9000</value>      </property> </configuration> conf/hdfs-site.xml: <configuration>      <property>          < name>dfs.replication</name>          < value>1</value>      </property> </configuration> conf/mapred-site.xml: <configuration>      <property>          < name>mapred.job.tracker</name>          < value>localhost:9001</value>      </property> </configuration>       III 分布式         修改hadoop配置文件(所有机器都一样)     (1) conf/hadoop-env.sh                 export JAVA_HOME=        //指向本地jdk目录     (2)conf/core-site.xml         (NameNode 配置)             在<configuration>标签下插入:                             <property>                   <name>fs.default.name</name>                   <value>hdfs://hadoopNN:49000</value>             </property>             <property>                   < name>hadoop.tmp.dir</name>                   < value>/home/jeff/data/hadoop/var</value>             </property>            fs.default.name :NameNode的URI。hdfs://主机名:端口/             hadoop.tmp.dir:Hadoop的默认临时路径,此文件夹需手工创建;                                         这个最好配置,如果在新增节点或者其他情况下莫名其妙的DataNode启动不了,就删除此文件中的tmp目录即可。                                         不过如果删除了NameNode机器的此目录,那么就需要重新执行NameNode格式化的命令。     (3) conf/mapred-site.xml    (job-tracker 配置)                 <property>                       <name>mapred.job.tracker</name>                       <value>hadoopNN:49001</value>                 </property>                 <property>                       < name>mapred.local.dir</name>                       < value>/home/jeff/data/hadoop/var</value>                 </property>            mapred.job.tracker :job-tracker的主机和端口     (4)conf/hdfs-site.xml    (hdfs层的配置)                                  <property>                         <name>dfs.name.dir</name>                         <value>/home/jeff/data/hadoop/name1, /home/jeff/data/hadoop/name2</value>                 </property>                 <property>                         < name>dfs.data.dir</name>                         < value>/home/jeff/data/hadoop/data1, /home/jeff/data/hadoop/data2</value>                 </property>                 <property>                           <name>dfs.replication</name>                           < value>2</value>                 </property>           dfs.name.dir:    NameNode  存储名字空间及事务日志路径;逗号代表复制到所有目录做冗余备份            dfs.data.dir:   DataNode的数据存储空间,数据将存储在所有目录中                                         前两个参数中的目录name1,name2,data1,data2系统会自动创建,预先建立可能会报错。           dfs.replication:    数据复制的数量,默认为3        (5)    修改 conf/masters, conf/slaves,一行对应一个机器                 conf/masters:                     hadoopNN                 conf/slaves:                     hadoop2                     hadoop3                     hadoop4                     ....      6 准备,测试环境     配置好hadoop后,首先需要格式化hdfs文件系统,进到hadoop/bin目录下(方便以后操作,将bin放到$PATH更方便):        hadoop namenode -format     正确格式化后,hadoop就可以运行了:         start-all.sh    //同时启动hdfs和mapreduce     测试:     在hadoop目录下,我们用自带的example.jar中的wordcount测试hadoop的运行:     hadoop jar hadoop-examples-1.2.1.jar worldcount README.txt output    //注意,这里不是 -jar,没有前面的-    ,否则会报错,说一个类找不到     统计README.txt文件中的词频,输出在当前目录下的output/part-r-0000                                                                                                

上一篇:Windbg调试命令详解(1)
下一篇:LeetCode 17: Letter Combinations of a Phone Number

相关文章

相关评论