配置hadoop
一、相关准备 下载hadoop-0.20.2.tar.gz http://hadoop.apache.org/core/releases.html下载 jdk1.6 http://java.sun.com/javase/downloads/index.jsp
操作系统为 centos5.3
并有分区 /data1 /data2
我这次hadoop环境搭建中所使用的硬件为3台服务器,其中一台作为名称节点(namenode),其余两台作为数据节点(datanode)。
引用namenode: 172.16.27.21 主机名为 master datanode:172.16.27.20 主机名为 slave1
172.16.27.19 主机名为 slave2
对于Hadoop来说,在HDFS看来,节点分为Namenode 和Datanode, 其中Namenode只有一个,Datanode可以是很多;在MapReduce看来,节点又分为Jobtracker和 Tasktracker,其中Jobtracker只有一个,Tasktracker可以是很多。所以通常有两台master,一台作NameNode,一台作为JobTracker,剩下的都为slaves,同时当做DataNode和 TaskTracker使用。当然也可以将NameNode和JobTracker都放在一台master上面。这里让master做为master和Jobtracker,slave1、slave2作为DataNode和TaskTracker。
二、配置环境
1.以root登录每台机器编辑/etc/hosts文件,添加如下内容:
引用172.16.27.21master 172.16.27.20slave1
172.16.27.19slave2
2.在每台机器上以root登录,分别建立hadoop用户,密码都为hadoop
引用useradd hadoop password hadoop
3.配置SSH环境,实现无密码远程访问
在Hadoop启动以后,Namenode是通过SSH(Secure Shell)来启动和停止各个datanode上的各种守护进程的,这就需要在节点之间执行指令的时候是不需要输入密码的方式,故我们需要配置SSH使用无密码公钥认证的方式。以hadoop登录master,执行 ssh-keygen -t rsa 然后一路回车,完成后生成 .ssh/id_rsa.pub 把这个文件复制为authorized_keys 看权限是否为644 然后执行127.0.0.1 如果不需要密码登录就达到要求了,然后以hadoop 用户登录数据节点服务器 172.16.27.20 172.16.27.19 执行 ssh-keygen -t rsa 创建.ssh 目录 。然后把名称服务器172.16.27.21 上的authorized_keys 拷贝到数据节点的 /home/hadoop/.ssh/目录下。从名称节点用 ssh hadoop@slave1 ssh hadoop@slave2 登录到数据节点 如果不需要密码能登录成功 则ssh配置正确
4.在三台机器上安装jdk
引用chmod 755 jdk-6u24-linux-i586-rpm.bin ./jdk-6u24-linux-i586-rpm.bin
编辑三台机器的/etc/profile文件,添加如下内容
引用export JAVA_HOME=/usr/java/jdk1.6.0_24 export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
然后执行 source /etc/profile 使其立即生效
引用三、安装配置hadoop 三台机器都需要如下操作或者在其中一台服务器上配置好,然后再拷贝到其他服务器上
1. 将下载好的 hadoop-0.20.2.tar.gz 解压到 /usr/local 目录
引用tar xvzf hadoop-0.20.2.tar.gz -C /usr/local mv /usr/local/hadoop-0.20.2 /usr/local/hadoop
2. 修改文件属主,以便hadoop能正确使用权限
引用chown -R hadoop:hadoop /data1 /data2 /usr/local/hadoop chmod -R 777 /data1 /data2
3.修改/etc/profile 文件 设置HADOOP_HOME
引用export HADOOP_HOME=/usr/local/hadoop source /etc/profile 使其立即生效
4.修改/usr/local/hadoop/conf/masters 文件为
引用master 5. 修改/usr/local/hadoop/conf/slaves文件为
引用slave1 slave2
6.修改文件/usr/local/hadoop/conf/hadoop-env.sh
引用export JAVA_HOME=/usr/java/jdk1.6.0_24 export HADOOP_LOG_DIR=/data2/logs
分区/data2 用于存放hadoop日志
7.修改配置文件/usr/local/hadoop/conf/mapred-site.xml 使其内容为
引用
mapred.job.tracker
master:54311
mapred.child.java.opts
-Xmx64m
8.修改配置文件/usr/local/hadoop/conf/core-site.xml 使其内容为
引用
fs.default.name
hdfs://master:54310/
dfs.replication
3
hadoop.tmp.dir
/data1/hadoop/tmp/
dfs.name.dir
/data1/hadoop/filesystem/name
dfs.data.dir
/data1/hadoop/filesystem/data
dfs.block.size
67108864
dfs.permissions
false
dfs.web.ugi
hadoop,supergroup
heartbeat.recheck.interval
5000
分区/data1用于存放HDFS数据
9.再次修改文件/etc/profile 添加如下内容:
引用export PATH=$PATH:$HADOOP_HOME/bin 然后执行 source /etc/profile 使其立即生效
引用四、初始化和启动hadoop集群 hadoop的大部分操作都是在名称节点进行的,包括初始化、启动以及停止hadoop服务
1.hadoop初始化
以hadoop登录namenode,然后执行hadoop namenode -format进行初始化操作。这个操作主要是在名称节点生成若干目录,而各个数据节点并没有进行任何操作。一般没有权限问题的话,hadoop初始化操作都会进行的很顺利。
2.hadoop服务启动
在名称服务器执行 start-all.sh 即可启动集群。
3. 状态查看
1)查看进程。一般namenode节点有3个java进程,datanode节点有2个java进程
2)查看端口 查看 54310 54311 50030 50070 50090 端口是否在监听
3)使用hadoop工具查看
引用hadoop dfsadmin -report 4)浏览器查看hadoop存储状态
在浏览器输入http://master:50070http://master:50030 查看其存储状况
4.停止hadoop服务
引用stop-all.sh 就可以把整个hadoop集群停止下来
页:
[1]