在ubuntu server上搭建Hadoop
1. Java安装:
Because everything work with java.
$ sudo apt-get install openjdk-7-jdk
安装之后,可以查看java的版本信息:
wu@ubuntu:~$ java -version
java version "1.7.0_181"
OpenJDK Runtime Environment (IcedTea 2.6.14) (7u181-2.6.14-0ubuntu0.2)
OpenJDK 64-Bit Server VM (build 24.181-b01, mixed mode)
2. 创建Group
我们将会创建一个group,并配置这个group的权限,之后将user加到这个group之中。在下列程序中hadoop是group name,hduser是该group中的user。
将两个命令在ubuntu server的terminal里输入。
$ sudo addgroup hadoop
$ sudo adduser --ingroup hadoop hduser
3. 配置hduser的权限
打开visudo,配置hduser的权限:
$ sudo visudo
在nano编辑器里增加下面这句话,即给予hduser和root一样的权限
hduser ALL=(ALL) ALL
4. 创建hadoop目录并修改权限
$ sudo mkdir /usr/local/hadoop
$ sudo chown -R hduser /usr/local/hadoop
$ sudo chmod -R 755 /usr/local/hadoop

5. 切换用户(Switch User)
su hduser
6. 下载解压hadoop
这里采用镜像下载:
$ wget http://mirrors.hust.edu.cn/apache/hadoop/core/stable/hadoop-2.9.1.tar.gz
下载完之后解压:
$ tar xzf hadoop-2.9.1.tar.gz
将解压后的目录/hadoop-2.9.1中的所有内容移动到/usr/local/hadoop
mv hadoop-2.9.1/* /usr/local/hadoop
7. 配置环境变量
编辑$HOME/.bashrc 文件,添加java和hadoop路径
$ vim $HOME/.bashrc
在 .bashrc 中添加如下变量:
# Set Hadoop-related environment variables
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=/usr/local/hadoop/lib/native"
# Set JAVA_HOME (we will also configure JAVA_HOME directly for Hadoop later on)
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
重新加载 .bashrc 文件
$ source $HOME/.bashrc
8. 生成ssh
生成一个新的ssh public/private key pair在你的本机上,我们需要本机访问ubuntu server无需密码。这一步具体操作可见:Mac OS利用ssh访问ubuntu虚拟机及云端操作的第5节内容。
9. 添加localhost
$ ssh localhost
10. 配置文件
1.将当前目录移动到/usr/local/hadoop/etc/hadoop
$ cd $HADOOP_HOME/etc/hadoop
配置hadoop-env.sh文件,将以下内容添加到文件中。
# remove comment and change java_HOME
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
2.配置core-site.xml文件,该文件用于定义系统级别的参数,如HDFS,URL,Hadoop的临时目录等。所以,添加以下内容到configure中:
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
<description>The name of the default file system. A URI whose
scheme and authority determine the FileSystem implementation. The
uri's scheme determines the config property (fs.SCHEME.impl) naming
the FileSystem implementation class. The uri's authority is used to
determine the host, port, etc. for a filesystem.</description>
</property>
3.配置hdfs-site.xml文件,该文件主要有hdfs参数,如名称节点和数据节点的存放位置,文件副本的个数,文件读取权限等。所以,添加以下内容到configure中:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/app/hadoop/tmp/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/app/hadoop/tmp/datanode</value>
</property>
4.配置yarn-site.xml文件,该文件主要包含集群资源管理系统参数,如配置ResourceManager, NodeManger的通信端口,web监控端口等。所以,添加以下内容到configure中:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
5.复制文件mapred-site.xml.template,并粘贴为 mapred-site.xml。
$ cp mapred-site.xml.template mapred-site.xml
配置mapred-site.xml文件,它里面主要是Mapreduce参数,包含JobHistory Server和应用程序两部分,如reduce任务的默认个数、任务所能够使用内存的默认上限等。所以,将以下内容加入到文件中:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
6.编辑slaves文件,添加如下一句话到文件中:
localhost
11. 添加/app/hadoop/tmp目录,并改变权限:
$ sudo mkdir /app/hadoop/tmp
$ sudo chown -R hduser /app/hadoop/tmp
$ sudo chmod -R 755 /app/hadoop/tmp
12. 格式化
我们现在完成所有的配置,所以在启动集群之前,我们需要格式化namenode。
将工作目录移动到/usr/local/hadoop/sbin,并进行格式化:
$ cd /usr/local/hadoop/sbin
$ hadoop namenode -format
13. 启动
是时候启动hadoop了,有两种方式:
- 分别启动dfs和yarn:
$ start-dfs.sh
$ start-yarn.sh
- 一键全部启动:
$ start-all.sh
14. JPS
一旦dfs启动没有任何错误,我们可以使用命令JPS(java virtual machine process status tool)检查一切是否正常工作,我们应该看到至少一个Namenode和Datanode
$ jps

15. 网页查看
由于我们是在ubuntu server中配置的,没有ui界面,所以我们只能通过主机来访问。用http://your IP address:50070上的Namenode的Web界面检查Apache Hadoop的状态。

16.关闭
$ stop-all.sh
Reference:
- http://hadoop.praveendeshmane.co.in/hadoop/hadoop-2-6-4-pseudo-distributed-mode-installation-on-ubuntu-14-04.jsp
- https://zhuanlan.zhihu.com/p/25472769
- https://blog.csdn.net/boonya/article/details/55194170
- 《鸟哥的Linux私房菜》
在ubuntu server上搭建Hadoop的更多相关文章
- 在Ubuntu系统上搭建Hadoop 2.x(2.6.2)
官方的中文版的Hadoop快速入门教程已经是很老的版本了,新版的Hadoop目录结构发生了变化,因此一些配置文件的位置也略微调整了,例如新版的hadoop中找不到快速入门中提到的conf目录,另外,网 ...
- Ubuntu上搭建Hadoop环境(单机模式+伪分布模式) (转载)
Hadoop在处理海量数据分析方面具有独天优势.今天花了在自己的Linux上搭建了伪分布模式,期间经历很多曲折,现在将经验总结如下. 首先,了解Hadoop的三种安装模式: 1. 单机模式. 单机模式 ...
- Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)
首先要了解一下Hadoop的运行模式: 单机模式(standalone) 单机模式是Hadoop的默认模式.当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守地选 ...
- Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)【转】
[转自:]http://blog.csdn.net/hitwengqi/article/details/8008203 最近一直在自学Hadoop,今天花点时间搭建一个开发环境,并整理成文. 首先要了 ...
- Ubuntu server下搭建Maven私服Nexus
Ubuntu server下搭建Maven私服Nexus Maven私服Nexus的作用,主要是为了节省资源,在内部作为maven开发资源共享服务器来使用. 1.下载 通过root用户进去Ubuntu ...
- Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程)
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- 一台Ubuntu server上安装多实例MySQL
受环境所迫,在一台Ubuntu server上安装多个实例MySQL. 手动安装MySQL 环境:Ubuntu server 11.10 64bit + mysql-5.5.17-linux2.6-x ...
- Docker-Compose简介与Ubuntu Server 上安装Compose
Compose简介 Compose是Docker官方的开源项目,负责对Docker容器集群的快速编排. Compose是定义和运行多个Docker容器的应用. 举例来说: 一个项目除了Tomcat容器 ...
- 如何在一个ubuntu系统上搭建SVN版本控制工具
有话说,由于公司项目部署需要,将Windows工程迁移到Linux,通过调查确定使用Ubuntu的Linux操作系统.那么如何快速搭建和Windows一样快捷方便的开发环境就很重要了.本文讲述如何在一 ...
随机推荐
- 【第十三课】监控Linux系统状态
目录 1.查看系统负载命令:w.uptime 2.vmstat详解 3.top动态查看负载 4.sar命令(监控网卡流量) 5.nload命令(监控网卡流量) 6.iostat iotop(监控IO性 ...
- django在admin后台注册自己创建的数据库表
django在admin后台注册自己创建的数据库表,这样我们就可以在admin后台看到表结构信息,我们就可以在admin后台快速录入表记录信息 如果没有注册,那么你在登录django自带的admin的 ...
- github协同开发
看官请移步GitHub团队项目合作流程 本文是上述链接的截图,担心哪天作者不小心删除了,备一份在自己这里,仅为自己看着方便.侵权请告知
- 科普贴 | 以太坊代币钱包MyEtherWallet使用教程,一步步教你玩转MEW
MyEtherWallet 是一个以太坊的网页钱包,使用非常简单,打开网页就可以使用,源代码开源,不会在服务器上存储用户的钱包信息如私钥和密码.支持 Ledger Wallet.TREZOR 等硬件钱 ...
- group by 和count的联合使用问题 [转]
group by 和count的联合使用问题 今天写查询语句遇到一个问题,就是用group by进行分组以后,用count统计分组以后的个数, 开始写的语句大体是: select count(m.fb ...
- Linux第五章笔记
5.1 与内核通信 系统调用在用户空间进程和硬件设备之间添加了一个中间层. 主要作用有: 为用户空间提供了一种硬件的抽象接口 系统调用保证了系统的稳定和安全 每个进程都需要运行在虚拟机内 5.2 AP ...
- 《Linux内核分析》第四周学习笔记
<Linux内核分析>第四周学习笔记 扒开系统调用的三层皮(上) 郭垚 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.c ...
- C语言函数参数传递
1.值传递 void swap(int x,int y) { int temp = x; x = y; y = temp; } void main() { , b = ; swap(a, b); } ...
- 冲刺Two之站立会议6
今天继续了昨天的工作,对视频进行优化.因为昨天的工作没有达到预期的效果,所以又继续对音质和画面质量做了相应的优化.还对相应的聊天室界面进行了优化.
- week8:个人博客作业
团队作业(5) 要求 在PM 带领下, 每个团队深入分析下面行业的App, 找到行业的Top 5 (从下面的三个备选中,任选一个行业即可) 英语学习/词典App 笔记App 旅游行业的手机App 选择 ...