Hadoop分布式模式配置

hadoop环境准备:

hadoop下载地址:http://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz

hadoop集群的安装配置大致分为以下六个步骤:

  1. 选定一台机器作为master

  2. 在master节点上创建hadoop用户、安装ssh服务端、配置jdk环境

  3. 在master节点上安装hadoop,完成配置

  4. 在其他Slave节点上创建hadoop用户安装ssh服务端、配置jdk环境

  5. 将master节点上的/usr/local/hadoop目录复制到其他Slave节点上

  6. 在master节点上开启hadoop

2.1创建hadoop用户:

复制代码
sudo useradd -m hadoop -s /bin/bash
#设置密码
sudo passwd hadoop
#增加管理员权限
sudo adduser hadoop sudo

2.2ssh无密码登陆节点

复制代码
cd ~/.ssh
#生成公钥和私钥
ssh-keygen -t rsa
#放到authorized_key中
cat ./id_rsa.pub>>./authorized_keys
#更改本地hosts
vim /etc/hosts
#将公钥传到slavel机器
scp ~/.ssh/id_rsa.pub hadoop@Slavel:/home/hadoop
#将传过来的公钥继续追加写入到authorized_keys
cat ~/id_rsa.pub>>~/.ssh/authorized_keys

2.3配置jdk

复制代码
vim ~/.bashrc
#修改之后保存,刷新
source ~/.bashrc

在末尾添加环境变量

复制代码
export JAVA_HOME=/tools/JDK/jdk1.8.0_371
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

3、配置集群/分布式环境

复制代码
#下载完之后解压hadoop移动到/usr/local目录中
mv ./hadoop /usr/local
#给当前hadoop用户添加一个用户组,以至于有权限访问hadoop文件
chown +R hadoop /usr/local/hadoop

在配置集群需要修改/usr/local/hadoop/etc/hadoop目录下的workers、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml五个文件(这里仅设置正常启动所必需的设置项)

3.1修改workers文件

本机是master,在master中添加一行

复制代码
Slaver

3.2修改core-site.xml文件

复制代码
<configuration>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/usr/local/hadoop/tmp</value>
                <description>Abase for other temporary directories.</description>
        </property>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://Master:9000</value>
        </property>
</configuration>

3.3修改hdfs-site.xml文件

复制代码
<configuration>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>Master:50090</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/usr/local/hadoop/tmp/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/local/hadoop/tmp/dfs/data</value>
        </property>
</configuration>

3.4修改mapred-site.xml文件

复制代码
<configuration>

        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>Master:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.webapp.address</name>
                <value>Master:19888</value>
        </property>
        <property>
                <name>yarn.app.mapreduce.am.env</name>
                <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
        </property>
        <property>
                <name>mapreduce.map.env</name>
                <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
        </property>
        <property>
                <name>mapreduce.reduce.env</name>
                <value>HADOOP_MAPRED_HOME=/usr/local/hadoop</value>
        </property>
</configuration>

3.5修改yarn-site.xml文件

复制代码
<property>
                <name>yarn.resourcemanager.hostname</name>
                <value>Master</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>

将以上文件都修改完之后需要把master节点上的hadoop文件复制到各个节点上去

首先在master上执行如下命令:

复制代码
cd /usr/local
sudo rm -r ./hadoop/tmp ./hadoop/logs/*
tar -zcf ~/hadoop.master.tar.gz ./hadoop
cd ~
scp ./hadoop.master.tar.gz Slavel:/home/hadoop

然后在slavel节点上执行如下命令:

复制代码
sudo rm -r /usr/local/hadoop
sudo tar -zxf ~/hadoop.master.tar.gz -C /usr/local
sudo chown -R hadoop /usr/local/hadoop

slavel执行完成之后回到master上来

第一次启动hadoop集群时,须先在master节点上执行名称节点的格式化

复制代码
hdfs namenode -format

启动hadoop,须在master上进行(这里我配置了hadoop的环境变量的)

复制代码
start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver

hadoop配置环境变量

复制代码
vim ~/.bashrc

export PATH=$PATH:/usr/local/hadoop/sbin:/usr/local/hadoop/bin

jps命令可查看各个节点启动的进程,如正确启动,则在master节点杀死嗯有NameNode、ResourceManager、SecondaryNameNode和JobHistoryServer进程

缺少任意一进程都表示出错

执行分布式实例

复制代码
hdfs dfs -mkdir -p /user/hadoop
#其次在hdfs中创建一个input目录,并把/usr/local/hadoop/etc/hadoop目录中的配置文件作为输入文件复制到input目录中
hdfs dfs -mkdir input
hdfs dfs -put /usr/local/hadoop/etc/hadoop/*.xml input

运行MapReduce作业

复制代码
hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep input output 'dfs[a-z.]+'

查看结果

复制代码
./bin/hdfs dfs -cat output/*

可能遇到的问题:

在master拷贝的hadoop到节点机器上因为hadoop里面配置的jdk的路径是master机器上的,所以要在/usr/local/hadoop/etc/hadoop/hadoop-env.sh

将jdk路径改成自己的

相关推荐
vx_Biye_Design13 分钟前
springboot小区管理系统68491-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·课程设计·express
专业程序开发源22 分钟前
springboot外卖系统94294-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·php·课程设计
计算机毕业编程指导师29 分钟前
【Python毕设选题推荐】基于Spark的宫颈癌变光谱特征数据分析可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·计算机·spark·毕业设计·宫颈癌变
Moshow郑锴2 小时前
sql-pipeline - 基于PostgreSQL的SQL健康检查与发布编排平台
java·sql
Wang's Blog10 小时前
Java 项目实战: 外卖平台优化-Nginx配置文件结构与块层级
java·开发语言·nginx
MicrosoftCloud10 小时前
用户权限 04|/etc/sudoers 安全配置:从最小授权到「别把 ALL 随便给人」
运维·安全·ubuntu·sudo·sudoers
\光辉岁月/11 小时前
5.java-数组
java·开发语言
计算机毕业编程指导师11 小时前
计算机毕设选题推荐:基于Hadoop与Spark的Steam游戏数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·steam游戏
计算机毕业编程指导师11 小时前
【计算机毕设选题推荐】基于Hadoop+Spark的白鹿抖音评论大数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习 深度学习
大数据·hadoop·python·计算机·spark·毕业设计·抖音评论
谢亮_vipxieliang11 小时前
Spring 事务失效的常见场景
java·开发语言·数据库·spring boot