Hadoop伪分布安装步骤
安装的是2.8.5release版本,略微涉及到了原理,不适合完全Linux小白。
(假设已经安装了Java环境,否则的话先安装Java,且已经配置了SSH免密,如果没做的话可以搜一下别的教程)
在命令行中进入Downloads目录,再用 wget 下载hadoop-2.8.5.tar.gz
cd ~/Downloads
wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz
此命令从华科的镜像下载2.8.5的Hadoop,并放在了Downloads目录下。
然后把.tar.gz文件解压到某个目录下,这里解压到/usr下,并改文件夹名为hadoop,用chmod
修改一下权限,为了方便我们直接777了,使得读写和运行不再需要管理员权限。
cd ~/Downloads
sudo tar -zxf hadoop-2.8.5.tar.gz -C /usr
cd /usr
sudo mv hadoop-2.8.5 hadoop
chmod 777 /usr/hadoop
配置hadoop
需要配置的文件有5个,hadoop-env.sh
,core-site.xml
,mapred-site.xml
,hdfs-site.xml
和yarn-site.xml
按照前面的配置,这些的文件位置在/usr/hadoop/etc/hadoop下
编辑hadoop-env.sh
cd /usr/hadoop/etc/hadoop
sudo vim hadoop-env.sh
把Java_HOME的位置改成自己本机上Java的位置
export JAVA_HOME=/usr/lib/jvm/java
编辑core-site.xml
sudo vim core-site.xml
把
<configuration>
</configuration>
替换成
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/hadoop/hdfs/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
注: fs.default.name
保存了NameNode的位置,HDFS和MapReduce组件都需要用到它,这就是它出现在core-site.xml
文件中而不是 hdfs-site.xml
文件中的原因
编辑mapred-site.xml, 设置MapReduce使用的框架
也可能名字为mapred-site.xml.templete
, 改不改名字都可以。
sudo vim mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
变量mapred.job.tracker
保存了JobTracker的位置,因为只有MapReduce组件需要知道这个位置,所以它出现在mapred-site.xml
文件中。
编辑hdfs-site.xml
sudo vim hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
变量dfs.replication
指定了每个HDFS数据库的复制次数。 通常为3,由于我们只有一台主机和一个伪分布式模式的DataNode,将此值修改为1。
编辑yarn-site.xml
sudo vim yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
启动Hadoop之前要格式化
首先要格式化HDFS
hadoop namenode -format
再启动Hadoop
cd /usr/hadoop/sbin
sbin/start-dfs.sh
sbin/start-yarn.sh
如果上面的命令权限不够可能是之前没有chmod
chmod 777 /usr/hadoop
cd /usr/hadoop/sbin
sbin/start-dfs.sh
sbin/start-yarn.sh
为了启动Hadoop的时候避免每次都首先进到安装目录,然后再执行sbin/start-dfs.sh
和 sbin/start-yarn.sh
这么麻烦,所以在编辑 ~/.bashrc
或~/.zshrc
文件,加上如下几行
export HADOOP_HOME=/usr/hadoop
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
alias hadoop_start="/usr/hadoop/sbin/start-dfs.sh;/usr/hadoop/sbin/start-yarn.sh"
alias hadoop_stop="/usr/hadoop/sbin/stop-yarn.sh;/usr/hadoop/sbin/stop-dfs.sh"
alias hadoop_start="/usr/hadoop/sbin/start-dfs.sh;/usr/hadoop/sbin/start-yarn.sh"
alias hadoop_stop="/usr/hadoop/sbin/stop-yarn.sh;/usr/hadoop/sbin/stop-dfs.sh"
然后执行 source ~/.bashrc
或source ~/.zshrc
更新。 这样就可以用 hadoop_start
和 hadoop_stop
这两个命令来启动Hadoop了。
可以用jps
指令查看运行的Java进程
,结果应当如下: