Ubuntu16.04下Hadoop的本地安装与配置
一、系统环境
os : Ubuntu 16.04 LTS 64bit
jdk : 1.8.0_161
hadoop : 3.3.1
二、安装步骤
1、安装并配置ssh
1.1 安装ssh
输入命令: $ sudo apt-get install openssh-server ,安装完成后使用命令 $ ssh localhost 登录本机。
1.2 配置ssh无密码登录
首先使用命令 $ exit 退出上一步的ssh,然后使用ssh-keygen生成密钥,最后将密钥加入授权即可,命令如下:
$ exit # 退出刚才的 ssh localhost
$ cd ~/.ssh/
$ ssh-keygen -t rsa # 会有提示,按回车就可以
$ cat ./id_rsa.pub >> ./authorized_keys # 加入授权
配置完成之后再使用 $ ssh localhost 登录就不需要密码了。
2、安装并配置java
2.1 安装java
将jdk 1.8.0_161压缩包解压后放入/usr/local直接拖动,权限不够,可以用mv命令行操作
注意:openjdk不可以
2.2 配置环境变量
在/usr/local 文件夹下
使用命令 $ vim ~/.bashrc 编辑文件~/.bashrc,在该文件开头添加以下内容:
export JAVA_HOME=/usr/local/java
export JRE_HOME=
J
A
V
A
H
O
M
E
/
j
r
e
e
x
p
o
r
t
C
L
A
S
S
P
A
T
H
=
.
:
JAVA_HOME/jre export CLASSPATH=.:
JAVAHOME/jreexportCLASSPATH=.:JAVA_HOME/lib:
J
R
E
H
O
M
E
/
l
i
b
e
x
p
o
r
t
P
A
T
H
=
JRE_HOME/lib export PATH=
JREHOME/libexportPATH=PATH:$JAVA_HOME/bin
最后使用命令 $ source ~/.bashrc 让环境变量生效。使用java -version查看
3、hadoop的安装与配置
3.1 hadoop下载与安装
将Hadoop解压后的文件放到/usr/local目录下
$ sudo chown -R zzyo ./hadoop #更改为自己的用户名
将以下代码添加到~/.bashrc中:
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_CONF_DIR=
H
A
D
O
O
P
H
O
M
E
/
e
t
c
/
h
a
d
o
o
p
e
x
p
o
r
t
Y
A
R
N
C
O
N
F
D
I
R
=
HADOOP_HOME/etc/hadoop export YARN_CONF_DIR=
HADOOPHOME/etc/hadoopexportYARNCONFDIR=HADOOP_HOME/etc/hadoop
export PATH=
P
A
T
H
:
PATH:
PATH:HADOOP_HOME/bin
然后使用命令 source ~/.bashrc 让环境变量生效,使用命令 hadoop version查看
3.2 hadoop伪分布式配置
hadoop的配置文件存放在/usr/local/hadoop/etc/hadoop下,要修改该目录下的文件core-site.xml和hdfs-site.xml来达到实现伪分布式配置。
修改core-site.xml,将修改为:
hadoop.tmp.dir
file:/usr/local/hadoop/tmp
Abase for other temporary directories.
fs.defaultFS
hdfs://localhost:9000
修改hdfs-site.xml,将修改为:
hadoop.tmp.dir
file:/usr/local/hadoop/tmp
Abase for other temporary directories.
fs.defaultFS
hdfs://localhost:9000
配置完成后在/usr/local/hadoop下使用命令 $ ./bin/hdfs namenode -format 实现namenode的格式化,成功后会有“successfully formatted”及“Exiting with status 0”的提示
在/usr/local/hadoop/sbin下运行start-dfs.sh来开启namenode和datanode
namenode和datanode都要出现才算成功。
3.3配置yarn
在/usr/local/hadoop下操作
然后修改etc/hadoop/mapred-site.xml
mapreduce.framework.name
yarn
修改etc/hadoop/yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
启动资源管理器
$ ./sbin/start-yarn.sh
$ ./sbin/mr-jobhistory-daemon.sh start historyserver
此时发现ResourceManager节点并没有启动,并且执行wordcount命令时,hadoop找不到或无法加载主类,org.apache.hadoop.mapreduce.v2.app.MRAppMaster
此时需要在start-yarn.sh中添加路径
解决方案:
(1).输入命令 hadoop classpath
(2).将输出的内容直接复制到yarn-site.xml文件中:
(3).再次执行start-yarn.sh
使用jps可以看到开启成功
4.wordout测试
vim aa.txt #编辑需要统计单词数的文件
hdfs dfs -mkdir /text #在分布式存储系统中建立text文件
hdfs dfs -copyFromLocal aa.txt /text #将a.txt文件拷贝进text文件里
Hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /text/aa.txt /text/out #将输出结果存放在/text/out中
在创建文件的过程中出现无法分配内存的情况
解决办法:
增加虚拟机内存