Hadoop2伪分布式安装:
1、Java环境变量配置
在.bash_profile文件中加入如下环境变量:
####################JAVAHOME####################
exportJAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk.x86_64
exportJRE_HOME=$JAVA_HOME/jre
exportCLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
exportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
执行 source.bash_profile使环境变量生效。
2、ssh无密码验证配置
ssh-keygen -t rsa -P ""
进入~/.ssh/目录下,将id_rsa.pub追加到authorized_keys授权文件中,开始是没有authorized_keys文件的:
cd ~/.ssh
cat id_rsa.pub>> authorized_keys
3、修改配置文件
修改的配置文件都在$HADOOP_HOME/etc/hadoop目录下:
core-site.xml、hdfs-site.xml、yarn-site.xml 、mapred-site.xml. 四个文件
配置文件的添加和修改都在<configuration></configuration> 中。
(1)core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://127.0.0.1:9000</value>
</property>
</configuration>
添加hdfs的指定URL路径,由于是伪分布模式,所以配置的是本机IP ,可为真实Ip、localhost。
官网上还提到io.file.buffer.size配置,由于默认的比较小只有4096,所以可以安装自己的需求写该131072(官方提供)。由于我这里只是做测试,配置越简单越好。呵呵。
(2)hdfs-site.xml
主要是对namenode 和 datanode 存储路径的设置。其实默认是存储在file://${hadoop.tmp.dir}/dfs/name和data 下的。所以这里也不需配置的。但默认的师临时文件,重启就没有了。配置如下:
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/abm/work/hadoop-2.0.5-alpha/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/abm/work/hadoop-2.0.5-alpha/dfs/data</value>
</property>
</configuration>
(3)mapred-site.xml(该文件不存在,需要新建)
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(4)yarn-site.xml
为了简单,快速做测试,我还是使用默认的。
1、 启动服务
启动的文件都是 sbin下,bin下的都是命令。
(1)格式化namenode
bin/hdfs namenode –format
确定不报错,且出现如下信息:(其中172.21.0.32是我的主机ip)
/************************************************************
SHUTDOWN_MSG:Shutting down NameNode at 172-21-0-32.openstacklocal/172.21.0.32
************************************************************/
(2)启动namenode
sbin/Hadoop-daemon.sh startnamenode
sbin/hadoop-daemon.shstart datanode
运行jps可以查看是否启动成功。
(3)启动Manage管理
sbin/yarn-daemon.shstart resourcemanager
sbin/yarn-daemon.shstart nodemanager
(4)使用start-all.sh直接启动Hadoop
如果报如下错误:localhost:Error: JAVA_HOME is not set and could not be found.则是因为JAVA_HOME环境变量没有设置,需要在./etc/hadoop/hadoop-env.sh中设置JAVA_HOME,
exportJAVA_HOME=$JAVA_HOME这样设置仍然会报错,只有使用绝对路径才不会报错。如:export JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk.x86_64