当前位置: 首页 > 编程日记 > 正文

ubuntu14.04安装hadoop2.6.0(伪分布模式)

版本:虚拟机下安装的ubuntu14.04(64位),hadoop-2.6.0

下面是hadoop2.6.0的官方英文教程:

http://hadoop.apache.org/docs/r2.6.0/hadoop-project-dist/hadoop-common/SingleCluster.html#Pseudo-Distributed_Operation

hadoop下载地址:

http://mirror.bit.edu.cn/apache/hadoop/common/ 

选择hadoop-2.6.0.tar.gz这个二进制文件

安装之前首先考虑的是hadoop的版本问题,hadoop-1x和hadoop-2x其实完全是两个东西,生产环境下多采用hadoop1.2.1-这是一个稳定的版本。而hadoop-2x版本更适合做实验。

其次hadoop2.6.0本地库文件是64位的,而hadoop2.4.0本地库是32位的。如果跟系统版本不匹配,运行hadoop例子时会出现:

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable(这个错误也可能是其他原因导致的,我遇到的是其他原因,后面会说解决办法)

最后是hadoop的三种模式:单机、伪分布、全分布。其中全分布模式至少需要三个节点。

1.安装前准备

一、添加hadoop用户组和hadoop用户

创建hadoop用户组:sudo addgroup hadoop
创建hadoop用户: sudo adduser -ingroup hadoop hadoop



添加结果如下(其中通过系统设置设置hadoop账户类型为管理员):


进入hadoop用户的账号

二、安装ssh
安装命令:sudo apt-get install openssh-server
启动服务:sudo /etc/init.d/ssh start

查看服务是否启动:ps -e | grep ssh


设置免密码登录,生成私钥和公钥:ssh-keygen -t rsa -P ""



默认会在/home/hadoop/.ssh下生成两个文件:id_rsa和id_rsa.pub,前者为私钥,后者为公钥。(.ssh文件是隐藏文件,CTRL+H 显示隐藏文件)



将公钥追加到authorized_keys中:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
然后用ssh连接自己:ssh localhost。如果还是需要密码,则没有成功。




三、安装java jdk和配置环境变量
  
  安装openjdk命令:sudo apt-get install openjdk-7-jdk
  然而openjdk东西比较少,可以安装oraclejdk:(推荐安装Java-7-oracle)
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

  最后通过:java -version查看是否安装成功,并显示java版本。

    查看JAVA_HOME位置:sudo update-alternatives --config java

  我的结果是/usr/lib/jvm/java-7-oracle/bin/jre/java。配置环境变量只写到java-7-oracle。

    配置环境变量:

   命令:sudo gedit ~/.bashrc     (配置.bashrc文件,或者.profile文件)

   在文件末尾加入(第二行JAVA_HOME和第三行HADOOP_INSTALL安装路径改成自己的)#HADOOP VARIABLES START

export JAVA_HOME=/usr/lib/jvm/java-7-oracleexport HADOOP_INSTALL=/usr/local/hadoopexport PATH=$PATH:$HADOOP_INSTALL/binexport PATH=$PATH:$HADOOP_INSTALL/sbinexport HADOOP_MAPRED_HOME=$HADOOP_INSTALLexport HADOOP_COMMON_HOME=$HADOOP_INSTALLexport HADOOP_HDFS_HOME=$HADOOP_INSTALLexport YARN_HOME=$HADOOP_INSTALLexport HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/nativeexport HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"#HADOOP VARIABLES END

使环境变量设置立即生效(重新注销或者重启都行):source ~/.bashrc

2.hadoop配置

我的hadoop安装路径/usr/local/hadoop,下载的文件解压缩后的文件名改成了hadoop。给hadoop文件夹及其文件夹所有文件提高权限!

   hadoop配置文件放在{HADOOP安装路径}/etc/hadoop文件夹下:需要修改hadoop-env.sh,core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml五个文件。

   1.hadoop-env.sh文件,在末尾添加(第一行JAVA_HOME和第二行HADOOP_PREFIX(hadoop安装路径)改成自己的)

export JAVA_HOME=/usr/lib/jvm/java-7-oracle
export HADOOP_PREFIX=/usr/local/hadoop
export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib:$HADOOP_PREFIX/lib/native"

