Ubuntu安装与调试hadoop3.0
2018-02-12 00:53
585 查看
安装调试了两个晚上,终于在虚拟机上把hadoop的环境搭建好了,中间遇到一些问题这里一并记录一下。
官网文档地址 >>> Go!
配置java
下面的内容添加的
下载hadoop
hadoop镜像地址
点击链接(或者wget)下载指定版本:hadoop-3.0.0
1. 文档
安装hadoop的首要任务当然是打开官网看文档中的安装指南。中文的资料也有,但是还是会因为版本和系统问题遇到一些坑,这里统一使用官网的推荐的各版本搭配使用,效果更佳。官网文档地址 >>> Go!
2. 系统和软件依赖
2.1 环境和依赖如下:
系统:ubuntu 16.04 依赖:ssh、pdsh、jdk-8、hadoop-3.0.0
2.2 下载/安装/配置
别说了,升级一下你的apt后,开始大量下载和安装。// 添加java远程镜像地址 $ sudo add-apt-repository ppa:webupd8team/java // 升级安装工具 $ sudo apt-get update $ sudo apt-get upgrade // 安装ssh和pdsh $ sudo apt-get install ssh $ sudo apt-get install pdsh // 安装java,安装器会提示你同意 oracle 的服务条款,选择 ok $ sudo apt-get install oracle-java8-installer
配置java
$ sudo update-java-alternatives -s java-8-oracle # 测试java是否安装成功 $ java -version
# java环境变量配置,进入profile文件,添加以下环境变量到文件末尾,然后激活 $ vi /etc/profile $ source profile
下面的内容添加的
profile
# set oracle jdk environment export JAVA_HOME=/usr/lib/jvm/java-8-oracle # 这里目录要换成自己的jvm里面java的目录 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
下载hadoop
hadoop镜像地址
点击链接(或者wget)下载指定版本:hadoop-3.0.0
$ wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-3.0.0/hadoop-3.0.0.tar.gz[/code]
解压tar文件$ tar -zxvf hadoop-3.0.0.tar.gz
修改hadoop配置文件$ cd hadoop-3.0.0.tar.gz/ $ vi etc/hadoop/hadoop-env.sh # 添加JAVA_HOME环境变量到最后一行 export JAVA_HOME=/usr/lib/jvm/java-8-oracle3. 测试hadoop
此时我们所在的一直是hadoop-3.0.0.tar.gz/目录
运行hadoop脚本,会显示可用的命令行命令$ bin/hadoop
现在环境基本上配置齐全了!
3.1 单机器单进程操作
此操作用于调试,不适用分布式文件系统和调度系统操作数据。$ mkdir input $ cp etc/hadoop/*.xml input $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0.jar grep input output 'dfs[a-z.]+' $ cat output/*
3.2 伪分布式本地执行MapReduce任务
仅仅在本地运行MapReduce任务。
首先在以下文件的中添加配置内容。$ vi etc/hadoop/core-site.xml<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>$ vi etc/hadoop/hdfs-site.xml<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
尝试是否可以免密码登陆自己的主机:$ ssh localhost
如果不行,就做如下操作# 如果已经有了rsa_id就不需要指向下面这一句 $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 0600 ~/.ssh/authorized_keys
免密配置和hadoop配置文件都设置好了,现在开始指向。# 格式化文件系统 $ bin/hdfs namenode -format # 开启`命名空间节点NameNode(主节点)`和`数据节点DataNode`的守护进程 $ sbin/start-dfs.sh
产生的log文件见logs文件夹。
此时可以访问NameNode节点web管理页面:NameNode - http://localhost:9870/[/code]
创建执行MapReduce任务所需的HDFS目录:# 此时`/user`目录是分布式文件系统的根目录。 $ bin/hdfs dfs -mkdir /user $ bin/hdfs dfs -mkdir /user/userMe
将测试用的文件复制到分布式文件系统(HDSF)中:$ bin/hdfs dfs -mkdir /user/userMe/input $ bin/hdfs dfs -put etc/hadoop/*.xml /user/userMe/input
以本地运行的方式执行一次最简单的mapreduce任务,接下来也会讲在单节点YARN分布式调度系统上运行,这里主要是需要注意两者的区别,就是现在没有使用分布式调度功能!
小黑板:YARN集群-负责海量数据运算时的资源调度,集群中的角色主要有 ResourceManager /NodeManager。如果数据量少在本地环境就可以跑,如果数据量多就需要在YARN调度集群上实现分布式的大数据处理。
运行hadoop提供的mapreduce任务测试用例,并获得输出日志:$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0.jar grep /user/userMe/input output 'dfs[a-z.]+'
查看输出日志:$ bin/hdfs dfs -cat output/*
现在一次最简单的hadoop任务已经执行完毕了!我们可以关闭文件系统进程。$ sbin/stop-dfs.sh
3.2 伪分布式在单节点YARN上执行MapReduce任务
我们先执行命令开启HDFS守护进程:$ sbin/start-dfs.sh
小黑板:HDFS集群:负责海量数据的存储,集群中的角色主要有 NameNode / DataNode/SecondaryNameNode。
这里提到一个问题:注意
在启动进程时会报一个没有权限访问系统(start-dfs.sh提示rcmd: socket: Permission denied)的错误,在网上找到了解决方案,链接:start-dfs.sh -> rcmd: socket: Permission denied
然后需要修改一些跟YARN有关的配置文件$ vi etc/hadoop/mapred-site.xml<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>vi etc/hadoop/yarn-site.xml<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value> </property> </configuration>< b3ac /code>
开启ResourceManager[/code]和
NodeManager守护进程:$ sbin/start-yarn.sh
此时可以访问ResourceManager的web管理页面:http://localhost:8088/
然后运行一个MapReduce任务,上一节写的一样。$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0.jar grep input output 'dfs[a-z.]+'
关闭yarn守护进程$ sbin/stop-yarn.sh
这样,我们通过上面的步骤实现了单机的伪分布式文件系统的搭建,和在本地运行MapReduce任务与通过单节点的YARN调度来跑MapReduce任务。
相关文章推荐
- Ubuntu 14.04下 Hadoop3.0-alpha 的安装
- 虚拟机Ubuntu下Hadoop2.6.1的安装和配置(完全分布式)
- ubuntu安装配置eclipse+hadoop开发环境(十分详细)+WordCount实例
- ubuntu下hadoop2安装
- Ubuntu16.04的Hadoop2.7.3安装HBase学习
- 在ubuntu和Windows下安装配置Hadoop
- hadoop在ubuntu下的伪分布式安装配置
- ubuntu 14.04 安装hadoop2.6.4
- Lenovo Y570: Ubuntu 12.04安装Nvidia, Bumblebee 3.0, CUDA5.0
- 第一篇:Ubuntu下安装Hadoop(2.7.3)详解
- Ubuntu14.04下安装Hadoop2.4.0 (伪分布模式)
- hadoop 2.9.0 在Ubuntu安装教程
- Ubuntu14.04安装调试ORB-SLAM——依赖库的安装
- Ubuntu 12.04 安装 Hadoop 1.2.1
- Ubuntu安装hadoop及其配置
- Ubuntu14.04下安装Hadoop2.4.0 (单机模式)
- [hadoop新实战4]hadoop完全分布式安装序列(支持ubuntu和redhat)
- Ubuntu14.04中安装OpenCV3.0
- hadoop安装过程中ubuntu系统ssh免密码登陆设置
- Ubuntu下面安装和配置Hadoop的dfs-fuse