IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Hadoop安装手册 -> 正文阅读

[大数据]Hadoop安装手册

1 安装环境

内核:3.10.0-229.el7.x86_64

操作系统:CentOS 7

ssh和sshd已经默认配置

在局域网中有三台机器用于安装:192.168.1.170,192.168.1.171,192.168.1.172,此处192.168.1.170为namenode,192.168.1.171和192.168.1.172为datanode1和datanode2。

IP地址已经配置好,三台机器互相可以通信。

2 配置Java

此处将Java配置到系统环境里面去。

首先,解压缩Java官方压缩包,并配置环境变量。

表2-1:配置Java(root用户)

tar -xzf jdk-8u45-linux-x64.gz

mv ./jdk1.8.0_45 /usr/local/java

cat <<HERE >>/etc/profile

JAVA_HOME=/usr/local/java

PATH=\$PATH:\$JAVA_HOME/bin

HERE

需要在三台机器上分别执行该配置操作。

如果需要JAVA_HOME环境变量在当前shell环境立即生效,执行如下命令即可。

表2-2:应用环境变量(root用户)

source /etc/profile

3 添加hadoop用户

分别在三台机器上添加hadoop用户,配置完成后,通过hadoop用户来使用Hadoop。

表3-1:添加hadoop用户(root用户)

useradd hadoop

passwd hadoop

4 配置主机名

4.1 配置/etc/hosts文件

在三台机器上的/etc/hosts文件末尾加入如下内容:

表4-1:修改/etc/hosts文件(root用户)

192.168.1.170?? hmaster

192.168.1.171?? hslave1

192.168.1.172?? hslave2

4.2 配置/etc/hostname文件

将/etc/hostname文件,根据namenode,datanode1,datanode2的顺序修改为:

表4-2:修改/etc/hostname文件(root用户)

hmaster

hslave1

hslave2

??? 修改/etc/hostname文件会在节点重启后依然生效。执行如下命令,只会在当前环境生效,重启失效。

按照同样的顺序(namenode,datanode1,datanode2)分别执行以下命令在各节点上。

表4-3:设置主机名(root用户)

hostname hmaster

hostname hslave1

hostname hslave2

5 配置ssh免密登录

首先,需要在三台机器上修改sshd的配置文件以允许使用密钥的验证方式登录。

表5-1:启用ssh密钥验证方式登录(root用户)

cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

sed -i '1,/#RSA/s/#RSA/RSA/' /etc/ssh/sshd_config

sed -i '1,/#Pub/s/#Pub/Pub/' /etc/ssh/sshd_config

service sshd restart

需要在三台机器上分别生成private和public密钥。其中将namenode的公钥分发给namenode,datanode1和datanode2,将datanode1和datanode2的公钥分发给namenode。datanode1和datanode2互相分发公钥。

表5-2:namenode分发公钥(hadoop用户)

mkdir $HOME/namenode

echo "" | ssh-keygen -t rsa -P ''

ssh-copy-id hadoop@hmaster

ssh-copy-id hadoop@hslave1

ssh-copy-id hadoop@hslave2

表5-3:datanode1分发公钥(hadoop用户)

mkdir $HOME/datanode

echo "" | ssh-keygen -t rsa -P ''

ssh-copy-id hadoop@hmaster

ssh-copy-id hadoop@hslave2

表5-4:datanode2分发公钥(hadoop用户)

mkdir $HOME/datanode

echo "" | ssh-keygen -t rsa -P ''

ssh-copy-id hadoop@hmaster

ssh-copy-id hadoop@hslave1

配置完成之后,namenode的hadoop用户就可以免密ssh登录datanode1和datanode2了。同时,datanode1和datanode2也分别可以通过hadoop用户免密ssh登录namenode了。

6 配置Hadoop

6.1 配置环境变量

分别在三台机器上配置Hadoop。首先解压缩Hadoop官方压缩包,并为hadoop用户配置环境变量。

表6-1:配置Hadoop(root用户)

tar -xzf hadoop-2.6.0.tar.gz

mv hadoop-2.6.0 /usr/local/hadoop

chown -R hadoop:hadoop /usr/local/hadoop

表6-2:配置Hadoop环境变量(hadoop用户)

cat? <<HERE >>/home/hadoop/.bashrc

HADOOP_HOME=/usr/local/hadoop

HADOOP_PREFIX=\$HADOOP_HOME

HADOOP_COMMON_HOME=\$HADOOP_HOME

HADOOP_CONF_DIR=\$HADOOP_HOME/etc/hadoop