注意第三行的HADOOP_OPTS,如果没有这一项运行会有:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable的错误提示。如果你是32位的系统,运行hadoop2.6.0还需要重新编译本地库。本地库路径为:{hadoop安装路径}/lib/natives。

  查看本地库版本命令:file /usr/loacl/hadoop/lib/native/libhadoop.so.1.0.0

  (32位)libhadoop.so.1.0.0: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, not stripped

  (64位)libhadoop.so.1.0.0: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, not stripped

  查看系统位数:uname -a,如果有x86_64就是64位的,没有就是32位的。

  2.core-site.xml文件,在末尾<configuration></configuration>中间添加内容,最后:

<configuration><property>  <name>hadoop.tmp.dir</name>  <value>/usr/local/hadoop/tmp</value>  <description>Abase for other temporary directories.
</description>  </property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property>
</configuration>

其中前一部分的hadoop.tmp.dir参数官方教程里没有,如果没有配置临时文件会默认生成在:根目录/tmp/hadoop-hadoop中,但是重启系统后内容会重新删掉,会有意想不到的问题出现!!注意修改路径.

  3.mapred-site.xml是没有的,有一个mapred-site.xml.template文件将其改名为mapred-site.xml就好。同样在末尾<configuration></configuration>中间添加内容,最后:

<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property> 
</configuration>

4.yarn-site.xml文件,在末尾<configuration><!-- Site specific YARN configuration properties --></configuration>添加内容,最后:

<configuration>
<!-- Site specific YARN configuration properties --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
</configuration>

5.hdfs-site.xml文件,在末尾<configuration></configuration>中间添加内容,最后:

<configuration>
<property>  <name>dfs.replication</name>  <value>1</value>  </property>  <property>  <name>dfs.namenode.name.dir</name>  <value>file:/usr/local/hadoop/dfs/name</value>  </property>  <property>  <name>dfs.datanode.data.dir</name>  <value>file:/usr/local/hadoop/dfs/data</value>  </property>  
</configuration>

后面两个dfs.name.dir,dfs.datanode.data.dir参数官网教程没有(注意修改路径),新建dfs和tmp文件夹并不必须,hadoop启动后会自动生成。

3.hadoop运行

  • 格式化hdfs:/usr/local/hadoopbin/hdfs namenode -format
/usr/local/hadoop$ bin/hdfs namenode -format

当出现:INFO common.Storage: Storage directory /home/hadoop/tmp/dfs/name has been successfully formatted.表示成功。只需要格式化一次。

  • hadoop启动,执行:/usr/local/hadoop$ sbin/start-all.sh

输入命令检测:jps。如果成功启动的话会有:jps,NameNode,DataNode,SecondaryNameNode,ResourceManager,NodeManager六个进程。
并且查看NameNode-http://localhost:50070/
ResourceManager-http://localhost:8088/

4.WordCount验证

  • dfs下创建input目录

  /usr/local/hadoop$ bin/hadoop fs -mkdir -p input

  • 运行例子:

(1)复制一些文件到HDFS目录/usr/<usrname>下:/usr/local/hadoop$ hadoop fs -copyFromLocal README.txt input

(2)运行:/usr/local/hadoop$ hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.4.0-sources.jar org.apache.hadoop.examples.WordCount input output

