今天心血来潮,学习一下hadoop,现将安装配置过程记录如下,供以后查阅。
1、两台VMWare虚拟机,RHEL6.4(64位)、jdk1.7,相关安装过程省略。
2、master 192.168.36.129 slave1 192.168.36.130,并将主机IP配置信息添加到/etc/hosts中
3、Linux中创建hadoop用户,hadoop安装目录为/usr/local/hadoop
4、将hadoop-2.6.0.tar.gz解压缩到/usr/local/hadoop目录,在/home/hadoop/.bash_profile中添加配置环境变量(这两个环境变量必需配置)
HADOOP_HOME=/usr/local/hadoop
HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
1.在A机下生成公钥/私钥对。
ssh-keygen -t rsa -P ''
会在/home/hadoop下生成.ssh目录,.ssh下有id_rsa和id_rsa.pub。
scp .ssh/id_rsa.pub [email protected]:/home/hadoop/id_rsa.pub.master
cat id_rsa.pub.master >> .ssh/authorized_keys4.此时master可以免密码登录slave1,在slave1上重复1-3步即可配置slave1免密码登录master
2.2参考官网配置参数
官网安装文档链接为http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ClusterSetup.html
现将${HADOOP_CONF_DIR}目录下的core-site.xml、hdfs-site.xml、yarn-site.xml和mapred-site.xml配置内容记录如下:
core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>io.file.buffer.size</name> <value>131072</value> </property> </configuration>
hdfs-site.xml
<configuration> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/hdfs/name</value> </property> <property> <name>dfs.blocksize</name> <value>268435456</value> </property> <property> <name>dfs.namenode.handler.count</name> <value>100</value> </property> <property> <name>dfs.data.dir</name> <value>file:/usr/local/hadoop/hdfs/data</value> </property> </configuration>
yarn-site.xml
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.map.memory.mb</name> <value>1536</value> </property> <property> <name>mapreduce.map.java.opts</name> <value>-Xmx1024M</value> </property> <property> <name>mapreduce.reduce.memory.mb</name> <value>3072</value> </property> <property> <name>mapreduce.reduce.java.opts</name> <value>-Xmx2560M</value> </property> <property> <name>mapreduce.task.io.sort.mb</name> <value>512</value> </property> <property> <name>mapreduce.task.io.sort.factor</name> <value>100</value> </property> <property> <name>mapreduce.reduce.shuffle.parallelcopies</name> <value>50</value> </property> </configuration>
2.3启动
$HADOOP_HOME
/sbin/hadoop-daemon.sh --config $HADOOP_CONF_DIR --script hdfs start namenode
$HADOOP_HOME
/sbin/hadoop-daemon.sh --config $HADOOP_CONF_DIR --script hdfs start datanode
$HADOOP_HOME
/sbin/yarn-daemon.sh --config $HADOOP_CONF_DIR start resourcemanager
$HADOOP_HOME
/sbin/yarn-daemon.sh --config $HADOOP_CONF_DIR start nodemanager
格式化namenode $HADOOP_HOME/bin/hdfs namenode -format
启动datanode $HADOOP_HOME
/sbin/hadoop-daemon.sh --config $HADOOP_CONF_DIR --script hdfs start datanode
$HADOOP_HOME
/sbin/yarn-daemon.sh --config $HADOOP_CONF_DIR start nodemanager
需要停止进程的话,将上述命令中的start替换为stop即可。
2.4启动过程中的日志
日志路径为$HADOOP_HOME/logs
常见warn日志及解决方法:
1、WARN org.apache.hadoop.hdfs.server.common.Util: Path /usr/local/hadoop/hdfs/data should be specified as a URI in configuration files. Please update hdfs configuration
原因:hdfs-site.xml中配置的路径不符合URI格式规范,应为“file:/usr/local/hadoop/hdfs/data”
网上说是因为官方提供的lib目录中.so文件是在32位系统下编译的,如果是64位系统,需要自己下载源码在64位上重新编译,具体操作可参考网上的文章。本人暂时忽略该问题,也可运行。
3、WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Problem connecting to server:master/192.168.36.129:9000
该问题为slave1上报出的,原因是未关闭防火墙,连接被拒。
在master上进入${HADOOP_HOME}/share/hadoop/mapreduce目录,运行 hadoop jar hadoop-mapreduce-examples-2.6.0.jar pi 1 10
控制台会输出执行结果,同时也可用浏览器查看页面http://192.168.36.129:8088/cluster查看任务的执行状态