Hadoop安装
1.安装前准备
需要起码三台虚拟机,分别设置为master/slave1/slave2
1.1前提配置
使用ipconfig命令查看各主机的ip信息(这里需要先将各虚拟机ip设置为静态ip)
再使用命令 sudo vim /etc/hosts
,每台机子都要操作
**(进入界面后按i键进行编辑,编辑完毕之后按下esc键后按冒号wq!来退出并保存操作)**也可以按shfit加zz,但是有时候会切输入法烦的不行
再创建两个目录
sudo mkdir /softwares
sudo mkdir /data
1.2配置jdk,防火墙
这里不多介绍,本站有很多教程。本手册的jdk是放在softwares目录下
关闭防火墙
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
检查防火墙状态
sudo systemctl status firewalld.service
确定关闭然后继续操作
2Hadoop配置
还是安装在softwares目录下,并且每台机子都要这样子操作
拷贝解压包到softwares目录下,如果使用x shell可以直接把压缩包放在这个目录下省去这一步
sudo cp /media/toolPackages/hadoop-3.2.1.tar.gz /softwares/
解压
sudo tar -zxvf hadoop-3.2.1.tar.gz
修改环境变量
sudo vim /etc/profile
在文件最后加上
export HADOOP_HOME=/softwares/hadoop-3.2.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
刷新下使得配置生效
source /etc/profile
3在master主机上修改配置文件
3.1创建用户以及权限分配(每台机子都要)
用户创建
sudo useradd -g hadoop hdfs
sudo useradd -g hadoop yarn
sudo mkdir -p /var/log/hadoop/hdfs
sudo mkdir -p /data/hadoop/hdfs
sudo mkdir -p /var/log/hadoop/yarn
权限设置
sudo chown -R hdfs:hadoop /data/hadoop/hdfs
sudo chown -R hdfs:hadoop /var/log/hadoop/hdfs
sudo chown -R yarn:hadoop /var/log/hadoop/yarn
3.2修改hadoop-env.sh文件
切换目录,然后打开文件
cd /softwares/hadoop-3.2.1/etc/hadoop/
vim hadoop-env.sh
末位加上
export HADOOP_LOG_DIR=/var/log/hadoop/hdfs
export HADOOP_NAMENODE_OPTS="-server -Djava.net.preferIPv6Addresses=false -Djava.net.preferIPv4Stack=true -XX:+UseG1GC -Xmx128m"
export HADOOP_DATANODE_OPTS="-server -Djava.net.preferIPv6Addresses=false -Djava.net.preferIPv4Stack=true -Xms128m -Xmx128m"
3.3修改vim yarn-env.sh文件
vim yarn-env.sh
export HADOOP_LOG_DIR=/var/log/hadoop/yarn
export YARN_NODEMANAGER_OPTS="-Djava.net.preferIPv6Addresses=false -Djava.net.preferIPv4Stack=true -XX:+UseG1GC -Xmx256m"
export YARN_RESOURCEMANAGER_OPTS="-Djava.net.preferIPv6Addresses=false -Djava.net.preferIPv4Stack=true -XX:+UseG1GC -Xmx256m"
3.4修改mapred-env.sh
vim mapred-env.sh
export MAPRED_HISTORYSERVER_OPTS="-Djava.net.preferIPv6Addresses=false -Djava.net.preferIPv4Stack=true -XX:+UseG1GC -Xmx64m"
3.5修改core-site.xml
vim core-site.xml
<!--configuration中内容修改如下,保存退出-->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<property>
<name>fs.trash.interval</name>
<value>10080</value>
</property>
</configuration>
3.6修改hdfs-site.xml
vim hdfs-site.xml
<!--configuration中内容修改如下,保存退出-->
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.http.address</name>
<value>master:50070</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hadoop/hdfs/datanode</value>
</property>
<property>
<name>dfs.permissions.superusergroup</name>
<value>hadoop</value>
</property>
</configuration>
3.7修改yarn-site.xml
vim yarn-site.xml
<!--configuration中内容修改如下,保存退出-->
<configuration>
<property>
<name>yarn.acl.enable</name>
<value>true</value>
</property>
<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.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
3.8修改mapred-site.xml
vim mapred-site.xml
<!--configuration中内容修改如下,保存退出-->
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value> master:19888</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=/softwares/hadoop-3.2.1</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=/softwares/hadoop-3.2.1</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=/softwares/hadoop-3.2.1</value>
</property>
</configuration>
3.9修改works
vim workers
master
slave1
slave2
3.10将master节点配置好的文件发送到slave1和2
cd /softwares
scp -r hadoop-3.2.1/ slave1:/softwares/
scp -r hadoop-3.2.1/ slave2:/softwares/
4.启动
登录master节点,在softwares目录下
sudo su - root -c 'cd /softwares/hadoop-3.2.1/bin/;hdfs namenode -format'
sudo chown -R hdfs:hadoop /data/hadoop/hdfs/namenode
三台机子上执行
sudo su - hdfs
cd /softwares/hadoop-3.2.1/sbin/
master上
./hadoop-daemon.sh start namenode
./hadoop-daemon.sh start datanode
slave1上
./hadoop-daemon.sh start datanode
slave2
./hadoop-daemon.sh start datanode
4.1打开新的终端
三台机子上执行
sudo su - yarn
cd /softwares/hadoop-3.2.1/sbin/
master上
./yarn-daemon.sh start resourcemanager
./mr-jobhistory-daemon.sh start historyserver
./yarn-daemon.sh start nodemanager
slave1上
./yarn-daemon.sh start nodemanager
slave2
./yarn-daemon.sh start nodemanager
4.2查看运行的程序
jps
master主机
slave1和slave2