第二章 hadoop的安装和配置
第一节hadoop基础环境的配置
1.0前置操作:使我所创建的普通用户获得管理员权限
操作方法如下
1)切换到管理员用户,切换方法略
2)打开/etc/sudoers 命令1:chmod u+w /etc/sudoers
命令2:vim /etc/sudoers 或者从图形界面打开/etc/sudoers
复制第98行:root ALL=(ALL) ALL
在第99行复制并更改用户名:ryan(改成自己的用户名) ALL=(ALL) ALL
3)被认可的用户使用特权命令时,需要在特权命令前加上sudo
1.1基础网络环境
1.1.1先配置网络联通
在图形界面中,打开网络连接的有线设置->齿轮->ipv4->地址选择手动,填写网络信息就可以了。但是网络信息必须符合网络规则(编辑中有虚拟网络编辑器)
在命令行中:
打开文件后,将以下配置进行更改
BOOTPROTO=static
ONBOOT=yes
添加以下配置
IPADDR=192.168.218.10
NETMASK=255.255.255.0
GATEWAY=192.168.218.2
DNS1=8.8.8.8
最后,重启网络
service network restart
1.1.2配置网络地址与主机名的对应关系(可选)
Sudo vim /etc/hostname
将此文件内容全部删除,更改为你的当前操作主机的主机名
Sudo vim /etc/hosts
在最后新建一行,添加以下内容
IP地址1 主机名1
IP地址2 主机名2
IP地址3 主机名3
1.1.3关闭防火墙
查看防火墙状态
Systemctl status firewalld.service
关闭防火墙
Systemctl strop firewalld.service
查看服务开启启动项列表
Systemctl list-unit-files
设置防火墙开机不自动启动
Systemctl disable firewalld.service
1.2免密登录
首先生成公私钥
Ssh-keygen -t rsa
打开用户目录下的.ssh目录
Cd
Cd .ssh
将公钥文件拷贝成authorized_keys
Cp id_rsa.pub authorized_keys
验证
Ssh 本节点主机名,若无需输入密码可直接登录则设置成功
1.3 jdk安装
复制jdk文件(.tar.gz格式)到用户目录下
在此目录下新建java目录,将安装包移动到该目录下解压
Tar zxvf 压缩包名
解压后为了方便后期操作,将解压后目录名重命名为jdk(使用mv改名)
打开并编辑用户目录下的.\bashrc文件
Vim ~/.bashrc
在正文的后面添加以下内容
Export JAVA_HOME=/home/ryan/java/jdk
Export PATH=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin
保存退出
让该文件立即生效
Source ~/.bashrc
卸载已有jdk(可选)
查询已安装包名中包含jdk的
Rpm -qa |grep jdk
卸载方法
Rpm -e 包名 --nodeps(忽略依赖关系)
使用java -version命令验证
如果显示版本号与安装版本号相同,则证明安装成功了
第二节hadoop的安装
首先将hadoop安装包复制到用户目录下,新建hadoop目录。将安装包移动到该目录下解压。
将解压完成后的目录(hadoop-2.6.2)改名为hadoop(为了方便)
将hadoop根目录下的bin目录和sbin目录路径加入到PATH中
更改~/.bashrc文件如下
export JAVA_HOME=/home/ryan/java/jdk
export HADOOP_HOME=/home/ryan/hadoop/hadoop
export PATH=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin:
H
A
D
O
O
P
H
O
M
E
/
b
i
n
:
HADOOP_HOME/bin:
HADOOPHOME/bin:HADOOP_HOME/sbin
改完后,执行source命令令其立即生效
使用hadoop version验证是否成功
第三节hadoop的配置
3.1在$HADOOP_HOME/etc/hadoop/目录下
需要配置以下文件
Hadoop-env.sh
export JAVA_HOME=/home/ryan/java/jdk
Yarn-env.sh
export JAVA_HOME=/home/ryan/java/jdk
Core-site.xml
在configuration标签中添加以下变量和值
fs.defaultFS
hdfs://node-1:9000
hadoop.tmp.dir
/home/ryan/hadoop/hadoop/tmp
Hdfs-site.xml
(如果不设置该参数,则默认值为3)
dfs.replication
2
(如果不设置该参数,则默认值为
h
a
d
o
o
p
.
t
m
p
.
d
i
r
/
d
f
s
/
n
a
m
e
)
<
n
a
m
e
>
d
f
s
.
n
a
m
e
n
o
d
e
.
n
a
m
e
.
d
i
r
<
/
n
a
m
e
>
<
v
a
l
u
e
>
/
h
o
m
e
/
r
y
a
n
/
h
a
d
o
o
p
/
h
a
d
o
o
p
/
t
m
p
/
d
f
s
/
n
a
m
e
<
/
v
a
l
u
e
>
<
/
p
r
o
p
e
r
t
y
>
<
p
r
o
p
e
r
t
y
>
(
如
果
不
设
置
该
参
数
,
则
默
认
值
为
hadoop.tmp.dir/dfs/name) <name>dfs.namenode.name.dir</name> <value>/home/ryan/hadoop/hadoop/tmp/dfs/name </value> </property> <property>(如果不设置该参数,则默认值为
hadoop.tmp.dir/dfs/name)<name>dfs.namenode.name.dir</name><value>/home/ryan/hadoop/hadoop/tmp/dfs/name</value></property><property>(如果不设置该参数,则默认值为hadoop.tmp.dir/dfs/data)
dfs.datanode.data.dir
/home/ryan/hadoop/hadoop/tmp/dfs/data
Mapred-site.xml
mapreduce.framework.name
yarn
Yarn-site.xml
yarn.resourcemanager.address
rmhostname:8032
Slaves
在此文件中写明所有从节点的节点名,一行一个(如果为伪分布式部署,则默认localhost即可,无需更改)
3.2格式化并启动hadoop
3.3根据运行日志定位问题点