一台linux服务器【Linux 5.5,x86_64,用于安装hadoop】
jdk1.6.0_31
hadoop-2.2.0.tar.gz
主要是每次启动hadoop时不用多次输入登录Linux操作系统密码。
(1)实现无密码登录本机
$ ssh-keygen -t rsa
直接回车,会提示输入存储密码的文件名,输入id_rsa,完成后会在~/.ssh/生成两个文件:id_rsa和id_rsa.pub。
$ ssh-keygen -t dsa
直接回车,会提示输入存储密码的文件名,输入id_dsa,完成后会在~/.ssh/生成两个文件:id_dsa和id_dsa.pub。
$cat~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys 将生成的密钥串在钥匙链上
$cat~/.ssh/id_dsa.pub >>~/.ssh/authorized_keys 将生成的密钥串在钥匙链上
$chmod 600 ~/.ssh/authorized_keys。
然后 ssh localhost 验证是否成功,第一次要你输入yes,以后就不需要了。
保证待安装hadoop的服务器上安装jdk;
假设hadoop安装在/home/username/hadoop目录下(username为操作系统登录用户),以下统称hadoop安装目录。
(1)解压hadoop-2.2.0.tar.gz到hadoop安装目录下。
(2)配置系统环境变量
可修改/etc/profile文件,在文件末尾添加如下内容。本文是修改/home/username/.bash_profile,修改完后请重新登录ssh。
exportHADOOP_PREFIX="/home/username/hadoop/hadoop-2.2.0"
PATH="$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin"
export HADOOP_MAPRED_HOME=${HADOOP_PREFIX}
export HADOOP_COMMON_HOME=${HADOOP_PREFIX}
export HADOOP_HDFS_HOME=${HADOOP_PREFIX}
export HADOOP_YARN_HOME=${HADOOP_PREFIX}
export HADOOP_CONF_DIR="${HADOOP_PREFIX}/etc/hadoop"
export YARN_CONF_DIR="${HADOOP_PREFIX}/etc/hadoop"
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native
exportHADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib"
(3)配置hadoop
需要修改以下配置文件:
hadoop-env.sh
修改JAVA_HOME,这里JAVA_HOME的路径必须指定为真实的路径,不能引用${JAVA_HOME},否则运行的时候会有错误JAVA_HOME is not set。配置如下:
export JAVA_HOME=/usr/java/jdk1.6.0_26
core-site.xml
hdfs-site.xml
其中,/home/username/hadoop/dfs/name,/home/username/hadoop/dfs/data都是文件系统中的目录,需要先新建。
mapred-site.xml
yarn-site.xml
注意yarn.nodemanager.aux-services属性的值应为mapreduce_shuffle,而不是mapreduce.shuffle(差别为“_”与“.”),否则会出现错误。
完成以上配置后可以检测是否配置成功。
(1)格式化hadoop的文件系统HDFS
在启动hadoop之前,需要格式化hadoop的文件系统HDFS。进入/home/username/hadoop/hadoop-2.2.0/bin文件夹,执行以下命令进行格式化:
$ hdfs namenode -format
(2)启动hadoop
格式化文件系统成功后,进入/home/username/hadoop/hadoop-2.2.0/sbin目录,启动hadoop。执行以下命令:
$ start-all.sh --此命令在hadoop2.2.0版本已被遗弃。
hadoop2.2.0推荐使用以下命令启动:
首先启动hdfs:
$ start-dfs.sh
或者
$ hadoop-daemon.sh startnamenode
$ hadoop-daemon.sh startdatanode
然后启动yarn daemons:
$ start-yarn.sh
或者
$ yarn-daemon.sh startresourcemanager
$ yarn-daemon.sh startnodemanager
启动完成后访问以下地址查看dfs状态,如果成功会显示对应界面:
http://x.x.x.x:50070/dfshealth.jsp HDFS的web界面
datanode:
http://x.x.x.x:50075/
resourcemanager(JobTracker replacement):
http://x.x.x.x:8088/cluster Web app /cluster
nodemanager(TaskTrackerreplacement):
http://x.x.x.x:8042/node Web app /node