一、Hadoop简介
Hadoop是一个开源框架,允许使用简单的编程模型在跨计算机集群的分布式环境中存储和处理大数据。它的设计是从单个服务器扩展到数千个机器,每个都提供本地计算和存储。
二、安装环境
系统:CentOS 7.6
JDK:1.7
Hadoop:2.6.0
两台虚拟机,一台作为 Namenode,另一台作为Datanode
Namenode 192.168.164.xx1
Datanode 192.168.164.xx2
注:虚拟机的 ip 可以通过命令 ifconfig 得知。
二、安装流程
1. 下载 Hadoop、jdk
Hadoop 各个版本下载网址:http://archive.apache.org/dist/hadoop/common/
本次实验测试为 Hadoop 2.6.0
mkdir /home/hadoop
cd /home/hadoop/
wget http://archive.apache.org/dist/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz
tar -zxvf hadoop-2.6.0.tar.gz
mkdir /home/jdk
cd /home/jdk/
# 如果下载不了,可以去官网下载再放到该目录下
# https://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521261.html
wget http://denglab.org/cloudcomputing2018/download/jdk.tar.gz
tar -zxvf jdk.tar.gz
2. 配置系统路径
编辑配置文件
vi ~/.bash_profile
在文末添加以下配置:
#export PATH
export JAVA_HOME=/home/jdk/jdk1.7.0_75
export JAVA_JRE=/home/jdk/jdk1.7.0_75/jre
export HADOOP_HOME=/home/hadoop/hadoop-2.6.0
# path
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH=$JAVA_HOME/bin:$PATH
更新配置
source ~/.bash_profile
3. 配置 Hadoop
3.1 切换目录
# 切换到 Hadoop 根目录下
cd $HADOOP_HOME
mkdir namenode
mkdir datanode
cd etc/hadoop/
3.2 配置公共属性 core-site.xml
vi core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://Namenode:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-2.6.0/tmp/hadoop-${user.name}</value>
</property>
</configuration>
3.3 配置 hdfs-site.xml
vi hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/hadoop-2.6.0/namenode/name_1</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/hadoop-2.6.0/datanode/data_1</value>
</property>
</configuration>
3.4 配置MapReduce mapred-site.xml
mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>Namenode:9001</value>
</property>
</configuration>
3.5 配置 hadoop-env.sh
vi hadoop-env.sh
# 在末行添加
export JAVA_HOME=/home/jdk/jdk1.7.0_75
3.6 配置 slaves
vi slaves
Datanode1
4. 设置节点间免密连接
4.1 进入所有节点,修改主机名
192.168.164.xx1 Namenode
192.168.164.xx2 Datanode1
ssh 192.168.164.xx1
vi /etc/hostname
# 修改内容
Namenode
ssh 192.168.164.xx2
vi /etc/hostname
# 修改内容
Datanode1
exit
vi /etc/hosts
192.168.164.xx1 Namenode
192.168.164.xx2 Datanode1
从主节点复制配置文件到从节点
scp /etc/hosts [email protected]:/etc/hosts
scp ~/.bash_profile [email protected]:~/.bash_profile
4.2 设置秘钥
ssh-keygen -t rsa # 输入后按三次 enter 键即可
ssh Datanode1
ssh-keygen -t rsa # 输入后按三次 enter 键即可
scp /root/.ssh/id_rsa.pub root@Namenode:/root/.ssh/id_rsa.pub.Datanode1
ssh Namenode
cd /root/.ssh
cat id_rsa.pub >> authorized_keys
cat id_rsa.pub.Datanode1 >> authorized_keys
chmod 644 authorized_keys # 非常重要!!!
scp ~/.ssh/authorized_keys root@Datanode1:/root/.ssh/authorized_keys
4.3 测试连接,并关闭防火墙
ssh Datanode1
systemctl stop firewalld
ssh Namenode
systemctl stop firewalld
exit
exit
5. 启动 Hadoop
5.1 复制文件到从节点
scp -r /home/hadoop/ root@Datanode1:/home/hadoop
scp -r /home/jdk/ root@Datanode1:/home/jdk
5.2 运行 Hadoop
cd $HADOOP_HOME
cd etc/hadoop
# 仅第一次启动需要格式化,之后直接切换到该目录下输入启动命令即可,多次格式化会出错
hdfs namenode -format
# 启动
start-dfs.sh
# 关闭
# stop-dfs.sh
hdfs dfsadmin -report
jps
Hadoop 文件操作测试:
# 查看 Hadoop 根目录
hadoop fs -ls /
vi test.txt
# 复制文件到 Hadoop 根目录下
hadoop fs -put test.txt /aaa.txt
hadoop fs -ls /
参考文章:【1】CentOS 7.0 hadoop 2.6 安装与配置 - 简书
【2】Hadoop教程_w3cschool