Hadoop从0开始 (安装配置:转) (一) - 沐魇
之前一直在找安装教程 都是0.20版本的 弄了好久没有弄出来..我下载的是0.23.11
后来发现是新版跟旧版有很大的不同.官方文档都不更新简直是丧心病狂..
今天终于找到新版的安装配置方法.多次失败后自己理解并修改了一些步骤添加了一些细节说明。分享出来.
安装环境:
- 系统:Ubuntu 14 64bit
- hadoop:0.23.11
- jdk:1.8.0_11
安装步骤:
一.安装JDK
安装 jdk,并且配置环境以及设置成默认
检查jdk是否正确安装和配置
在主目录下执行java -version
如果出现下面类似结果则ok
hadoop@hanson-ThinkPad-Edge:/opt/hadoop$ java -version
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)
|
记得系统中java_home也要设置好
二.安装hadoop
1.下载:
http://mirror.bit.edu.cn/apache/hadoop/common/
选择你要的版本。我选择的是最新的 0.23.11
hadoop是32位的如果是64位系统最好使用源码安装
不然之后也要重新编译64位库 很麻烦
2.安装
ubuntu下解压然后改名为hadoop方便敲命令
再移动到 /opt/下 用sudo mv
现在hadoop的目录即 /opt/hadoop
以后的命令我都是按这个位置来。
三.安装ssh server
这个是ssh的服务
sudo apt-get install openssh-server
四.添加hadoop用户
为了方便hadoop的管理,最好添加一个单独的用户来管理hadoop,例如添加hadoop用户
执行以下命令
sudo adduser hadoop
然后会提示输入密码,设置好密码就可以了
这时候只要执行
su hadoop
输入密码后就可以切换到hadoop用户下
注:
为了使hadoop帐号下能够sudo,在 /etc/sudousers 里
sudo ALL=(ALL:ALL) ALL的后面添加
hadoop ALL=(ALL:ALL) ALL
五.配置本机ssh无密码登录
hadoop@hanson-ThinkPad-Edge:~$ ssh-keygen -t rsa
ssh-keygen -t rsa命令会在当前目录下产生一个隐藏.ssh文件夹,以参数 rsa (或者 dsa) 方式在里面产生公钥和密钥,名称为 id_rsa.pub 和id_rsa ,可以把公钥给别的计算机来无密码登录你电脑,相当于通行证。
hadoop@hanson-ThinkPad-Edge:~$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
authorized_keys便是存放别人的公钥的地方。这个命令就是复制到里面。
测试:
hadoop@hanson-ThinkPad-Edge:~$ ssh localhost
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-32-generic x86_64)
* Documentation: https://help.ubuntu.com/
Last login: Wed Aug 13 11:25:32 2014 from localhost
六.配置Hadoop
chmod -R 777 /opt/hadoop
改变hadoop的权限,使所有人可读可写。
su hadoop
切换到hadoop用户
1. 配置jdk及hadoop环境变量
在~/.bashrc文件里追加(只有当前用户可以使用的配置,切记切换到hadoop)
下面所有因安装而异的配置在我会用粗体标注。
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_11
export JRE_HOME=${JAVA_HOME}/jre
export HADOOP_HOME=/opt/hadoop
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$HADOOP_HOME/bin:$PATH
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
2. Hadoop文件配置
hadoop@hanson-ThinkPad-Edge:~$ cd /opt/hadoop/etc/hadoop/
hadoop@hanson-ThinkPad-Edge:/opt/hadoop/etc/hadoop$ vi yarn-env.sh
追加以下配置 (下面所有因安装而异的配置在我会用粗体标注。)
export HADOOP_FREFIX=/opt/hadoop
export HADOOP_COMMON_HOME=${HADOOP_FREFIX}
export HADOOP_HDFS_HOME=${HADOOP_FREFIX}
export PATH=$PATH:$HADOOP_FREFIX/bin
export PATH=$PATH:$HADOOP_FREFIX/sbin
export HADOOP_MAPRED_HOME=${HADOOP_FREFIX}
export YARN_HOME=${HADOOP_FREFIX}
export HADOOP_CONF_HOME=${HADOOP_FREFIX}/etc/hadoop
export YARN_CONF_DIR=${HADOOP_FREFIX}/etc/hadoop
下面在 /opt/hadoop/etc/hadoop/ 目录下进行一系列配置(这些文件的模板都在template里面,学到深入的时候再分享。我后面遇到的问题也与此有关。)
vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs: //localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/hadoop-root</value>
</property>
<property>
<name>fs.arionfs.impl</name>
<value>org.apache.hadoop.fs.pvfs2.Pvfs2FileSystem</value>
<description>The FileSystem for arionfs.</description>
</property>
</configuration>
|
注意下面配置中的地址,也与安装路径有关。
vi hdfs-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/hadoop/data/dfs/name</value>
<final> true </final>
</property>
<property>
<name>dfs.namenode.data.dir</name>
<value>file:/opt/hadoop/data/dfs/data</value>
<final> true </final>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.permission</name>
<value> false </value>
</property>
</configuration>
|
vi mapred-site.xml 这个是新文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
|
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.job.tracker</name>
<value>hdfs: //localhost:9001</value>
<final> true </final>
</property>
<property>
<name>mapreduce.map.memory.mb</name>
<value>1536</value>
</property>
<property>
<name>mapreduce.map.java.opts</name>
<value>-Xmx1024M</value>
</property>
<property>
<name>mapreduce.reduce.memory.mb</name>
<value>3072</value>
</property>
<property>
<name>mapreduce.reduce.java.opts</name>
<value>-Xmx2560M</value>
</property>
<property>
<name>mapreduce.task.io.sort.mb</name>
<value>512</value>
</property>
<property>
<name>mapreduce.task.io.sort.factor</name>
<value>100</value>
</property>
<property>
<name>mapreduce.reduce.shuffle.parallelcopies</name>
<value>50</value>
</property>
<property>
<name>mapreduce.system.dir</name>
<value>file:/opt/hadoop/data/mapred/system</value>
</property>
<property>
<name>mapreduce.local.dir</name>
<value>file:/opt/hadoop/data/mapred/local</value>
<final> true </final>
</property>
</configuration>
|
vi yarn-site.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce.shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle. class </name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>user.name</name>
<value>hadoop</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>localhost:54311</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>localhost:54312</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>localhost:54313</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>localhost:54314</value>
</property>
<property>
<name>yarn.web-proxy.address</name>
<value>localhost:54315</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>localhost</value>
</property>
</configuration>
|
配置完成.
七.启动并运行wordcount程序
1. 格式化namenode. 进入 /opt/hadoop/
键入 bin/hadoop namenode -format
切记若多次格式化,请先清空hdfs-site.xml中dfs.namenode.*.dir设置的文件路径里的文件。不然会冲突。不要把文件夹删了。
2. 启动
于/opt/hadoop/sbin
$ ./start-dfs.sh
$../start-yarn.sh
4.检查启动是否成功
hadoop@hanson-ThinkPad-Edge:/opt/hadoop/sbin$ jps
5036 DataNode
5246 SecondaryNameNode
5543 NodeManager
5369 ResourceManager
4852 NameNode
5816 Jps
全部存在就成功了。
5.试着运行wordcount
1)构造输入数据
新建一个文本文件
比如在 ~ 目录下的test.txt中输入一系列字母
hadoop@hanson-ThinkPad-Edge:/opt/hadoop$ cat ~/test.txt
a c b a b d f f e b a c c d g i s a b c d e a b f g e i k m m n a b d g h i j a k j e
记得打空格。这个示例是用来统计单词数量的,不打空格它就只统计一个了。
2)上传到hdfs
hadoop@hanson-ThinkPad-Edge:/opt/hadoop$ hadoop fs -mkdir /test (在hdfs中创建一个新文件夹)
hadoop@hanson-ThinkPad-Edge:/opt/hadoop$ hadoop fs -copyFromLocal ~/test.txt /test (这个指令就是从本地复制到hdfs中)
hadoop@hanson-ThinkPad-Edge:/opt/hadoop$ hadoop fs -ls /test (查看test中的文件)
Found 1 items
-rw-r--r-- 1 hadoop supergroup 86 2013-04-18 07:47 /test/test.txt
3)执行程序
注意版本号。
hadoop@hanson-ThinkPad-Edge:/opt/hadoop$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-0.23.11.jar wordcount /test/test.txt /test/out
#其中/test/out 为输出目录
4)查看结果
hadoop@hanson-ThinkPad-Edge:/opt/hadoop$ hadoop fs -ls /test
Found 2 items
drwxr-xr-x - hadoop supergroup 0 2014-08-13 11:42 /test/out
-rw-r--r-- 1 hadoop supergroup 86 2014-08-13 13:50 /test/test.txt
hadoop@ubuntu:/opt/hadoop$ hadoop fs -ls /test/out
Found 2 items
-rw-r--r-- 1 hadoop supergroup 0 2014-08-13 13:53 /test/out/_SUCCESS
-rw-r--r-- 1 hadoop supergroup 76 2014-08-13 13:53 /test/out/part-r-00000
hadoop@ubuntu:/opt/hadoop$ hadoop fs -cat /test/out/part-r-00000
14/08/13 13:55:24 INFO util.NativeCodeLoader: Loaded the native-hadoop library
a 7
b 6
c 4
d 4
e 4
f 3
g 3
h 1
i 3
j 2
k 2
m 2
n 1
s 1
最后记得
$ ./stop-dfs.sh
$ ./stop-yarn.sh
--------------------
下面说一下我所遇到的问题!
1.第一个错误是碰到说找不到加载类namenode
解决过程: 经过查找发现是xml配置文件写错了 多了一个符号 删去后好了
2.第二个碰到的问题就是datanode始终无法启动
解决过程:经过查找logs目录下的datanode启动的记录
发现抛出 IOException ,大概是 Incompatible clusterIDs 。也就是clusterIDs 有矛盾。最后找到原因是由于总是配置不好,我进行了多次的格式化。所以才会冲突
切记若多次格式化,请先清空hdfs-site.xml中dfs.namenode.*.dir设置的文件路径里的文件。不然会冲突。不要把文件夹删了。
于是有了上面这句忠告。
3.第三个碰到的问题是在最后一步查看输出文档时。结果之前提示如下。
Java HotSpot(TM) 64-Bit Server VM warning: You have loaded library /opt/hadoop/lib/native/libhadoop.so.1.0.0 which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
14/08/13 13:55:24 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
大概就是说我本地库无法加载。
解决方法:查找到原因是因为hadoop用的是32位的库而系统是64位的。
想消除这个warning需要编译一个64位的库。或者一开始就用源码安装。心累。于是去官网下载了 src (http://mirror.bit.edu.cn/apache/hadoop/common/)
另外还需要安装 maven 和 CMake 还有protobuf (过程略)
最后进入源码目录 敲下 mvn package -Pdist,native -DskipTests 编译
结果出现了另外的问题,报出Error提示不准使用自关闭元素 <p/> 于是我去源码里把所有的<p/>删除了 (不知道是标准改变的原因还是什么)
之后还出现了各种各样的问题。。一般是缺少某个项目造成的 比如 protobuf 这个也得下 过程略。
4.使用hadoop dfsadmin -report 类似的操作时 提示:
DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.
解释:新版这样的命令已经由hadoop变成了hdfs
----------------------------------------
其他经验:
1.hadoop 命令设置(原始命令过长使用别名简化命令):在~/.bashrc 中添加如下:
#alias for hadoop
alias hls='hadoop fs -ls'
alias hlsr='hadoop fs -lsr'
alias hcp='hadoop fs -cp '
alias hmv='hadoop fs -mv'
alias hget='hadoop fs -get'
alias hput='hadoop fs -put'
alias hrm='hadoop fs -rm'
alias hmkdir='hadoop fs -mkdir'
alias hcat='hadoop fs -cat'
alias hrmr='hadoop fs -rmr'
alias hstat='hadoop fs -stat'
alias htest='hadoop fs -test'
alias htext='hadoop fs -text'
alias htouchz='hadoop fs -touchz'
alias hdu='hadoop fs -du'
alias hdus='hadoop fs -dus'
alias hchmod='hadoop fs -chmod'
alias hchgrp='hadoop fs -chgrp'
alias hchown='hadoop fs -chown'
alias htail='hadoop fs -tail'
alias hjar='hadoop jar'
以后就可以使用这些简化命令来代替了。
转载于:https://www.cnblogs.com/ainubis/p/3990233.html
Hadoop从0开始 (安装配置:转) (一) - 沐魇相关推荐
- Hadoop 2.0集群配置详细教程
Hadoop 2.0集群配置详细教程 前言 Hadoop2.0介绍 Hadoop是 apache 的开源 项目,开发的主要目的是为了构建可靠,可拓展 scalable ,分布式的系 统, hadoop ...
- mysql 8.0.18安装,mysql 8.0.18 安装配置方法图文教程
mysql 8.0.18 安装配置方法图文教程 本文记录了mysql 8.0.18 安装配置图文教程,供大家参考,具体内容如下 第一步:下载MySql 下载地址:MySQL 第二步:安装MySql 打 ...
- mysql安装教程8.0.22_mysql 8.0.22 安装配置方法图文教程
本文记录了mysql 8.0.22 安装配置图文教程,供大家参考,具体内容如下 一.安装 (1).官网下载 (2).安装(前提是之前没安装过mysql,若安装过,下面有介绍卸载方式:若不知道有没有安装 ...
- VMware ESXI5.0的安装配置
VMware ESXI5.0的安装配置 在最近发布的vSphere 5.0中,VMware淘汰了ESX,ESXi成为了唯一的hypervisor.在ESXi 5.0中,VMware提供了七大重要的 ...
- apache2.2 + php5.2.4 + mysql5.0.x 安装配置
apache2.2 + php5.2.4 + mysql5.0.x 安装配置 我下载的都是安装版本,先对简单,需要修改的配置不多 发生错误后在google baidu上查找,所出现的错误都能找到, ...
- hadoop 3.0+ 版本安装访问50070失败处理方法
hadoop 3.0+ 版本安装访问50070失败处理方法 安装hadoop 3.0+ 安装成功后访问http://localhost:50070/访问失败,或者http://localhost:90 ...
- mysql8.0安装设置密码_mysql8.0.11安装配置方法图文教程 MySQL8.0新密码认证方式
本文为大家分享了mysql8.0.11安装配置方法图文教程.MySQL8.0新密码认证方式,供大家参考,具体内容如下 1.前言 Oracle已经发布了MySQL8.0GA,GA在外国就是release ...
- tomcat7.0.81 linux,Linux/CentOS7.0下安装配置Tomcat8.0
Linux/CentOS7.0下安装配置Tomcat8.0 一.配置Tomcat安装环境 1.下载对应的jdk 我用的是64位的下载地址: 下载将jdk加压后放到/usr/local目录下: 2.建立 ...
- ubuntu18.4中查看mysql_Ubuntu18.0.4下mysql 8.0.20 安装配置方法图文教程
mysql 8.0.20 安装配置方法图文教程整理下,供大家参考. 一.准备工作 1.检查是否已经安装mysql 当前计算机没有安装mysql. 2.下载MySQL8.0. 根据MySQL安装指南,发 ...
最新文章
- IMAX融资5000万美元,三年内要打造25个VR项目
- python turtle循环图案-Python绘图Turtle库详解
- wp-login.php 404页面,wordpress隐藏后台登陆界面,自动跳转首页或404
- 关于日志系统显示SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder“.
- Burrow 服务的安装部署
- include 引号和尖括号的区别
- 用开源项目PhotoView实现图片的双指缩放和双击放大缩小
- asp.net core sdk runtime 镜像[已更新至2.2.0]
- 【HDU - 1520】Anniversary party (树形dp)
- 6月第二周中国五大顶级域名增2.4万 美国减6.8万
- SpringMVC面试
- 记一次ZABBIX监控JMX故障
- 应用程式中夜间模式的Android DayNight主题
- 大智慧行情服务器在哪个文件夹,【大智慧】大智慧公式在哪个文件夹?
- 华中农业大学和南京农业大学计算机,科学网—2015年国内几所农业大学的国家基金排名及评述 - 朱猛进的博文...
- 内核同步机制——蜗窝科技
- Unity插件学习(五) ------ 本地存储Easy Save3
- matlab 使得三维图形可以手动旋转,三维图形的平移,旋转与错切
- mysql 语句 简书_MySQL SQL语句
- Java经典面试:完美世界java开发待遇
热门文章
- vue 封装调用 wangeditor v4.0富文本编辑框组件 v-model
- C++编程问题汇总(方便日后查阅)
- 每天一道LeetCode-----将链表中满足条件的节点移动到前面
- 在windows下查看进程
- 颜色分类—leetcode75
- oracle布尔true 1,将.NET布尔数据类型映射到实体框架中的oracle数(1,0)会抛出错误
- VMware Vix API 操作虚拟机
- 关于Javaweb部署到linux服务器产生乱码?的原因分析
- ISP与IAP的区别
- 牛客练习赛36 F-Rabbit的蛋糕 (叉积求面积, 记录前缀)