安装
-
操作系统
在centos6.4和mac os 10.10下都测试通过,以下以centos6.4环境为例。
-
安装JDK
安装版本hotspot jdk8 64bit,安装路径/home/rbg/tools/jdk8
-
安装hadoop
hadoop目前最新的稳定版是2.7.3,下载链接http://hadoop.apache.org/releases.html,下载下来是个压缩包hadoop-2.7.3.tar.gz。
通过解压命令 tar xzf hadoop-2.7.3.tar.gz 解压到/home/rbg/tools/hadoop273
-
环境变量
进入home路径,找到并编辑文件.bash_profile,如果没有则通过touch命令新建,加入
export JAVA_HOME=/home/rbg/tools/jdk8 export HADOOP_HOME=$HOME/tools/hadoop273 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin
通过source .bash_profile应用新的环境变量
-
检查是否安装成功
运行hadoop version
如果输出Hadoop 2.7.3字样,说明安装成功。
注:如果出现/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory 错误提示,需要通过通过yum install安装 glibc.i686
配置伪分布式
hadoop的运行有三种模式:局部、伪分布式、分布式。
局部模式所有程序都运行在一个jvm中,适合开发环境,用来运行或调试MapReduce程序。
伪分布模式多个守护进程同时单独运行,但都运行在一个机器。
分布式模式守护进程运行于集群。
对了解学习hadoop而言,伪分布式是合适的选择,因为hadoop本身的运行上两者没有区别。
进入/home/rbg/tools/hadoop273/etc/hadoop,该路径是hadoop默认的配置文件路径。
配置hadoop
配置文件系统
设置hdfs文件系统的url,打开core.site.xml添加如下设置:
fs.defaultFS
hdfs://localhost:9000/
配置hdfs
设置复制份数,打开hdfs-site.xml,添加如下配置:
dfs.replication
1
配置mapreduce
mapreduce采用yarn框架,打开mapred-site.xml,添加如下配置:
mapreduce.framework.name
yarn
配置yarn
设置资源管理器地址和启动shuffle服务,打开yarn-site.xml,添加如下配置:
yarn.resourcemanager.address
localhost:8032
yarn.nodemanager.aux-services
mapreduce_shuffle
配置ssh
hadoop需要通过ssh在分布式或伪分布式下启动守护进程,因此,在只有一个机器的伪分布式下要保证能ssh localhost而不用通过密码进行登录。
通过如下命令生成密钥文件:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
将公钥添加到authorized_keys:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
通过ssh localhost登录,如果不需要输入密码说明配置成功。
注:如果ssh localhost提示输入密码,可检查.ssh和authorized_keys的权限模式是否分别是0700和0600。否则通过chmod 0700 .ssh和chmod 0600 .ssh/authorized_keys修改。
格式化文件系统
初次使用hdfs前需要格式化文件系统:
hdfs namenode -format
注:如报unknownhost错误,通过hostname命令查看本机名称,查看/etc/hosts中是否存在名称和ip间的映射,该处映射为127.0.0.1。
启动和关闭
启动hdfs、yarn、job历史服务:
start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver
通过jps可以查看到如下进程:
NodeManager
JobHistoryServer
ResourceManager
DataNode
SecondaryNameNode
NameNode
关闭:
mr-jobhistory-daemon.sh stop historyserver
stop-yarn.sh
stop-dfs.sh