关于Hadoop的教程
相关依赖与版本说明JDK8 SSH
Hadoop版本为2.8.5
官方建议为hadoop新建用户组与用户,方便后续权限控制。
个人学习可以忽略。 2. Hadoop服务安装 从官网下载压缩包,进行解压,根据需要配置软连接。最终结果如下:
基于上述软连接,配置当前用户的.bashrc文件或者/etc/profile #hadoop export HADOOP_HOME= H O M E / h a d o o p / h a d o o p e x p o r t P A T H = HOME/hadoop/hadoop export PATH= HOME/hadoop/hadoopexportPATH=PATH: H A D O O P H O M E / b i n : HADOOP_HOME/bin: HADOOPHOME/bin:HADOOP_HOME/sbin
配置完成后记得source /etc/profile 使其生效。
生效后在任何地方执行: hadoop version
如果成功就说明下载的hadoop是可用的。
接下来通过修改hadoop配置达到单机伪分布式[1]启动。 3. Hadoop伪分布式配置 Hadoop 的配置文件位于 */hadoop/etc/hadoop/中
伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml
core-site
fs.defaultFS hdfs://localhost:9000 hadoop.tmp.dir file:/home/edwin/hadoop/hadoop/tmphdfi-site
dfs.replication 1 dfs.namenode.name.dir file:/home/edwin/hadoop/hadoop/tmp/dfs/name dfs.datanode.data.dir file:/home/edwin/hadoop/hadoop/tmp/dfs/data Hadoop结点初始化 执行: hdfs namenode -format看到 “Exitting with status 0” 说明初始化成功。
启动Hadoop服务 执行 start-dfs.sh如果Hadoop安装完后,启动时报Error: JAVA_HOME is not set and could not be found.
而我们之前已经通过java -version 确定Java已经安装
且通过export 查看到JAVA_HOME
那么需要修改hadoop-env.sh,更加明显的声明以此JAVA_HOME: …
#export JAVA_HOME=${JAVA_HOME} export JAVA_HOME=/home/edwin/java/jdk …
声明一下,我这里的jdk是个软连接
jdk -> /home/edwin/java/jdk1.8.0_191/ 查看java进程,可以看到启动了三个服务:
需要关闭时执行: stop-dfs.sh
使用YARN MapReduce是一种编程模型也是一种编程方法和抽象理论在2.X中,MapReduce由YARN进行支持。 上述通过 /sbin/start-dfs.sh 启动 Hadoop,仅仅是启动了 MapReduce 环境,我们可以启动YARN ,让 YARN 来负责资源管理与任务调度。 修改配置文件,部分配置文件只有一个template,可以cp一份进行修改。
mapred-site.xml
mapreduce.framework.name yarnyarn-site.xml
yarn.nodemanager.aux-services mapreduce_shuffle./sbin/start-dfs.sh # 启动MapReduce ./sbin/start-yarn.sh # 启动YARN ./sbin/mr-jobhistory-daemon.sh start historyserver #开启历史服务器,才能在Web中查看任务运行情况
伪分布式:在单机上以分离的java进程运行,节点同时扮演NameNode和DataNode,读取的是HDFS中的文件。 ↩