Ansible 部署 Hadoop Cluster

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ansible 部署 Hadoop Cluster相关的知识,希望对你有一定的参考价值。

参考技术A

/etc/ansible/hosts 文件如下:

将hosts文件下发到各服务器

将配置文件分发到各节点的 /etc/profile.d/ 目录下。
java.sh

hadoop.sh

hdfs.sh

分发

用ansible 创建 组、用户

NameNode

or

DataNode

or

配置文件 见 附件1

在active namenode上,以 hdfs 执行

在5台salve上,以 hdfs 执行

如果不提前创建/tmp目录,并配置权限,后面其他组件的运行会有问题。以 hdfs 执行:

给MapRed创建的staging directory。以 hdfs 执行:

在YARN上,以 yarn 执行

在5台salve上,以 hdfs 执行

在启动hdfs集群后启动

配置文件目录 /root/hadoop/conf

chrony.conf

core-site.xml

core-site-mapred.xml

core-site-oozie.xml

hdfs-site-master.xml

hdfs-site-slave.xml

yarn-site.xml

mapred-site.xml

hadoop-env.sh
yarn-env.sh
mapred-env.sh
添加如下:

在namenode节点上

在yarn resourcemanager节点上

Hadoop Single Node Cluster——Hadoop单节点集群的安装

Hadoop Single Node Cluster只以一台机器来建立Hadoop环境,仍然可以使用Hadoop命令,只是无法发挥使用多台机器的威力。

安装JDK

因为Hadoop是以Java开发的,所以必须先安装Java环境。本文是以Ubuntu系统为例

安装前查看java版本

在命令终端输入  java -version 查看

安装成功 返回的是 java 版本,未安装会提示包含在下列软件包中,执行下列命令安装

sudo apt-get update 

sudo apt-get install default-jdk

安装完成后,再次查看java版本

查看Java安装位置

执行 update-alternatives --display java ,系统会响应安装的路径。

设置SSH无密码登陆

Hadoop 是由很多台服务器所组成的。当我们启动Hadoop系统时,NameNode必须与DataNode连接,并管理这些节点(DataNode)。此时系统会要求用户输入密码。为了让系统顺利运行而不需手动输入密码,就需要SSH设置成无密码登录,设置为SSH Key(密钥)来进行身份验证。

安装SSH

sudo apt-get install ssh

sudo apt-get install rsync

产生SSH Key(密钥)进行后续身份验证

ssh-keygen -t dsa -P ‘ ‘ -f  ~/.ssh/id_dsa

SSH Key(密钥)会产生在用户的根目录下,可用如下命令查看

ll ~/.ssh

将产生的Key放置到许可证文件中

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

下载安装Hadoop

到Hadoop官网下载Hadoop版本,并安装到Ubuntu中

浏览器输入   https://archive.apache.org/dist/hadoop/common/  选择Hadoop版本。

使用 wget 命令下载到本地

使用 sudo tar -zxvf Hadoop~~~  解压

将 Hadoop 移动到 /usr/local

sudo mv hadoop~~~ /usr/local/hadoop

设置Hadoop环境变量

编辑 ~/.bashrc

sudo gedit ~/.bashrc  打开,在文章末尾加入

设置JDK安装路径

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

设置HADOOP_HOME为Hadoop的安装路径

export HADOOP_HOME=/usr/local/hadoop

设置PATH

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

设置HADOOP其他环境变量

export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME

链接库的相关设置

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native:$JAVA_LIBRARY_PATH

 让 ~/.bashrc设置生效

source ~/.bashrc

修改Hadoop配置设置文件

设置hadoop-env.sh配置文件

sudo gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh

修改 JAVA_HOME 设置,修改为: export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

设置 core-site.xml

sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml

设置HDFS的默认名称

<configuration>
<property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:9000</value>
</property>
</configuration>

设置yarn-site.xml

yarn-site.xml文件中含有MapReduce2(YARN)相关的配置设置

sudo gedit /usr/local/hadoop/etc/hadoop/yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
<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>
</configuration>

设置mapred-site.xml

mapred-site.xml用于设置监控Map与Reduce程序的JobTracker任务分配情况以及TaskTracker任务运行情况。

sudo gedit /usr/local/hadoop/etc/hadoop/mapred-site.xml

<configuration>
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
</configuration>

设置 hdfs-site.xml

hdfs-site.xml 用于设置HDFS分布式文件系统

sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml

<configuration>

设置 blocks 副本备份数量
<property>
    <name>dfs.replication</name>
    <value>3</value>
</property>

设置NameNode数据存储目录
<property>
    <name>dfs.namenode.name.dir</name>
    <value> file:/usr/local/hadoop/hadoop_data/hdfs/namenode</value>
</property>

设置DataNode数据存储
<property>
    <name>dfs.datanode.data.dir</name>
    <value> file:/usr/local/hadoop/hadoop_data/hdfs/datanode</value>
</property>
</configuration>

创建并格式化 HDFS 目录

创建 NameNode 数据存储目录

sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/namenode

创建 DataNode 数据存储目录

sudo mkdir -p /usr/local/hadoop/hadoop_data/hdfs/datanode

将 Hadoop 目录的所有者更改为 hduser

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

格式化 namenode

hadoop namenode -format

这个操作会删除所有的数据。

启动Hadoop

start-all.sh









































以上是关于Ansible 部署 Hadoop Cluster的主要内容,如果未能解决你的问题,请参考以下文章

cluster management(hadoop)

hadoop

Hadoop记录-Apache hadoop+spark集群部署

Ansible-playbook 同一组相同主机

Hadoop: Hadoop Cluster配置文件

基于Docker搭建大数据集群Mlsql部署