(1) centos 6.5操作系统
(2) jdk-7u79-linux-i586.tar.gz
(3) hadoop-2.2.0-64bit.tar.gz
(1) 解压缩jdk-7u79-linux-i586.tar.gz
执行命令 tar -zxvf jdk-7u79-linux-i586.tar.gz
(2)重命名jdk1.7.0_79为jdk
执行命令 mv jdk1.7.0_79 jdk
(3)配置环境变量,修改/etc/profile文件,增加以下信息
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
执行命令 vi /etc/profile
(4)让配置立即生效
执行命令 source /etc/profile
(5)查看是否安装成功
执行命令 java -version
执行命令 vi /etc/sysconfig/network 把文件里面的内容
NETWORKING=yes 改为 NETWORKING=yes
HOSTNAME=localhost.localdomain HOSTNAME=hadoop13
执行命令 vi /etc/hosts 把文件的内容改为192.168.40.112 hadoop13
(1)执行命令 service iptables stop 关闭防火墙
(2)执行命令 chkconfig iptables off 设置防火墙不能自启动
(1)进入 ~/.ssh 目录,生成密钥和公钥
执行命令 cd ~/.ssh
执行命令 ssh-keygen -t rsa (默认的生成密钥方式是dsa)
注意:要连续按下几下Enter键,直到出现一个图片的方框为止
(2)把 ~/.ssh/id_rsa.pub 文件放到 ~/.ssh/authorized_keys文件中
执行命令 cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
(3)验证ssh免登录是否配置成功
执行命令 ssh hadoop13
(1)进入 /usr/local/目录,解压缩文件hadoop-2.2.0-64bit.tar.gz
执行命令 tar -zxvf hadoop-2.2.0-64bit.tar.gz
(2)重命名hadoop-2.2.0为hadoop
执行命令 mv hadoop-2.2.0 hadoop
(3)配置环境变量,修改文件/etc/profile,添加hadoop的bin路径和sbin路径
修改的内容如下
export JAVA_HOME =/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
(4) 让配置立即生效
执行命令 source /etc/profile
(5) 修改/usr/local/hadoop/etc/hadoop目录下的六个文件夹
①修改hadoop-env.sh,这个文件只是修改JAVA_HOME的路径
即export JAVA_HOME=/usr/local/jdk
②修改core-site.xml文件,修改的内容如下
③修改hdfs-site.xml文件,修改的内容如下
④把mapred-site.xml.template重命名为mapred-site.xml,然后修改里面的内容如下:
⑤修改yarn-site.xml文件,修改的内容如下
⑥修改slaves文件,这里主要就是datanode的地址,因为配置的是单节点的,所以可以把本机的ip放进去,如果没有的话,将不能存储数据,
添加的内容如下:
hadoop13
执行vi slaves
执行命令 hdfs namenode -format(hadoop namenode -format已经过时了)
执行命令 start-all.sh
可以先启动start-dfs.sh ,然后启动start-yarn.sh
执行命令 jps,如果出现如下图所示的几个进程,则说明启动成功
1、安装jdk的时候一定要选择与linux系统相匹配的版本进行安装;
(1)查看linux是多少位的命令如下:
getconf LONG_BIT
也可以通过uname -a
如上图所示,没有出现64bit,所以他是32位的系统
(2)查看jdk是32位还是64位
执行命令 java -version
如上图,没有出现64bit,所以jdk是32位的
2、如果你使用的jdk版本是1.7,则会出现以下的错误
M: ssh: Could not resolve hostname VM: Nameor service not known
Client: ssh: Could not resolve hostnameClient: Name or service not known
warning:: ssh: Could not resolve hostnamewarning:: Name or service not known
library: ssh: Could not resolve hostnamelibrary: Name or service not known
Java: ssh: Could not resolve hostname Java:Name or service not known
have: ssh: Could not resolve hostname have:Name or service not known
loaded: ssh: Could not resolve hostnameloaded: Name or service not known
You: ssh: Could not resolve hostname You:Name or service not known
have: ssh: Could not resolve hostname have:Name or service not known
might: ssh: Could not resolve hostnamemight: Name or service not known
which: ssh: Could not resolve hostnamewhich: Name or service not known
解决的办法:
(1)/etc/profile文件夹中添加一些额外的环境变量:如以下所示
export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native (额外添加)
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"(额外添加)
(2)上述问题还可能是由于/usr/local/hadoop/etc/hadoop/slaves里面配置的域名引起的,因为所配置的域名找不到与之对应的ip(默认的配置是localhost,即默认的存储数据的节点只有本地)
3、 如何添加多个datanode节点
Datanode节点主要是在/usr/local/hadoop/etc/hadoop/slaves里面配置的,在该文件可以配置datanode的域名或者ip地址,然后把/usr/local/hadoop整个文件夹发给各个datanode,然后再配置相关的环境变量,在启动hadoop之前,确保datanode节点是出于开机状态,这样才可以存储数据