(3)运行完毕后,查看单词统计结果  /usr/local/hadoop$ hadoop fs -cat output/*

  • 关闭hadoop:/usr/local/hadoop$ bin/stop-all.sh
/usr/local/hadoop$ bin/stop-all.sh  

至此搭建完成。

转载于:https://www.cnblogs.com/zhangduo/p/4592749.html

相关文章:

Java项目:生活旅行分享平台(java+Springboot+JPA+Jsp+Html+js+Ajax+maven+mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 mysql Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09; 项目技术&#xff1a; Springboot SpringMVC JPA Jsp Htm…

Servlet和SpringMVC补课

1.web.xml加载顺序 http://mianhuaman.iteye.com/blog/1105522 关键点&#xff1a;ServletContext -> context-param -> listener -> filter -> servlet 2.beans xmlns http://www.w3school.com.cn/xml/xml_namespaces.asp 用于避免元素命名冲突。在Spring中应用极…

gdb debug

1. dir 添加源代码查找路径 一般工程的代码会有多路径&#xff0c;gdb会在当前目录下搜索符号对应的代码。利用dir <path> 可以添加代码搜索路径&#xff1b; 例如工程目录&#xff1a; ./ ./dir_1/ ./dir_2/ 可以用如下命令添加代码搜索路径&#xff1a; dir dir…

Java项目:嘟嘟图片展览馆管理系统(java+Springboot+SpringMVC+JPA+Jsp+maven+mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 mysql Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09; 项目技术&#xff1a; Springboot SpringMVC JPA Jsp Htm…

javascript编译与运行机理(1)--

随着学习js的深入就越想了解其内部的运行机理&#xff0c;看了很多文章&#xff0c;感觉下面总结的不错。但囿于个人水平&#xff0c;只是达到了理解层面&#xff0c;还不能提出自己的见解&#xff0c;只好把资料罗列出来&#xff0c;留待以后总结&#xff1a; 1、Javascript的…

Citrix Synergy 2014 重要信息快速一览

今天的互联网、社交媒体的确强大&#xff0c;我们可以足不出户了解到9600公里&#xff08;北京到LA的距离&#xff09;之外的美国发生的事情。今天从Brain Madden大神那儿又扒到了一些经过提炼的关于Citrix Synergy 2014&#xff08;Citrix每年一度的大会&#xff09;的会议内容…

stm32 flash和sram

FLASH是用来存储程序的&#xff0c;SRAM是用来存储程序运行中的中间变量转载于:https://www.cnblogs.com/CodeWorkerLiMing/p/10984065.html

常见主机字节序

常见主机字节序1&#xff0e; Little endian&#xff1a;将低序字节存储在起始地址2&#xff0e; Big endian&#xff1a;将高序字节存储在起始地址LE little-endian最符合人的 思维的字节序地址低位存储值的低位地址高位存储值的高位怎么讲是最符合人的思维的字节序&#xff0…

Java项目:仿小米电子产品售卖商城系统(java+SpringBoot+Vue+MySQL+Redis+ElementUI)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 项目描述&#xff1a;这是一个基于SpringBootVue框架开发的仿小米电子产品售卖商城系统。首先&#xff0c;这是一个前后端分离的项目&#xff0c;代码简洁规范&#xff0c;注释说明详细。其次&#xff0c;这…

在js中使用createElement创建HTML对象和元素

1.创建链接 <script language"javascript"> var o document.body; //创建链接 function createA(url,text) { var a document.createElement("a"); a.href url; a.innerHTML text; a.style.color "red"; o.appendChild(a); …

Leetcode | 3Sum

Given an array S of n integers, are there elements a, b, c in S such that a b c 0? Find all unique triplets in the array which gives the sum of zero. Note:Elements in a triplet (a,b,c) must be in non-descending order. (ie, a ≤ b ≤ c)The solution set …

玩转 JavaScript 面试:何为函数式编程?

函数式编程在 JavaScript 领域着实已经成为一个热门话题。就在几年前&#xff0c;很多 JavaScript 程序员甚至都不知道啥是函数式编程&#xff0c;但是就在近三年里我看到过的每一个大型应用的代码库中都包含了函数式编程思想的大规模使用。 函数式编程(缩写为 FP)是一种通过组…

正则表达式分类 区别

原文地址&#xff1a;http://www.cnblogs.com/chengmo/archive/2010/10/10/1847287.html 正则表达式&#xff1a;在计算机科学中&#xff0c;是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里&#xff0c;正则表达式通常被用…

Java项目:嘟嘟校园一卡通系统(java+JSP+Servlet+html+css+JavaScript+JQuery+Ajax+mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 功能&#xff1a;卡管理&#xff0c;卡消费&#xff0c;卡充值&#xff0c;图书借阅&#xff0c;消费&#xff0c;记录&#xff0c;注销等等功能。 二、项目运行 环境配置&#xff1a; Jdk…

OC与C语言的区别

C语言是面向过程的编程语言&#xff0c;而OC则是面向对象的编程语言。面向对象:打个比方,就是你做一次菜,让老婆做个菜,吃饭,这就是面向对象,效率高面向过程,就是每一个细节:比如你要先把或开到合适的位置.然后还要洗菜 ,等油热了,才能开始炒菜,然后调料,...,起锅,到碗里,吃饭.…

Hutool之集合工具——CollectionUtil

为什么80%的码农都做不了架构师&#xff1f;>>> 集合工具 CollectionUtil 这个工具主要增加了对数组、集合类的操作。 1. join 方法 将集合转换为字符串&#xff0c;这个方法还是挺常用&#xff0c;是StrUtil.split的反方法。这个方法的参数支持各种类型对象的集合…

15:解决IntelliJ IDEA的乱码问题

1. -Dfile-encodingsUTF-8 &#xff0c;全局&#xff1a; 转载于:https://www.cnblogs.com/gzhbk/p/10991335.html

C++ 和C 语言混合代码导致的问题

C语言中操作字符串用C运行时函数&#xff1a;strtok, strcmp, strcpy等等&#xff0c;直接操作内存。在c引入的字符串操作类std:string &#xff0c;string类中必有一个私有成员&#xff0c;其是一个char*&#xff0c;用户记录从堆上分配内存的地址&#xff0c;其在构造时分配内…

SVN详细使用教程

SVN简介&#xff1a; 为什么要使用SVN&#xff1f; 程序员在编写程序的过程中&#xff0c;每个程序员都会生成很多不同的版本&#xff0c;这就需要程序员有效的管理代码&#xff0c;在需要的时候可以迅速&#xff0c;准确取出相应的版本。 Subversion是什么&#xff1f; 它是一…

Java项目:药店信息管理系统(java+SSM+JSP+layui+maven+mysql)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 环境配置&#xff1a; Jdk1.8 Tomcat8.5 mysql Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09; 项目技术&#xff1a; JSP Spring SpringMVC MyBatis ht…

MongoDB简单操作

MongoDB简单操作 Hadoop核心技术厂商Cloudera将在2014/06推出hadoop Ecosystem与MongoDB的整合产品,届时MongoDB与ipmala及hbase,hive一起用; 开源linux领军企业RHEL也宣布RHEL将整合MongoDB用于简化用户账号管理与LDAP一起用; 数据仓库之MPP技术 领军者莫非 Vertica,exterdata…

Windows Presentation Foundation(介绍外连接)

Windows Presentation Foundation 2011/08/12更新&#xff1a;2010 年 12 月 Windows Presentation Foundation (WPF) 为开发人员提供了统一的编程模型&#xff0c;可用于构建合并了 UI、媒体和文档的丰富 Windows 智能客户端用户体验。 欢迎使用 WPF 了解 WPF&#xff1a; WP…

Linux中与进程终止相关的信号SIGTERM,SIGKILL,SIGINT

1. SIGTERM “kill pid” 会发送SIGTERM到进程pid. This is the termination signal sent by killcommand by default. 2. SIGINT 在终端中敲入interrupt key&#xff08;DELETE或ctrlc&#xff09;会产生SIGINT信号。这个信号会被发送到进程(inforeground proc…

Java项目:嘟嘟二手书商城系统(java+JSP+Springboot+maven+mysql+ThymeLeaf+FTP)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 功能&#xff1a; 主页显示商品&#xff1b; 所有二手书商品展示&#xff0c;可进行商品搜索&#xff1b; 点击商品进入商品详情页&#xff0c;具有立即购买和加入购物车功能&#xff0c;可增减…

SQL用法总结

1、创建数据库语句 create table persons(id INT NOT NULL AUTO_INCREMENT,lastname VARCHAR(255) NOT NULL,firstname VARCHAR(255) NOT NULL,PRIMARY KEY (ID)) DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; 2、创建数据库时&#xff0c;PK、NN、UQ、BIN、UN、…

[leetcode] Binary Tree Preorder Traversal

Given a binary tree, return the preorder traversal of its nodes values. For example:Given binary tree {1,#,2,3}, 1\2/3return [1,2,3]. Note: Recursive solution is trivial, could you do it iteratively? 给定一棵二叉树&#xff0c;使用非递归的方法进行先序遍历。…

error C2065: “M_PI”: 未声明的标识符

1.首先&#xff0c;程序中头文件的选择&#xff0c;要选择<math.h>头文件&#xff0c;在<cmath>文件中是没有对M_PI 的定义的&#xff08;现在的<cmath>中对M_PI好像已有定义&#xff09;。2.选择&#xff1a;项目——>”XXX属性"——>配置属性—…

区分HPUX是Itanium还是PA-RISC

转自&#xff1a;http://blog.csdn.net/nbzll0920/article/details/7961232 pa-risc的产品号以rp打头&#xff0c;itanium的产品号以rx打头 用model或者uname -a命令看一下就知道了 PS: Intel安腾处理器构建在IA-64&#xff08;Intel Architecture 64&#xff09;&#xff0c;…

Java项目:食品溯源系统(java+Springboot+Maven+mybatis+Vue+mysql+wd)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目运行 环境配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术…

使用sqlite保存数据返回主键

/// <summary>/// 返回insert后的主键值/// </summary>/// <param name"SQLString"></param>/// <param name"para"></param>/// <returns></returns>public static int ExecuteSql(string SQLString, Li…