ubuntu 16.04安装 hadoop2.10.0
安装jdk
1.添加环境java 环境变量,修改/etc/profile
sudo vim /etc/profile
#/etc/profile 添加下面内容
export JAVA_HOME=/usr/local/jdk1.8.0_161
export PATH=${JAVA_HOME}/bin:$PATH
#环境变量生效
source /etc/profile
#查看java版本
java -version
image.png
安装hadoop
Hadoop部署模式有:本地模式、伪分布模式、完全分布式模式。
区分的依据是NameNode、DataNode、ResourceManager、NodeManager等模块运行在几个JVM进程、几个机器。
1.下载
[https://hadoop.apache.org/releases.html 官方下载]
2.配置环境变量
sudo vim /etc/profile
#/etc/profile 添加下面内容
export HADOOP_HOME=/usr/local/hadoop-2.10.0
export PATH=${JAVA_HOME}/bin:${HADOOP_HOME}/bin:$PATH
#环境变量生效
source /etc/profile
image.png
3.修改配置文件,做伪分布式的集群
1.对hadoop的文件夹设置读写权限,不设置的话,创建文件夹/dfs/name等会报权限不足
chmod a+w /usr/local/hadoop-2.10.0/etc/hadoop
2.进入目录:/usr/local/hadoop-2.10.0/etc/hadoop 修改 core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop-2.10.0/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
3.修改hdfs-site.xml
#dfs.replication配置的是HDFS存储时的备份数量
#因为这里是伪分布式环境只有一个节点,所以这里设置为1。
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop-2.10.0/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop-2.10.0/tmp/dfs/data</value>
</property>
</configuration>
4.修改hadoop 的java 环境变量的位置,修改hadoop-env.sh
##修改为以上配置的java_home的内容
export JAVA_HOME=/usr/local/jdk1.8.0_161
5.格式化节点名称
格式化是对HDFS这个分布式文件系统中的DataNode进行分块,统计所有分块后的初始元数据的存储在NameNode中。
格式化后,查看core-site.xml里hadoop.tmp.dir(本例是/usr/local/hadoop-2.10.0/tmp目录)指定的目录下是否有了dfs目录,如果有,说明格式化成功
./bin/hdfs namenode -format
image.png
6.启动hdfs
./sbin/start-dfs.sh
7.查看jps
datanode 节点和namenode 节点都启动起来就是成功了
image.png
如果dataNode 节点没启动起来,很大概率就是多次格式化名称,导致dataNode 和 nameNode 的节点的ID不一致导致的,因为刚开始装也没有数据,只要将 hadoop.tmp.dir 目录删掉,重新格式化,就可以了,如果不想删除的话,就将->
/usr/local/hadoop-2.10.0/tmp/dfs/name/current 中的VERSION 的clusterID=CID-98baee39-c475-40b0-af1c-484e7fc1e0e3 替换 data 目录下的clusterID
image.png
8.页面查看
http://local:50070/dfshealth.html#tab-overview
9.安装yarn 资源调度(文件目录:/usr/local/hadoop-2.10.0/etc/hadoop/)
cp mapred-site.xml.template mapred-site.xml
sudo vim mapred-site.xml
mapred-site.xml修改如下
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改yarn-site.xml 文件
sudo vim yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
启动yarn 资源调度
./sbin/start-yarn.sh
jps -查看
开启历史服务器,查看历史任务,这样可以在web界面中查看任务运行情况
./sbin/mr-jobhistory-daemon.sh start historyserver
启动成功后可以在http://localhost:8088/cluster访问集群资源管理器。
不启用 YARN 时,是 “mapred.LocalJobRunner” 在跑任务,启用 YARN 之后,是 “mapred.YARNRunner” 在跑任务。启动 YARN 有个好处是可以通过 Web 界面查看任务的运行情况:http://localhost:8088/cluster 。
image.png到这里hadoop伪分布式安装完成,一些命令
关闭hdfs
./sbin/stop-dfs.sh
关闭资源调度
./sbin/stop-yarn.sh
关了之后 http://localhost:8088/cluster就无法访问了
./sbin/mr-jobhistory-daemon.sh stop historyserver