Предпосылка: компания White Bear собрала три ноутбука и прошила их системой Centos 7.6.Ниже приведен подробный процесс установки кластера Hadoop.
1. Установите сервис ifconfig
- Все три машины должны выполнить следующие команды
yum install -y net-tools.x86_64
2. Измените IP-адреса трех серверов на статические IP-адреса.
-
Измените файл конфигурации, добавьте следующее
-
MyNode01
# 笔记本刷linux系统,只需更改连接wifi的那个网络即可 # 打开配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33 # 修改内容 BOOTPROTO="static" # 设置 ONBOOT = yes # 添加内容 BROADCAST=192.168.2.255 IPADDR=192.168.2.114 NETMASK=255.255.255.0 GATEWAY=192.168.2.1 # 如ping不通外网,则添加本机的DNS DNS1=192.168.2.1
-
MyNode02
# 笔记本刷linux系统,只需更改连接wifi的那个网络即可 # 打开配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33 # 修改内容 BOOTPROTO="static" # 设置 ONBOOT = yes # 添加内容 BROADCAST=192.168.2.255 IPADDR=192.168.2.115 NETMASK=255.255.255.0 GATEWAY=192.168.2.1 # 如ping不通外网,则添加本机的DNS DNS1=192.168.2.1
-
MyNode03
# 笔记本刷linux系统,只需更改连接wifi的那个网络即可 # 打开配置文件 vi /etc/sysconfig/network-scripts/ifcfg-ens33 # 修改内容 BOOTPROTO="static" # 设置 ONBOOT = yes # 添加内容 BROADCAST=192.168.2.255 IPADDR=192.168.2.116 NETMASK=255.255.255.0 GATEWAY=192.168.2.1 # 如ping不通外网,则添加本机的DNS DNS1=192.168.2.1
-
перезапустить сетевую службу
service network restart
-
IP-адреса трех серверов:
- 192.168.2.114
- 192.168.2.115
- 192.168.2.116
3. Отключите брандмауэр
- Все три машины должны выполнить
systemctl disable firewalld.service
В-четвертых, закрыть selinux
- Все три машины должны выполнить
vim /etc/selinux/config
SELINUX=disabled
5. Измените имя хоста
- 192.168.2.114
vim /etc/hostname
MyNode01
- 192.168.2.115
vim /etc/hostname
MyNode02
- 192.168.2.116
vim /etc/hostname
MyNode03
6. Добавьте отношение сопоставления между именем хоста и IP
- Все три машины должны выполнить
-
vim /etc/hosts
192.168.2.114 MyNode01 192.168.2.115 MyNode02 192.168.2.116 MyNode03
-
Семь, добавьте обычных пользователей
- Все три машины должны выполнить
- И root, и обычные пользователи имеют пароли 123456 (только тестирование)
- Добавить обычного пользователя icebear
useradd icebear
passwd 123456
- Обычные пользователи добавляют разрешения sudo, просто добавляют в конец файла
visudo
miller ALL=(ALL) ALL
Восемь, установите вход без пароля
- Лучше всего задавать пользователей root и icebear, вот пример пользователей icebear.
- Все три машины должны выполнить
# 切换成icebear用户 su icebear # 回到根目录 cd # 生成密钥,一路回车即可 ssh-keygen -t rsa # 将公钥拷贝到MyNode01机器上的authorized_keys文件中(三台机器都要) cd .ssh ssh-copy-id MyNode01
- Выполнить на машине MyNode01
- Скопируйте файл author_keys на другой компьютер
cd /home/icebear/.ssh scp authorized_keys MyNode02:$PWD scp authorized_keys MyNode03:$PWD
- Скопируйте файл author_keys на другой компьютер
- перезагружать
- Все три машины должны выполнить
reboot
- Проверка входа без пароля
- Подключите три машины отдельно, потому что первое подключение необходимо подтвердить.
su MyNode01 ssh MyNode02 ssh MyNode03
- Подключите три машины отдельно, потому что первое подключение необходимо подтвердить.
Девять, создайте каталог установки
- Все три машины должны быть запущены (пользователь root)
# 软件压缩包目录 mkdir -p /home/bgd/soft # 软件安装目录 mkdir -p /home/bgd/install # 为icebear用户添加操作权限 chown -R icebear:icebear /home/bgd
10. Установите JDK
- Выполнить на машине MyNode01 (пользователь icebear)
- скачать jdk
- Загрузите пакет jdk в программную папку компьютера MyNode01.
- распаковывать
cd /home/bgd/soft # 解压软件包到安装目录 tar -zxf jdk-8u181-linux-x64.tar.gz -C /home/bgd/install/
- Изменить переменные среды
sudo vim /etc/profile #添加以下配置内容,配置jdk环境变量 export JAVA_HOME=/home/bgd/install/jdk1.8.0_141 export PATH=:$JAVA_HOME/bin:$PATH
- Заставить переменные окружения действовать
source /etc/profile
- Проверить версию java
java -version
11. Установите и настройте Hadoop
- Выполнить на машине MyNode01 (пользователь icebear)
- Загрузите установочный пакет
- Загрузите установочный пакет Hadoop и разархивируйте его.
tar -xzvf hadoop-2.6.0-cdh5.14.2.tar.gz -C /home/bgd/install
- Настройка переменных среды hadoop
sudo vim /etc/profile # 添加如下内容 JAVA_HOME=/home/bgd/install/jdk1.8.0_141 HADOOP_HOME=/home/bgd/install/hadoop-2.6.0-cdh5.14.2 PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export JAVA_HOME export HADOOP_HOME export PATH
- Заставить переменные окружения действовать
source /etc/profile
- Просмотр информации о версии Hadoop
hadoop version
- Настроить hadoop-env.sh
sudo vim /home/bgd/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/home/bgd/install/jdk1.8.0_141
- Настройте core-site.xml
-
sudo vim /home/bgd/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop/core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://MyNode01:8020</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/bgd/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/tempDatas</value> </property> <!-- 缓冲区大小,实际工作中根据服务器性能动态调整 --> <property> <name>io.file.buffer.size</name> <value>4096</value> </property> <property> <name>fs.trash.interval</name> <value>10080</value> <description>检查点被删除后的分钟数。 如果为零,垃圾桶功能将被禁用。 该选项可以在服务器和客户端上配置。 如果垃圾箱被禁用服务器端,则检查客户端配置。 如果在服务器端启用垃圾箱,则会使用服务器上配置的值,并忽略客户端配置值。</description> </property> <property> <name>fs.trash.checkpoint.interval</name> <value>0</value> <description>垃圾检查点之间的分钟数。 应该小于或等于fs.trash.interval。 如果为零,则将该值设置为fs.trash.interval的值。 每次检查指针运行时, 它都会从当前创建一个新的检查点,并删除比fs.trash.interval更早创建的检查点。</description> </property> </configuration>
-
- настроить hdfs-site.xml
-
sudo vim /home/bgd/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop/hdfs-site.xml
<configuration> <!-- NameNode存储元数据信息的路径,实际工作中,一般先确定磁盘的挂载目录,然后多个目录用,进行分割 --> <!-- 集群动态上下线 <property> <name>dfs.hosts</name> <value>/home/bgd/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop/accept_host</value> </property> <property> <name>dfs.hosts.exclude</name> <value>/home/bgd/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop/deny_host</value> </property> --> <property> <name>dfs.namenode.secondary.http-address</name> <value>MyNode02:50090</value> </property> <property> <name>dfs.namenode.http-address</name> <value>MyNode01:50070</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:///home/bgd/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/namenodeDatas</value> </property> <!-- 定义dataNode数据存储的节点位置,实际工作中,一般先确定磁盘的挂载目录,然后多个目录用,进行分割 --> <property> <name>dfs.datanode.data.dir</name> <value>file:///home/bgd/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/datanodeDatas</value> </property> <property> <name>dfs.namenode.edits.dir</name> <value>file:///home/bgd/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/edits</value> </property> <property> <name>dfs.namenode.checkpoint.dir</name> <value>file:///home/bgd/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/snn/name</value> </property> <property> <name>dfs.namenode.checkpoint.edits.dir</name> <value>file:///home/bgd/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/snn/edits</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> <property> <name>dfs.blocksize</name> <value>134217728</value> </property> </configuration>
-
- Настройте mapred-site.xml
cd /home/bgd/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop
cp mapred-site.xml.template mapred-site.xml
-
sudo vim /home/bgd/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop/mapred-site.xml
<!--指定运行mapreduce的环境是yarn --> <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.job.ubertask.enable</name> <value>true</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>MyNode01:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>MyNode01:19888</value> </property> </configuration>
- Настройте yarn-site.xml
-
sudo vim /home/bgd/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop/yarn-site.xml
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>MyNode01</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <property> <name>yarn.log.server.url</name> <value>http://MyNode01:19888/jobhistory/logs</value> </property> <!--多长时间聚合删除一次日志 此处--> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>2592000</value><!--30 day--> </property> <!--时间在几秒钟内保留用户日志。只适用于如果日志聚合是禁用的--> <property> <name>yarn.nodemanager.log.retain-seconds</name> <value>604800</value><!--7 day--> </property> <!--指定文件压缩类型用于压缩汇总日志--> <property> <name>yarn.nodemanager.log-aggregation.compression-type</name> <value>gz</value> </property> <!-- nodemanager本地文件存储目录--> <property> <name>yarn.nodemanager.local-dirs</name> <value>/home/bgd/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/yarn/local</value> </property> <!-- resourceManager 保存最大的任务完成个数 --> <property> <name>yarn.resourcemanager.max-completed-applications</name> <value>1000</value> </property> </configuration>
-
- редактировать рабов
-
sudo vim /home/bgd/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop/slaves
MyNode01 MyNode02 MyNode03
-
- Создайте каталог для хранения файлов
mkdir -p /home/bgd/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/tempDatas mkdir -p /home/bgd/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/namenodeDatas mkdir -p /home/bgd/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/datanodeDatas mkdir -p /home/bgd/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/edits mkdir -p /home/bgd/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/snn/name mkdir -p /home/bgd/install/hadoop-2.6.0-cdh5.14.2/hadoopDatas/dfs/nn/snn/edits
12. Скопируйте настроенный Hadoop на другие машины
- Машинное выполнение MyNode01 (пользователь icebear)
- удалить документацию пользователя doc
cd /home/bgd/install/hadoop-2.6.0-cdh5.14.2/share/
rm -rf doc/
- Скопируйте Hadoop на другие машины
cd /home/bgd/
sudo scp -r hadoop-2.6.0-cdh5.14.2 MyNode02:$PWD
sudo scp -r hadoop-2.6.0-cdh5.14.2 MyNode03:$PWD
- Скопируйте глобальные переменные на другие машины
sudo scp /etc/profile MyNode02:/etc/
sudo scp /etc/profile MyNode03:/etc/
- удалить документацию пользователя doc
- Выполняются все три машины (пользователь icebear)
- Заставить переменные окружения действовать
source /etc/profile
- Посмотреть версию Hadoop
hadoop version
- Заставить переменные окружения действовать
13. Увеличьте права доступа к каталогу для обычных пользователей.
- Все три машины выполняют
chown -R icebear:icebear /home/bgd
chmod -R 755 /home/bgd
14. Формат Hadoop
- Выполнить на машине MyNode01 (пользователь icebear)
su icebear
hdfs namenode -format
15. Запуск/остановка кластера Hadoop
- Выполнить на машине MyNode01 (пользователь icebear)
- запускать
start-all.sh
- останавливаться
stop-all.sh
- запускать
16. Просмотр веб-интерфейса
- Настройте файл hosts пользовательского хоста (в качестве примера возьмем систему Mac)
-
vim /etc/hosts
# 添加配置 192.168.2.114 MyNode01 192.168.2.115 MyNode02 192.168.2.116 MyNode03
-
- Введите в браузере
- Если на пользовательском хосте не настроен файл hosts