HADOOP_HDFS_HOME=\$HADOOP_HOME

HADOOP_MAPRED_HOME=\$HADOOP_HOME

HADOOP_YARN_HOME=\$HADOOP_HOME

PATH=\$PATH:\$HADOOP_HOME/sbin:\$HADOOP_HOME/bin

HERE

如果需要hadoop相关环境变量在当前shell环境立即生效,执行如下命令即可。

表6-3:应用环境变量(hadoop用户)

source ~/.bashrc

6.2 修改hadoop-env.sh

修改hadoop默认配置文件。默认配置文件存放在$HADOOP_HOME/etc/hadoop目录下。

hadoop-env.sh(三台机器)

首先备份该文件:

表6-4:备份hadoop-env.sh(hadoop用户)

cp hadoop-env.sh hadoop-env.sh.backup

将该文件修改成如下内容:

表6-5:修改后的hadoop-env.sh

export JAVA_HOME=/usr/local/java

export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-"/etc/hadoop"}

for f in $HADOOP_HOME/contrib/capacity-scheduler/*.jar; do

? if [ "$HADOOP_CLASSPATH" ]; then

??? export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$f

? else

??? export HADOOP_CLASSPATH=$f

? fi

done

export HADOOP_OPTS="$HADOOP_OPTS -Djava.net.preferIPv4Stack=true"

export HADOOP_NAMENODE_OPTS="-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,NullAppender} $HADOOP_NAMENODE_OPTS"

export HADOOP_DATANODE_OPTS="-Dhadoop.security.logger=ERROR,RFAS $HADOOP_DATANODE_OPTS"

export HADOOP_SECONDARYNAMENODE_OPTS="-Dhadoop.security.logger=${HADOOP_SECURITY_LOGGER:-INFO,RFAS} -Dhdfs.audit.logger=${HDFS_AUDIT_LOGGER:-INFO,NullAppender} $HADOOP_SECONDARYNAMENODE_OPTS"

export HADOOP_NFS3_OPTS="$HADOOP_NFS3_OPTS"

export HADOOP_PORTMAP_OPTS="-Xmx512m $HADOOP_PORTMAP_OPTS"

export HADOOP_CLIENT_OPTS="-Xmx512m $HADOOP_CLIENT_OPTS"

export HADOOP_SECURE_DN_USER=${HADOOP_SECURE_DN_USER}

export HADOOP_SECURE_DN_LOG_DIR=${HADOOP_LOG_DIR}/${HADOOP_HDFS_USER}

export HADOOP_PID_DIR=${HADOOP_PID_DIR}

export HADOOP_SECURE_DN_PID_DIR=${HADOOP_PID_DIR}

export HADOOP_IDENT_STRING=$USER

6.3 修改hdfs-site.xml

hdfs-site.xml(三台机器)

首先备份该文件:

表6-6:备份hdfs-site.xml(hadoop用户)

cp hdfs-site.xml hdfs-site.xml.backup

将该文件修改成如下内容:

表6-7:修改后的hdfs-site.xml

<configuration>

<property>

??????? <name>dfs.namenode.name.dir</name>

??????? <value>/home/hadoop/namenode</value>

</property>

<property>

?????? <name>dfs.permissions.superusergroup</name>

?????? <value>hadoop</value>

</property>

<property>

?????? <name>dfs.permissions</name>

?????? <value>false</value>

</property>

<property>

?????? <name>dfs.client.block.write.replace-datanode-on-failure.policy</name>

?????? <value>never</value>

</property>

<property>

?????? <name>dfs.replication</name>

?????? <value>2</value>

</property>

<property>

?????? <name>dfs.support.append</name>

?????? <value>true</value>

</property>

<property>

??????? <name>dfs.namenode.secondary.http-address</name>

??????? <value>hmaster:50090</value>

</property>

<property>

?????? <name>dfs.namenode.http-address</name>

?????? <value>hmaster:50070</value>

</property>

<property>

?????? <name>dfs.datanode.data.dir</name>

?????? <value>file:///home/hadoop/datanode</value>

?????? <final>true</final>

</property>

</configuration>

6.4 修改mapred-site.xml

mapred-site.xml(三台机器)

首先生成该文件:

表6-8:备份mapred-site.xml(hadoop用户)

cp mapred-site.xml.template mapred-site.xml

将该文件修改成如下内容:

表6-9:修改后的mapred-site.xml

<configuration>

<property>

? <name>mapreduce.framework.name</name>

?? <value>yarn</value>

</property>

</configuration>

6.5 修改slaves

slaves(三台机器)

首先备份该文件:

表6-10:备份slaves(hadoop用户)

cp slaves slaves.backup

将该文件修改成如下内容:

表6-11:修改后的slaves

hslave1

hslave2

6.6 修改yarn-site.xml

yarn-site.xml(三台机器)

首先备份该文件:

表6-12:备份yarn-site.xml(hadoop用户)

cp yarn-site.xml yarn-site.xml.backup

将该文件修改成如下内容:

表6-13:修改后的yarn-site.xml

<configuration>

<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>

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value>hmaster:8031</value>

</property>

<property>

<name>yarn.resourcemanager.address</name>

<value>hmaster:8032</value>

</property>

<property>

<name>yarn.resourcemanager.scheduler.address</name>

<value>hmaster:8030</value>

</property>

<property>

<name>yarn.resourcemanager.admin.address</name>

<value>hmaster:8033</value>

</property>

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value>hmaster:8088</value>

</property>

<property>

<description>Classpath for typical applications.</description>

<name>yarn.application.classpath</name>

<value> $HADOOP_CONF_DIR,$HADOOP_COMMON_HOME/share/hadoop/common/*,$HADOOP_COMMON_HOME/share/hadoop/common/lib/*,$HADOOP_HDFS_HOME/share/hadoop/hdfs/*,$HADOOP_HDFS_HOME/share/hadoop/hdfs/lib/*,$HADOOP_YARN_HOME/share/hadoop/yarn/*,$HADOOP_YARN_HOME/share/hadoop/yarn/lib/*</value>

</property>

</configuration>

6.7 修改core-site.xml

core-site.xml(三台机器)

首先备份该文件:

表6-14:备份core-site.xml(hadoop用户)

cp core-site.xml core-site.xml.backup

将该文件修改成如下内容:

表6-15:修改后的core-site.xml

<configuration>

<property>

??? <name>fs.defaultFS</name>

??? <value>hdfs://hmaster:9000/</value>

</property>

<property>

?????? <name>hadoop.tmp.dir</name>

?????? <value>/home/hadoop/data/hadoop/tmp</value>

</property>

</configuration>

6.8 关闭防火墙及禁用IPv6

关闭防火墙:

表6-16:关闭防火墙(root用户)

systemctl stop firewalld

# 执行以下命令配置开机禁用防火墙

systemctl disable firewalld

禁用IPv6:

表6-17:备份/etc/sysctl.conf文件(root用户)

cp /etc/sysctl.conf /etc/sysctl.conf.backup

表6-18:添加如下内容到/etc/sysctl.conf(root用户)

net.ipv6.conf.all.disable_ipv6 = 1

net.ipv6.conf.default.disable_ipv6 = 1

要使/etc/sysctl.conf文件修改立即生效,执行如下命令即可。

表6-19:应用修改(root用户)

sysctl -p

禁用SELINUX,修改/etc/selinux/config文件,修改成如下内容。

表6-20:修改/etc/selinux/config文件(root用户)

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#???? enforcing - SELinux security policy is enforced.

#???? permissive - SELinux prints warnings instead of enforcing.

#???? disabled - No SELinux policy is loaded.

#SELINUX=enforcing

SELINUX=disabled

# SELINUXTYPE= can take one of three two values:

#???? targeted - Targeted processes are protected,

#???? minimum - Modification of targeted policy. Only selected processes are protected.

#???? mls - Multi Level Security protection.

SELINUXTYPE=targeted

?修改此配置文件后,重启机器会禁用掉SELINUX。

如果要立即禁用SELINUX,执行如下命令即可。

表6-21:禁用SELINUX(root用户)

setenforce 0

69 格式化hdfs

在namenode上执行如下命令,格式化hdfs:

表6-22:格式化hdfs(hadoop用户)

hdfs namenode -format

7 测试

在namenode上执行如下命令启动Hadoop:

表7-1:启动Hadoop(hadoop用户)

start-dfs.sh

start-yarn.sh

访问http://hmaster:50070,测试是否安装成功。hmaster可以更换为实际的namenode的IP地址。

如果在Windows上面访问,可以修改系统hosts文件来实现主机名和IP地址的对应。修改C:\Windows\System32\drivers\etc\hosts文件,在该文件中加入如下内容,保存后,即可在浏览器地址栏输入主机名代替IP地址。

192.168.1.170?? hmaster

192.168.1.171?? hslave1

192.168.1.172?? hslave2

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-09 10:18:18  更:2021-08-09 10:20:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 4:41:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码