一: Hadoop前置工作
- 設置主機名,添加配置文件中的信息
vi /etc/sysconfig/network
NETWORKING=YES
HOSTNAME=node1
- 映射主機名稱
vi /etc/hosts
192.168.191.131 node1
- 關閉防火墻和開啟自啟動
sevice iptables stop
chkconfig iptables off
vi /etc/selinux/config
SELINUX=disabled
- 服務器時間同步
yum install ntp -y
vi /etc/ntp.conf
#文件中添加
server ntp1.aliyun.com
#啟動
service ntpd start
#開機自啟動
chkconfig ntpd on
- 設置各個服務器間免密登陸
#驗證本機否開啟免密
ssh localhost
#生成秘鑰對
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
#本服務器免加密,如果需要其他機器免加密,就需要吧公鑰發(fā)給其他機器目錄下
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
二: Hadoop配置
- Hadoop包部署,創(chuàng)建文件存放目錄,解壓hadoop文件到該目錄(下載包地址:https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.3.6/hadoop-3.3.6-src.tar.gz)
mkdir /opt/bigdata
tar -xf hadoop-3.3.6-src.tar.gz
- 配置hadoop可執(zhí)行文件全局執(zhí)行
vi /etc/profile
export HADOOP_HOME=/opt/bigdata/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 配置hadoop的角色/環(huán)境配置
cd $HADOOP/etc/hadoop/
#給hadoo配置java環(huán)境
vi hadoop-env.sh
export JAVA_HOME=/usr/java/jdk-11.0.18
vi core-site.xml
#給NN角色在哪里啟動
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
</property>
#hdfs 副本/塊的副本
vi hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
#修改namenode元數(shù)據存放地址
<property>
<name>dfs.namenode.name.dir</name>
<value>/var/bigdata/local/dfs/name</value>
</property>
#修改datanode block塊存放地址
<property>
<name>dfs.datanode.data.dir</name>
<value>/var/bigdata/local/dfs/data</value>
</property>
#修改datanode 啟動的http-address
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node1:50090</value>
</property>
#修改namesecondary 目錄位置
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>/var/bigdata/local/dfs/namesecondary</value>
</property>
</configuration>
#在某臺機器啟動datanode
vi workers
node1
- 初始化&啟動hadoop
# 格式化 創(chuàng)建一個目錄,創(chuàng)建了fsimages空文件
hdfs namenode -format
#啟動
start-dfs.sh
注意:如果以下報錯,需要在/etc/profile中添加
#啟動報錯信息
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
#需要在profile中添加
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
訪問hadoop前端頁面 http://192.168.191.131:(50070)9870/ 你是Hadoop3.x以上的版本,需要將端口號50070改成9870.
在Hadoop的hdfs中創(chuàng)建一個目錄,在前端http://node1:9870/explorer.html#/中可以看到文件目錄(namenode)
hdfs dfs -mkdir /bigdata
- 上傳數(shù)據到Hadoop中(namenode)
hdfs dfs -put file.log /user/root
- Hadoop的dataNode的數(shù)據存放路徑
/var/bigdata/local/dfs/data/current/BP-2129942362-127.0.0.1-1709004244410/current/finalized/subdir0/subdir0