在Ubuntu中安装Hadoop
时间:2022-05-06
本文章向大家介绍在Ubuntu中安装Hadoop,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
在装Hadoop之前首先需要:
1.java1.6.x 最好是sun的,1.5.x也可以
2.ssh
安装ssh
$ sudo apt-get install ssh
$ sudo apt-get install rsync
下载Hadoop
从http://Hadoop.apache.org/core/releases.html 下载最近发布的版本
最好为Hadoop创建一个用户:
比如创建一个group为Hadoop user为Hadoop的用户以及组
$ sudo addgroup Hadoop
$ sudo adduser --ingroup Hadoop Hadoop
解压下载的Hadoop文件,放到/home/Hadoop目录下 名字为Hadoop
配置JAVA_HOME:
gedit ~/Hadoop/conf/Hadoop-env.sh
将Java代码
1. # The java implementation to use. Required.
2. # export JAVA_HOME=/usr/lib/j2sdk1.5-sun
# The java implementation to use. Required.
# export JAVA_HOME=/usr/lib/j2sdk1.5-sun
修改成java的安装目录:
# The java implementation to use. Required.
export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.15
现在可以使用单节点的方式运行:
$ cd Hadoop
$ mkdir input
$ cp conf/*.xml input
$ bin/Hadoop jar Hadoop-*-examples.jar grep input output 'dfs[a-z.]+'
$ cat output/*
Pseudo-distributed方式跑:
配置ssh
$ su - Hadoop
$ ssh-keygen -t rsa -P ""
Generating public/private rsa key pair.
Enter file in which to save the key (/home/Hadoop/.ssh/id_rsa):
Created directory '/home/Hadoop/.ssh'.
Your identification has been saved in /home/Hadoop/.ssh/id_rsa.
Your public key has been saved in /home/Hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
9d:47:ab:d7:22:54:f0:f9:b9:3b:64:93:12:75:81:27 Hadoop@Ubuntu
让其不输入密码就能登录:
Hadoop@Ubuntu:~$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
使用:
$ ssh localhost
看看是不是直接ok了。
Hadoop配置文件:
conf/core-site.xml
Java代码
1. <?xml version="1.0"?>
2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
3.
4. <!-- Put site-specific property overrides in this file. -->
5.
6. <configuration>
7. <property>
8. <name>Hadoop.tmp.dir</name>
9. <value>/home/Hadoop/Hadoop-datastore/Hadoop-${user.name}</value>
10. </property>
11. <property>
12. <name>fs.default.name</name>
13. <value>hdfs://localhost:9000</value>
14. </property>
15. </configuration>
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>Hadoop.tmp.dir</name>
<value>/home/Hadoop/Hadoop-datastore/Hadoop-${user.name}</value>
</property>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
Hadoop.tmp.dir配置为你想要的路径,${user.name}会自动扩展为运行Hadoop的代码
1. <configuration>
2. <property>
3. <name>dfs.replication</name>
4. <value>1</value>
5. </property>
6. </configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
dfs.replication为默认block复制数量
conf/mapred-site.xml
Xml代码
1. <configuration>
2. <property>
3. <name>mapred.job.tracker</name>
4. <value>localhost:9001</value>
5. </property>
6. </configuration>
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
执行
格式化分布式文件系统:
$ bin/Hadoop namenode -format
启动Hadoop:
Java代码
1. $ bin/start-all.sh
$ bin/start-all.sh
可以从
NameNode - http://localhost:50070/
JobTracker - http://localhost:50030/
查看NameNode和JobTracker
运行例子:
$ bin/Hadoop fs -put conf input
$ bin/Hadoop jar Hadoop-*-examples.jar grep input output 'dfs[a-z.]+'
look at the run result:
$ bin/Hadoop fs -get output output
$ cat output/*
- 使用动态变量进行动态数据比较(r2笔记25天)
- MVC分部视图@Html.Partial
- 基于马尔科夫链的产品评估预测
- MVC 控制器中传递dynamic(对象) 给视图
- 使用copy命令解决LONG类型的困扰(r2第24天)
- MVC 获取路由的 URL 参数值和默认值的集合。
- 用libsvm进行回归预测
- mvc路由配置.html结尾的伪静态
- 【编程基础】Java的接口和抽象类
- 循序渐进调优union相关的sql(r2笔记23天)
- 对分区表导入导出的水平,垂直切分(r2第22天)
- 巧用parallel极速提升数据加载速度(r2第21天)
- 【Windows编程】创建多文档界面
- 生产环境sqlldr加载性能问题及分析之二(r2第20天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- javascript之闭包基础了解
- Python中的多处理与多线程:新手简介
- Fortran中的陷阱-NAMELIST
- 当Excel遇到大数据问题,是时候用Python来拯救了
- PySCF程序包平均场计算的一些收敛技巧
- 你应该知道的10个Python文件系统方法
- 适合初学者的Python装饰器的简易教程
- 一起刷Leetcode第一篇,数组和字典的妙用
- 加速Python列表和字典,让你代码更加高效
- 如何使用Python的Flask和谷歌app Engine来构建一个web app
- 如何用Python实现电子邮件的自动化
- 在Win下安装Visual Studio和Parallel Studio XE
- 我们将项目语言从Python转向Go的5个原因
- GFN-xTB的编译与API使用
- 红外光谱的理论计算