C7.6+H2.6.0伪分布式安装
一、环境:
系统: CentOS 7.6
Hadoop版本: 2.6.0
JDK版本: 1.7.0_80
安装目录: /opt
主机名: hadoop
IP: 192.168.1.65 --因是伪分布式的,故只有一台机器
用户说明: #开头的为root用户;$为新建的hadoop用户
二、系统配置
修改IP和主机名
# vi /etc/hostname
重启机器
# reboot
# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=bf86434b-7691-46a9-997e-fc253d5dd494
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.1.65
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
修改hosts文件,在文件后面添加内容(IP:机器名)
# vi /etc/hosts
192.168.1.65 haddop
修改Linux内核参数
# vi /etc/selinux/config
将SELINUX的值改为disabled
关闭防火墙
# systemctl stop firewalld
# systemctl disable firewalld
因root用户的权限太大了,故建议创建一个新的用户来运行hadoop,创建用户
# useradd hadoop
更改密码
passwd hadoop --(回车后输入两次同样的密码)
配置SSH无密码访问
# su - hadoop
$ ssh-keygen -t rsa --回车几次
$ ssh-keygen -t dsa --回车几次
$ cat ~/.ssh/* >> ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys
验证ssh是否配置成功
$ ssh hadoop date
JAVA环境:
查看系统是否自带了Java
# rpm -qa|grep java
卸载java
# rpm -e 安装包(上面查出来的包名) --nodeps
上传jdk压缩包jdk-7u80-linux-x64.tar.gz到/tmp目录后,解压到/opt环境
# tar -zxvf /tmp/jdk-7u80-linux-x64.tar.gz -c /opt/
配置环境(在文件后面添加下面的内容)
# vi /etc/profile
export JAVA_HOME=/opt/jdk1.7.0_80
export PATH=$PATH:$JAVA_HOME/bin/
#source /etc/profile
验证是否安装配置成功
# java -version
# javac
# jps
三、Hadoop配置
hadoop安装
上传hadoop-2.6.0.tar.gz到/tmp后,解压并授权(不然hadoop用户访问不到这个目录)
# tar -zxvf /tmp/hadoop-2.6.0.tar.gz -c /opt
# chown -R hadoop:hadoop /opt/hadoop-2.6.0
配置hadoop的环境(只配置hadoop用户的即可)
# su - hadoop
$ vi .bash_profile
export HADOOP_HOME=/opt/hadoop-2.6.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
$ source .bash_profile
验证是否生效
$ hadoop
修改hadoop配置文件,配置文件目录在/opt/hadoop-2.6.0/etc/hadoop
(1)在hadoop-env.sh、yarn-env.sh、mapred-env.sh三个文件最后加上java_home路径
$ vi /opt/hadoop-2.6.0/etc/hadoop/hadoop-env.sh
$ vi /opt/hadoop-2.6.0/etc/hadoop/yarn-env.sh
$ vi /opt/hadoop-2.6.0/etc/hadoop/mapred-env.sh
添加的内容如下:
export JAVA_HOME=/opt/jdk1.7.0_80
(2)配置core-site.xml文件
<property>
<name>fs.defaultFS</name>
<!--hadoop为主机名-->
<value>hdfs://hadoop:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<!--hadoop临时目录文件-->
<value>/home/hadoop/hadoop-2.6.0/data/tmp</value>
</property>
(3)配置hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///opt/hadoop-2.6.0/data/dfs/namenode/name</value>
</property>
<property>
<name>dfs.namenode.edits.dir</name>
<value>file:///opt/hadoop-2.6.0/data/dfs/namenode/edits</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///opt/hadoop-2.6.0/data/dfs/datanode</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file:///opt/hadoop-2.6.0/data/dfs/secondarynamenode/name</value>
</property>
<property>
<name>dfs.replication</name>
<!--1为副本数-->
<value>1</value>
</property>
(4)配置yarn-site.xml文件
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
(5)配置mapred-site.xml文件
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
注:以上内容需放在<configuration></configuration>标签内。
格式化hadoop(只需要在第一次格式)
$ hdfs namenode -format
注:一般格式化成功会看到successfully
启动hadoop
启动hdfs
$ start-dfs.sh --中间如果有yes/or选项,均输入yes
启动yarn
$ start-yarn.sh --中间如果有yes/or选项,均输入yes
查看启动状态
$ jps