机器信息:
centos7 64 bit
jdk
使用hadoop需要安装jdk
centos上已经默认安装了java,但是我没找到jdk的文件目录,只找到java的软链接
/usr/bin/java
所以自己选择重装java,在 java官网 下载linux64的tar.gz文件,解压到自定义目录。
cp jdk-8u91-linux-x64.tar.gz /software/
cd /software
tar -xzvf jdk-8u91-linux-x64.tar.gz
mv jdk.8u91 jdk
更改java软链接,将之前的软链接保存为 java_old,重新建立链接到刚下载的jdk
mv /usr/bin/java /usr/bin/java_old
ln -s /software/jdk /usr/bin/java
注意: 在上面第一个操作实施后,/usr/bin/java不存在,才能进行第二步。
hadoop
从官网下载编译后的hadoop文件 hadoop-2.7.0.tar.gz
[src.tar.gz 文件需要重新编译]
cd /software
tar -xzvf hadoop-2.7.0.tar.gz
mv hadoop.2.7.0 hadoop
赋予权限
chown -R yh ./hadoop
修改4个配置文件
进入配置文件目录
cd ./etc/hadoop
a) hadoop-env.sh ,在该文件的末尾根据JDK安装目录增加以下几行:
export JAVA_HOME=/software/jdk
export HADOOP_HOME=/software/hadoop
export PATH=$PATH:/software/bin
注意: = 两边不能有空格,否则报错。
注释: export JAVA_HOME=${JAVA_HOME}
b)core-site.xml ,用以下配置替换文件内容
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop/hadoop-${user.name}</value>
</property>
</configuration>
c) hdfs-site.xml,用以下配置替换文件内容 ,因为单机,所以设置文件只要保存1份,系统默认是3份:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
d) mapred-site.xml,用以下配置替换文件内容
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
4、执行hadoop环境设置,并格式化hadoop文件系统,执行以下命令
cd /software/hadoop
source hadoop-env.sh
hadoop namenode -format
启动hadoop
cd /software/hadoop
./sbin/start-all.sh
[不同的版本可能,start-all.sh等文件放在不同的目录下]
在网上的教程中,一般都会新建hadoop账户,设置ssh免密登陆本机,但是自己没有设置,所以执行上面的命令后,要求输入密码,此密码就是本机的登录密码。
正确输入密码后就可以。
注意:
如果报错
[yh@localhost sbin]$ ./start-all.sh
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Error: Cannot find configuration directory: /etc/hadoop
starting yarn daemons
Error: Cannot find configuration directory: /etc/hadoop
这是因为使用了hadoop-env.sh默认的关于hadoop配置文件所在目录的配置,这里需要根据你自己的安装路径重新设置。
解决办法:
修改hadoop-env.sh:
export HADOOP_CONF_DIR=/software/hadoop/etc/hadoop/
source ./etc/hadoop/hadoop-env.sh
然后重新启动就可以。
参考:
hadoop在linux上单机安装过程心得
Error: Cannot find configuration directory: /etc/hadoop