hadoop多节点以及mapreduce数词

Single-Node Hadoop

  1. 准备工作
    在阿里云服务器上面购买云服务器,购买配置可为2vCPU,2GB内存,40GB的硬盘。
  2. 修改主机名称以及添加host
1). vim /etc/hosts
	# append
	(云服务器的私网地址) master master
2). vim /etc/hostname
	#modify
	master
3)	reboot
  1. 安装Java和设置ssh
    远程连接云服务器,安装Java:
	sudo apt-get update
	sudo apt install openjdk-8-jdk
	java –version

当最后一个命令输入完成以后,能看到版本号就代表安装成功。
4. 创建hadoop的使用用户

	sudo addgroup hadoop
	sudo adduser --ingroup hadoop hduser
	# 为了方便操作,我们可以把hduser用户赋予sudo用户一样的权限。
	vim /etc/sudoers/
	# append the following lines at the file
	hduser ALL=(ALL:ALL) ALL
	# 如果需要使用hduser在命令行输入:
	su hduser
  1. 设置ssh
    1). 安装ssh,其实绝大部分系统都会自带。
    2). 添加ssh key
	sudo apt-get install openssh-server
	ssh-keygen -t rsa -f id_rsa
	mkdir ~/ssh
	mv id_rsa* ~/ssh/
	cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
	chmod 600 ~/.ssh/authorized_keys
	ssh localhost

在这里插入图片描述

  1. 安装hadoop
	wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz
	tar xvzf hadoop-2.9.2.tar.gz
	cd hadoop-2.9.2/
	sudo mkdir -p /usr/local/hadoop
	sudo mv * /usr/local/hadoop
	sudo chown -R hduser:hadoop /usr/local/hadoop
  1. 配置文件(在hduser用户下操作)
1).	系统环境变量
	vim ~/.bashrc
	# append the following lines at the file

在这里插入图片描述

	source ~/.bashrc
	
2)	配置Hadoop的环境
	vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
	# modify JAVA_HOME to be
	export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
3)	配置core-site.xml
	vim /usr/local/hadoop/etc/hadoop/core-site.xml
	#Add those lines in the configuration section
	<property>
	  <name>fs.default.name</name>
	  <value>hdfs://master:54310</value>
	</property>
# 注意:如果先前在hosts文件里面没有更改或者改错,之后的访问都有会出现错误!
4)	配置hdfs-site.xml
	mkdir -p hadoop_tmp/hdfs/namenode
	mkdir -p hadoop_tmp/hdfs/datanode
	vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
	#Add those lines in the configuration section
	<property>
		<name>dfs.replication</name>
		<value>1</value>
	</property>
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>file:/home/hduser/hadoop_tmp/hdfs/namenode</value>
	</property>
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>file:/home/hduser/hadoop_tmp/hdfs/datanode</value>
	</property>
# 注意:hadoop_tmp文件就是结点文件,之后如果有namenode ID和datanode ID不同的报错,可以删了hadoop_tmp重新创建,再进行初始化!
5)	配置yarn-site.xml
	vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
	#Add those lines in the configuration section
	<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>
6)	配置mapred-site.xml
	vim /usr/local/hadoop/etc/hadoop/mapred-site.xml
	#Add those lines in the configuration section
	<property>
		<name>mapreduce.framework.name</name>
	   	<value>yarn</value>
	</property>
  1. 初始化namenode并且开启hadoop(在hduser用户下操作)
	hdfs namenode -format 
	start-dfs.sh
	start-yarn.sh
	mr-jobhistory-daemon.sh start historyserver

在这里插入图片描述
在这里插入图片描述

  1. 自己电脑查看hadoop相关网页
    1). 配置阿里云服务器上的安全组和关闭防火墙
    在这里插入图片描述
    在这里插入图片描述
    2). 访问网页
    在这里插入图片描述

Configure Hadoop Cluster and Run Mapreduce Job

  1. 准备工作
    1). 在阿里云上面购买三个云服务器,配置和单结点的相同
    2). 单结点用到的机器是集群的主节点master,后面的购买的三个服务器分别是从结点slave1、slave2和slave3。
    3). 修改这三个从结点的homename。
    4). 修改主从结点的hosts,让每个hosts文件都包含集群里面所有结点的私网。(不同结点的私网不同,去云服务器的实例里面查看)。
    5). 安装rsync,这个可以用来传配置文件sudo apt-get install rsync
    6). 为了让上述配置生效,重启reboot
    7). 与主节点一样给每个从节点按装java,ssh,hadoop和创建hduser
  2. 修改master配置文件
  1. core-site.xml不需要改动

  2. 更新hdfs-site.xml

	# modify
	<property>
	  <name>dfs.replication</name>
	  <value>3</value>
	</property>
  1. 更新yarn-site.xml
	# append
	<property>
		<name>yarn.resourcemanager.resource-tracker.address</name>
		<value>master:8025</value>
	</property>
	<property>
		<name>yarn.resourcemanager.scheduler.address</name>
		<value>master:8035</value>
	</property>
	<property>
		<name>yarn.resourcemanager.address</name>
		<value>master:8050</value>
	</property>
  1. 更新mapred-site.xml
	# append
	<property>
		<name>mapreduce.job.tracker</name>
		<value>master:5431</value>
	</property>
	<property>
		<name>mapred.framework.name</name>
		<value>yarn</value>
	</property>
  1. 更新masters
	vim masters
	# add
	master
  1. 更新slaves
	vim slaves
	# add
	slave1
	slave2
	slave3
  1. 传送hadoop的配置文件到所有的slave服务器去
    在slave1下输入下面指令,slave2和slave3同理:
	sudo rsync -avxP /usr/local/hadoop/ hduser@slave1:/usr/local/hadoop/
  1. 在master节点下输入
	sudo rm -rf /usr/local/hadoop_tmp/
	sudo mkdir -p /usr/local/hadoop_tmp/
	sudo mkdir -p /usr/local/hadoop_tmp/hdfs/namenode
	sudo chown hduser:hadoop -R /usr/local/hadoop_tmp/
  1. 在slave节点下输入
	sudo rm -rf /usr/local/hadoop_tmp/hdfs/
	sudo mkdir -p /usr/local/hadoop_tmp/
	sudo mkdir -p /usr/local/hadoop_tmp/hdfs/datanode
	sudo chown hduser:hadoop -R /usr/local/hadoop_tmp/
	# 注意:每次打算要初始化的时候,请务必先执行4,5操作再初始化。
  1. 在master节点下输入,同理slave2,slave3
	ssh-copy-id -i $HOME/.ssh/id_rsa.pub hduser@slave1
  1. 初始化并且启动
	hdfs namenode -format 
	start-dfs.sh
	start-yarn.sh

在这里插入图片描述
在这里插入图片描述

Wordcount 小文件

  1. 下载数据集
	wget 'https://github.com/hupili/agile-ir/raw/master/data/Shakespeare.tar.gz'
	tar -zxvf Shakespeare.tar.gz
# 注意:如果报错说raw.githubusercontent.com不能访问,可以在hosts里面添加151.101.76.133  raw.githubusercontent.com
  1. 上传数据集
	hadoop dfs -copyFromLocal /home/hduser/data /data
	hadoop dfs -ls /data
  1. 执行数词操作
	cp /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar ./
	hadoop jar hadoop-mapreduce-examples-2.9.2.jar wordcount /data /result

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值