hadoop_ 快速搭建_1host
1 root用戶配置
1.1 設置靜態ip
- 修改網絡文件:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
NM_CONTROLLED=no # 不使用網絡管理器控制
ONBOOT=yes # 開啓啓動
BOOTPROTO=static # [none|static|bootp|dhcp](不使用|靜態IP|BOOTP協議|DHCP協議)
IPADDR=10.10.10.81 # 本機地址
NETMASK=255.255.255.0 # 子網掩碼
GATEWAY=10.10.10.2 # 默認網關
DNS1=8.8.8.8
DNS2=8.8.4.4
- 重啓網絡:
service network restart
1.2 修改主機名稱
hostnamectl set-hostname lx81
1.3 配置hosts
vi /etc/hosts
10.10.10.81 lx81
1.4 修改時區
ln -sb /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 時區文件軟連接覆蓋
timedatectl # 顯示當前時間信息
1.5 關閉防火牆
systemctl stop firewalld # 關閉:
firewall-cmd --state # 顯示狀態
systemctl disable firewalld # 禁止開啓啓動:`
systemctl is-enabled firewalld # 查看是否開機啓動:
1.6 安裝java
- 刪除原來的java
rpm -qa | grep java # 查看是否安裝java
yum -y remove java # 刪除原版本java
- 安裝java
tar xzvf jdk1.8.0_211.tar.gz
mv jdk1.8.0_211 /usr/lib/
echo 'export JAVA_HOME=/usr/lib/jdk1.8.0_211' >> /etc/profile
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
source /etc/profile
- 分發java
1.7 創建用戶,並開啓免密登錄
useradd hadoop
passwd hadoop
chmod +w /etc/sudoers
echo 'hadoop ALL=(root)NOPASSWD:ALL' >> /etc/sudoers # 免密登錄權限
# 或者hadoop ALL=(ALL) ALL
chmod -w /etc/sudoers
2 hadoop用戶配置
2.1 配置SSH
【邏輯,機器可以免密登錄另外一個擁有自己公鑰的主機】
【原理,機器發送公鑰到目標,目標計算公鑰返回私鑰,返回的私鑰和本機一致則驗證成功】
ssh-keygen -t rsa # 生成密鑰文件
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 配置密鑰,加入公鑰
chmod 600 ~/.ssh/authorized_keys # 修改密鑰文件權限
chmod 700 ~/.ssh
2.2 編輯用戶環境變量
vi ~/.bash_profile
export HADOOP_HOME=$HOME/program/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
source ~/.bash_profile
2.3 安裝hadoop
tar xzvf hadoop-3.2.0.tar.gz
mv hadoop-3.2.0 $HADOOP_HOME
2.4 執行環境指定jave_home路徑
echo 'export JAVA_HOME=/usr/lib/jdk1.8.0_211' >> $HADOOP_HOME/etc/hadoop/hadoop-env.sh
echo 'export JAVA_HOME=/usr/lib/jdk1.8.0_211' >> $HADOOP_HOME/etc/hadoop/yarn-env.sh
2.5 配置hadoop的xml文件
vi $HADOOP/etc/hadoop/core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- HDFS(分佈式文件儲存系統)的NameService,是NameNode的URL -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://lx81:9000</value>
</property>
<!-- hadoop臨時文件目錄-->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/program/hadoop/tmp/hatmp</value>
</property>
<!-- 指定任何ip可以訪問 -->
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
</property>
<!-- 指定所有賬號可以訪問 -->
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
</property>
</configuration>
vi $HADOOP/etc/hadoop/hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 備用主機地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>lx81:50090</value>
</property>
<!-- NameNode名稱空間存儲地址 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/program/hadoop/tmp/namenode</value>
</property>
<!-- 指定HTTP通訊地址 -->
<property>
<name>dfs.namenode.http-address</name>
<value>lx81:50070</value>
</property>
<!-- 冗餘數量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- DataNode數據存儲地址 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/program/hadoop/tmp/datanote</value>
</property>
</configuration>
vi $HADOOP/etc/hadoop/yarn-site.xml
<?xml version="1.0"?>
<configuration>
<!-- NM(NodeManager)的附屬服務,需要設置成mapreduce_shuffle才能運行MapReduce任務 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 其應用訪問管理接口 -->
<property>
<name>yarn.resourcemanager.address</name>
<value>lx81:8032</value>
</property>
<!-- 調度接口地址 -->
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>lx81:8030</value>
</property>
<!-- RM的Web訪問地址 -->
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>lx81:8088</value>
</property>
<!-- 向rm彙報心跳,領取任務的地址-->
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>lx81:8031</value>
</property>
<!-- RM管理員接口地址 -->
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>lx81:8033</value>
</property>
<!-- 啓動聚合操作日誌 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
</configuration>
vi $HADOOP/etc/hadoop/mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 計算任務託管的資源管理名稱 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 配置MapReduce JobHistory Server 地址,默認端口10020 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>0.0.0.0:10020</value>
</property>
<!-- 配置MapReduce JobHistory Server Web 地址,默認端口19888 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>0.0.0.0:19888</value>
</property>
</configuration>
2.6 啓動
hadoop namenode -format # 格式化
$HADOOP_HOME/sbin/start-all.sh # 啓動