数词"/>
hadoop多节点以及mapreduce数词
文章目录
- Single-Node Hadoop
- Configure Hadoop Cluster and Run Mapreduce Job
- Wordcount 小文件
Single-Node Hadoop
- 准备工作
在阿里云服务器上面购买云服务器,购买配置可为2vCPU,2GB内存,40GB的硬盘。 - 修改主机名称以及添加host
1). vim /etc/hosts# append(云服务器的私网地址) master master
2). vim /etc/hostname#modifymaster
3) reboot
- 安装Java和设置ssh
远程连接云服务器,安装Java:
sudo apt-get updatesudo apt install openjdk-8-jdkjava –version
当最后一个命令输入完成以后,能看到版本号就代表安装成功。
4. 创建hadoop的使用用户
sudo addgroup hadoopsudo adduser --ingroup hadoop hduser# 为了方便操作,我们可以把hduser用户赋予sudo用户一样的权限。vim /etc/sudoers/# append the following lines at the filehduser ALL=(ALL:ALL) ALL# 如果需要使用hduser在命令行输入:su hduser
- 设置ssh
1). 安装ssh,其实绝大部分系统都会自带。
2). 添加ssh key
sudo apt-get install openssh-serverssh-keygen -t rsa -f id_rsamkdir ~/sshmv id_rsa* ~/ssh/cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keyschmod 600 ~/.ssh/authorized_keysssh localhost
- 安装hadoop
wget .9.2/hadoop-2.9.2.tar.gztar xvzf hadoop-2.9.2.tar.gzcd hadoop-2.9.2/sudo mkdir -p /usr/local/hadoopsudo mv * /usr/local/hadoopsudo chown -R hduser:hadoop /usr/local/hadoop
- 配置文件(在hduser用户下操作)
1). 系统环境变量vim ~/.bashrc# append the following lines at the file
source ~/.bashrc2) 配置Hadoop的环境vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh# modify JAVA_HOME to beexport JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
3) 配置core-site.xmlvim /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.xmlmkdir -p hadoop_tmp/hdfs/namenodemkdir -p hadoop_tmp/hdfs/datanodevim /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.xmlvim /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.xmlvim /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>
- 初始化namenode并且开启hadoop(在hduser用户下操作)
hdfs namenode -format start-dfs.shstart-yarn.shmr-jobhistory-daemon.sh start historyserver
- 自己电脑查看hadoop相关网页
1). 配置阿里云服务器上的安全组和关闭防火墙
2). 访问网页
Configure Hadoop Cluster and Run Mapreduce Job
- 准备工作
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 - 修改master配置文件
-
core-site.xml不需要改动
-
更新hdfs-site.xml
# modify<property><name>dfs.replication</name><value>3</value></property>
- 更新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>
- 更新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>
- 更新masters
vim masters# addmaster
- 更新slaves
vim slaves# addslave1slave2slave3
- 传送hadoop的配置文件到所有的slave服务器去
在slave1下输入下面指令,slave2和slave3同理:
sudo rsync -avxP /usr/local/hadoop/ hduser@slave1:/usr/local/hadoop/
- 在master节点下输入
sudo rm -rf /usr/local/hadoop_tmp/sudo mkdir -p /usr/local/hadoop_tmp/sudo mkdir -p /usr/local/hadoop_tmp/hdfs/namenodesudo chown hduser:hadoop -R /usr/local/hadoop_tmp/
- 在slave节点下输入
sudo rm -rf /usr/local/hadoop_tmp/hdfs/sudo mkdir -p /usr/local/hadoop_tmp/sudo mkdir -p /usr/local/hadoop_tmp/hdfs/datanodesudo chown hduser:hadoop -R /usr/local/hadoop_tmp/# 注意:每次打算要初始化的时候,请务必先执行4,5操作再初始化。
- 在master节点下输入,同理slave2,slave3
ssh-copy-id -i $HOME/.ssh/id_rsa.pub hduser@slave1
- 初始化并且启动
hdfs namenode -format start-dfs.shstart-yarn.sh
Wordcount 小文件
- 下载数据集
wget '.tar.gz'tar -zxvf Shakespeare.tar.gz
# 注意:如果报错说raw.githubusercontent不能访问,可以在hosts里面添加151.101.76.133 raw.githubusercontent
- 上传数据集
hadoop dfs -copyFromLocal /home/hduser/data /datahadoop dfs -ls /data
- 执行数词操作
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
更多推荐
hadoop多节点以及mapreduce数词
发布评论