Ubuntu环境下手动配置Hadoop1.2.1
/×××××××××××××××××××××××××××××××××××××××××/
Author:xxx0624
HomePage:http://www.cnblogs.com/xxx0624/
/×××××××××××××××××××××××××××××××××××××××××/
配置Hadoop1.2.1
前提是已经配置过JDK和SSH
(如何配置JDK:http://www.cnblogs.com/xxx0624/p/4164744.html)
(如何配置SSH:http://www.cnblogs.com/xxx0624/p/4165252.html)
1. 添加Hadoop用户
sudo addgroup hadoop
sudo adduser --ingroup hadoop hadoop
sudo usermod -aG admin hadoop
2. 下载Hadoop文件(例:Hadoop1.2.1,我放的时/home/xxx0624/hadoop)
sudo tar -zxzf hadoop-1.2.1.tar.gz
sudo mv hadoop-1.2.1 /home/xxx0624/hadoop
保证所有操作都是在hadoop用户下完成
sudo chown -R hadoop:hadoop /home/xxx0624/hadoop
注意:其实第一步和第二步可以忽略,也就是说不一定要在hadoop用户下进行!!!
3. 设置hadoop和java环境变量
sudo gedit /home/xxx0624/hadoop/conf/hadoop-env.sh
在打开的文件中末尾添加:
export JAVA_HOME=/usr/lib/jvm //(根据你本身的java安装路径而定的)
export HADOOP_HOME=/home/xxx0624/hadoop
export PATH=$PATH:/home/xxx0624/hadoop/bin
使环境变量生效(每次运行Hadoop命令都必须保证变量生效!)
source /home/xxx0624/hadoop/conf/hadoop-env.sh
4. 伪分布式模式配置
core-site.xml: Hadoop Core的配置项,例如HDFS和MapReduce常用的I/O设置等。
hdfs-site.xml: Hadoop 守护进程的配置项,包括namenode,辅助namenode和datanode等。
mapred-site.xml: MapReduce 守护进程的配置项,包括jobtracker和tasktracker。
4.1 首先新建这几个文件夹
mkdir tmp
mkdir hdfs
mkdir hdfs/name
mkdir hdfs/data
/*都是在hadoop文件夹下*/
4.2 开始编辑文件
core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/xxx0624/hadoop/tmp</value>
</property>
hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/home/xxx0624/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/xxx0624/hadoop/hdfs/data</value>
</property>
</configuration
mapred-site.xml:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
5. 格式化HDFS
hadoop namenode -format
如果出现这种错误:
ERROR namenode.NameNode: java.io.IOException: Cannot create directory /home/xxx0624/hadoop/hdfs/name/current
则:将hadoop的目录权限设为当前用户可写sudo chmod -R a+w /home/xxx0624/hadoop,授予hadoop目录的写权限
另外同时还需要更改hdfs/data文件夹的读写权限:
sudo chmod 755 data
6. 启动Hadoop
cd /home/xxx0624/hadoop/bin
start-all.sh
正确结果如下:
Warning: $HADOOP_HOME is deprecated.
starting namenode, logging to /home/xxx0624/hadoop/logs/hadoop-xxx0624-namenode-xxx0624-ThinkPad-Edge.out
localhost: Warning: $HADOOP_HOME is deprecated.
localhost:
localhost: starting datanode, logging to /home/xxx0624/hadoop/logs/hadoop-xxx0624-datanode-xxx0624-ThinkPad-Edge.out
localhost: Warning: $HADOOP_HOME is deprecated.
localhost:
localhost: starting secondarynamenode, logging to /home/xxx0624/hadoop/logs/hadoop-xxx0624-secondarynamenode-xxx0624-ThinkPad-Edge.out
starting jobtracker, logging to /home/xxx0624/hadoop/logs/hadoop-xxx0624-jobtracker-xxx0624-ThinkPad-Edge.out
localhost: Warning: $HADOOP_HOME is deprecated.
localhost:
localhost: starting tasktracker, logging to /home/xxx0624/hadoop/logs/hadoop-xxx0624-tasktracker-xxx0624-ThinkPad-Edge.out
可以通过jps命令来验证是否成功:
如果5个守护进程都出现,则正常。
NameNode:
它是Hadoop 中的主服务器,管理文件系统名称空间和对集群中存储的文件的访问。
SecondaryNameNode:
它不是 namenode 的冗余守护进程,而是提供周期检查点和清理任务。
出于对可扩展性和容错性等考虑,我们一般将SecondaryNameNode运行在一台非NameNode的机器上。
DataNode:
它负责管理连接到节点的存储(一个集群中可以有多个节点)。每个存储数据的节点运行一个 datanode 守护进程。
JobTracker和TaskTracker:
JobTracker负责调度 DataNode上的工作。每个 DataNode有一个TaskTracker,它们执行实际工作。
JobTracker和 TaskTracker采用主-从形式,JobTracker跨DataNode分发工作,而 TaskTracker执行任务。
JobTracker还检查请求的工作,如果一个 DataNode由于某种原因失败,JobTracker会重新调度以前的任务。
7.查看运行状态
http://localhost:50030/ - Hadoop 管理介面
http://localhost:50060/ - Hadoop Task Tracker 状态
http://localhost:50070/ - Hadoop DFS 状态
8. 关闭Hadoop
stop-all.sh
各种错误总结:
1.$HADOOP_HOME is deprecated.....
这个对Hadoop运行无影响。
因为Hadoop本身对HADOOP_HOME进行了判断:
if [ "$HADOOP_HOME_WARN_SUPPRESS" = "" ] && [ "$HADOOP_HOME" != "" ]; then
echo "Warning: \$HADOOP_HOME is deprecated." 1 >& 2
echo 1 >& 2
fi
解决办法:
(1)注释掉上面这段代码
(2)在当前用户的/home/xxx0624/.bash_profile目录下(可能有的机器没有这个文件,比如我的。。)增加一个环境变量
export HADOOP_HOME_WARN_SUPPRESS=1 //这是要增加的环境变量
source .bash_profile //修改完立即使之生效
2.datanode无法启动,即jps命令查询结果中不存在,这时需要在logs文件夹中查看相应的log文件
例如:
2014-12-17 16:37:54,165 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: Invalid directory in dfs.data.dir: Incorrect permission for /home/xxx0624/hadoop/hdfs/data, expected: rwxr-xr-x, while actual: rwxrwxrwx
错误原因:需要将data文件的读写权限改为rwxr-xr-x
解决办法:更改权限
sudo chmod 755 data
然后重启Hadoop
3. datanode启动后自动关闭
查看log日志,发现是data/current/version中的namespaceid和name/current/version中的namespaceid不一样。
解决办法:
将data的namespaceid改为name中的即可。
Ubuntu环境下手动配置Hadoop1.2.1的更多相关文章
- Ubuntu环境下手动配置zookeeper
配置zookeeper 注意:因为是单机伪分布式配置,故同一机器上有3个server zookeeper文件格式如下 home---zookeeper---server0---zookeeper | ...
- Ubuntu环境下手动配置HBase0.94.25
/×××××××××××××××××××××××××××××××××××××××××/ Author:xxx0624 HomePage:http://www.cnblogs.com/xxx0624/ ...
- Ubuntu环境下手动配置ant
配置ant 1. 下载ant(http://ant.apache.org/bindownload.cgi) 例如我下载的是:apache-ant-1.9.4-bin.tar.gz 解压ant,将文件夹 ...
- Ubuntu环境下手动配置ElasticSearch0.90.5
1 下载elasticsearch-0.90.5 2 修改配置(可选) 修改内存:(可选) bin/elasticsearch.in.sh中: ES_MIN_MEM ES_MAX_MEM 修改搜索引擎 ...
- Ubuntu环境下手动配置tomcat
配置tomcat 前提条件:JDK已配置. (配置JDK:http://www.cnblogs.com/xxx0624/p/4164744.html) 1. 下载tomcat(http://tomca ...
- Ubuntu环境下手动配置openSSH
配置openSSH 1.手动下载压缩文件(.tar.gz) zlib-1.2.7.tar.gz openssl-1.0.1j.tar.gz openssh-6.0p1.tar.gz 2.安装zlib ...
- Ubuntu环境下手动配置Java环境
/×××××××××××××××××××××××××××××××××××××××××/ Author:xxx0624 HomePage:http://www.cnblogs.com/xxx0624/ ...
- Linux环境下手动配置sbt
一.下载sbt安装包 从sbt官网下载地址:http://www.scala-sbt.org/download.html下载安装包,以sbt-0.13.13.tgz为例. 二.安装 1.将下载的二进制 ...
- CentOs7环境下手动配置JDK7
下载: JDK7下载地址:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7- ...
随机推荐
- asp.net 文件上传示例整理
ASP.NET依托.net framework类库,封装了大量的功能,使得上传文件非常简单,主要有以下三种基本方法. 方法一:用Web控件FileUpload,上传到网站根目录. 代码如下 复制代码 ...
- Objective-C 【完整OC项目-购票系统-系统分析-代码实现】
电影院买票系统/演唱会买票系统 需求分析: 首先我们进入系统,然后会选择买电影票还是买演唱会票,所以这牵扯两个系统的合成.但是我们知道都是买票系统,所以我们可以先创建一个类,属于购买电影票和演唱会的票 ...
- (转)软件版本中的Alpha,Beta,RC,Trial是什么意思?
版本号:V(Version):即版本,通常用数字表示版本号.(如:EVEREST Ultimate v4.20.1188 Beta )Build:用数字或日期标示版本号的一种方式.(如:VeryCD ...
- 拿到内存中dom元素的最后样式进行修改obj下的currentStyle方法
在用dom操作在对页面中的<style></style>里的样式进行操作时,发现时无效的,我觉得是因为页面DOM解析时此标签的样式内容才会被读到内存中,因此JS操作时取不到此标 ...
- 【leetcode】354. Russian Doll Envelopes
题目描述: You have a number of envelopes with widths and heights given as a pair of integers (w, h). One ...
- 【ASP.NET+MVC4+Web+编程】读书笔记
模型:数据和业务逻辑 视图:展示 控制器:接收视图输入数据,通过模型层业务逻辑处理后 返回给视图 分离关注点(模型 视图 控制器).惯例优先原则 browser-->routing-->c ...
- T-SQL数组循环
T-SQL对字符串的处理能力比较弱,比如要循环遍历象1,2,3,4,5这样的字符串,如果用数组的话,遍历很简单,但是T-SQL不支持数组,所以处理下来比较麻烦.下边的函数,实现了象数组一样去处理字符串 ...
- AngularJS(8)-指令directive
AngularJS 提供了很多内置的指令,你可以使用它们来为你的应用添加功能. 诸如这些: 此外,你可以使用模块来为你应用添加自己的指令: 运行结果:
- Scrapy简介
什么是Scrapy? Scrapy是一个快速.高级的爬行器和网页抓取框架,用来抓取网站和提取网页中结构化的数据.它被广泛的使用于监控数据采集和自动化测试. 参考:http://scrapy.org/
- Spark Tungsten揭秘 Day3 内存分配和管理内幕
Spark Tungsten揭秘 Day3 内存分配和管理内幕 恭喜Spark2.0发布,今天会看一下2.0的源码. 今天会讲下Tungsten内存分配和管理的内幕.Tungsten想要工作,要有数据 ...