Hadoop集群在linux下配置第一部分Hadoop 2.2 下载Hadoop我们从Apache官方网站直接下载最新版本Hadoop2.2。
下载地址:/hadoop/common/hadoop-2.2.0/如下图所示,下载红色标记部分即可。
第二部分集群环境搭建1、这里我们搭建一个由两台机器组成的集群:10.11.1.67 tan/123456 yang10.11.1.57 tan/123456 ubuntu1.1 上面各列分别为IP、user/passwd、hostname1.2 Hostname可以在/etc/hostname中修改1.3 这里我们为每台机器新建了一个账户tan.这里需要给每个账户分配sudo的权限。
(切换到root账户,修改/etc/sudoers文件,增加:tan ALL=(ALL) ALL )2、修改/etc/hosts 文件,增加两台机器的ip和hostname的映射关系10.11.1.67 yang10.11.1.57 ubuntu3、打通yang到ubuntu的SSH无密码登陆3.1 安装ssh一般系统是默认安装了ssh命令的。
如果没有,或者版本比较老,则可以重新安装:sudo apt-get install ssh3.2设置local无密码登陆安装完成后会在~目录(当前用户主目录,即这里的/home/tan)下产生一个隐藏文件夹.ssh(ls -a 可以查看隐藏文件)。
如果没有这个文件,自己新建即可(mkdir .ssh)。
具体步骤如下:1、进入.ssh文件夹2、 ssh-keygen -t rsa 之后一路回车(产生秘钥)3、把id_rsa.pub 追加到授权的key 里面去(cat id_rsa.pub >> authorized_keys)4、重启SSH 服务命令使其生效:service ssh restart此时已经可以进行ssh localhost的无密码登陆【注意】:以上操作在每台机器上面都要进行。
3.3设置远程无密码登陆这里只有yang是master,如果有多个namenode,或者rm的话则需要打通所有master 都其他剩余节点的免密码登陆。
(将yang的authorized_keys追加到ubuntu的authorized_keys)进入yang的.ssh目录scp authorized_keys tan@ubuntu:~/.ssh/ authorized_keys_from_yang进入ubuntu的.ssh目录cat authorized_keys_from_yang >> authorized_keys至此,可以在yang上面ssh tan@ubuntu进行无密码登陆了。
4、安装jdk注意:这里选择下载jdk并自行安装,而不是通过源直接安装(apt-get install)4.1、下载jdk(/technetwork/java/javase/downloads/index.html)4.1.1 对于32位的系统可以下载以下两个Linux x86版本(uname -a 查看系统版本)4.1.2 64位系统下载Linux x64版本(即x64.rpm和x64.tar.gz)4.2、安装jdk(这里以.tar.gz版本,32位系统为例)安装方法参/javase/7/docs/webnotes/install/linux/linux-jdk.html4.2.1 选择要安装java的位置,如/usr/目录下,新建文件夹java(mkdir java)4.2.2 将文件jdk-7u40-linux-i586.tar.gz移动到/usr/java4.2.3 解压:tar -zxvf jdk-7u40-linux-i586.tar.gz4.2.4 删除jdk-7u40-linux-i586.tar.gz(为了节省空间)至此,jkd安装完毕,下面配置环境变量4.3、打开/etc/profile(vim /etc/profile)在最后面添加如下内容:JAVA_HOME=/usr/java/jdk1.7.0_40(这里的版本号1.7.40要根据具体下载情况修改)CLASSPATH=.:$JAVA_HOME/lib.tools.jarPATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME CLASSPATH PATH4.4、source /etc/profile4.5、验证是否安装成功:java–version【注意】每台机器执行相同操作,最后将java安装在相同路径下5、关闭每台机器的防火墙ufw disable (重启生效)第三部分Hadoop 2.2安装过程由于hadoop集群中每个机器上面的配置基本相同,所以我们先在namenode上面进行配置部署,然后再复制到其他节点。
所以这里的安装过程相当于在每台机器上面都要执行。
【注意】:master和slaves安装的hadoop路径要完全一样,用户和组也要完全一致1、解压文件将第一部分中下载的hadoop-2.2.tar.gz解压到/home/tan路径下。
然后为了节省空间,可删除此压缩文件,或将其存放于其他地方进行备份。
2、 hadoop配置过程配置之前,需要在cloud001本地文件系统创建以下文件夹:~/dfs/name~/dfs/data~/temp这里要涉及到的配置文件有7个:~/hadoop-2.2.0/etc/hadoop/hadoop-env.sh~/hadoop-2.2.0/etc/hadoop/yarn-env.sh~/hadoop-2.2.0/etc/hadoop/slaves~/hadoop-2.2.0/etc/hadoop/core-site.xml~/hadoop-2.2.0/etc/hadoop/hdfs-site.xml~/hadoop-2.2.0/etc/hadoop/mapred-site.xml~/hadoop-2.2.0/etc/hadoop/yarn-site.xml以上文件默认不存在的,可以复制相应的template文件获得。
配置文件1:hadoop-env.sh修改JAVA_HOME值(export JAVA_HOME=/usr/java/jdk1.7.0_40)配置文件2:yarn-env.sh修改JAVA_HOME值(exportJAVA_HOME=/usr/java/jdk1.7.0_40)配置文件3:slaves (这个文件里面保存所有slave节点)写入以下内容:Ubuntu配置文件4:core-site.xml<configuration><property><name>fs.defaultFS</name><value>hdfs://yang:9000</value></property><property><name>io.file.buffer.size</name><value>131072</value><property><name>hadoop.tmp.dir</name><value>file:/home/hduser/tmp</value><description>Abase for other temporarydirectories.</description></property><property><name>hadoop.proxyuser.tan.hosts</name><value>*</value></property><property><name>hadoop.proxyuser.tan.groups</name><value>*</value></property></configuration>配置文件5:hdfs-site.xml<configuration><property><name>node.secondary.http-address</name><value>yang:9001</value><property><name>.dir</name><value>file:/home/tan/dfs/name</value> </property><property><name>dfs.datanode.data.dir</name><value>file:/home/tan/dfs/data</value> </property><property><name>dfs.replication</name><value>3</value></property><property><name>dfs.webhdfs.enabled</name><value>true</value></property></configuration>配置文件6:mapred-site.xml<configuration><property><name></name><value>yarn</value></property><property><name>mapreduce.jobhistory.address</name><value>yang:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>yang:19888</value></property></configuration>配置文件7:yarn-site.xml<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value> </property><property><name>yarn.resourcemanager.address</name><value>yang:8032</value></property><property><name>yarn.resourcemanager.scheduler.address</name><value> yang:8030</value></property><property><name>yarn.resourcemanager.resource-tracker.address</name><value> yang:8031</value></property><property><name>yarn.resourcemanager.admin.address</name><value> yang:8033</value></property><property><name>yarn.resourcemanager.webapp.address</name><value> yang:8088</value></property></configuration>3、复制到其他节点这里可以写一个shell脚本进行操作(有大量节点时比较方便)cp2slave.sh#!/bin/bashscp /home/tan/hadoop/etc/hadoop/slaves tan@ubuntu:~/hadoop/etc/ hadoop/slavesscp /home/tan/hadoop/etc/hadoop/core-site.xmltan@ubuntu:~/hadoop/etc/hadoop/core-site.xmlscp /home/tan/hadoop/etc/hadoop/hdfs-site.xmltan@ubuntu:~/hadoop/etc/hadoop/hdfs-site.xmlscp /home/tan/hadoop/etc/hadoop/mapred-site.xmltan@ubuntu:~/hadoop/etc/hadoop/mapred-site.xmlscp /home/tan/hadoop/etc/hadoop/yarn-site.xmltan@ubuntu:~/hadoop/etc/hadoop/yarn-site.xml4、启动验证4.1 启动hadoop进入安装目录:cd ~/hadoop/格式化namenode:./bin/hdfs namenode –format启动hdfs: ./sbin/start-dfs.sh此时在yang上面运行的进程有:namenode secondarynamenodeubuntu上面运行的进程有:datanode启动yarn: ./sbin/start-yarn.sh此时在yang上面运行的进程有:namenode secondarynamenode resourcemanager ubuntu上面运行的进程有:datanode nodemanaget查看集群状态:./bin/hdfs dfsadmin –report此时hadoop集群已全部配置完成!!!【注意】:而且所有的配置文件<name>和<value>节点处不要有空格,否则会报错!。