Hadoop3.1.1+Ubuntu18.04虚拟机三种部署方式
一.安装虚拟机:在3台电脑中或者3个虚拟机中安装Ubuntu系统,并测试三台电脑能互相ping通二.安装Java:1. 在3台Ubuntu电脑中安装Oracle Java 8(由于Hadoop对高版本jdk支持不好,所以若jdk版本大于8,卸载后重新安装。卸载 指令:移除所有 Java相关包 (Sun, Oracle, OpenJDK, IcedTea plugins, GI...
一.安装虚拟机:
- 在3台电脑中或者3个虚拟机中安装Ubuntu系统,并测试三台电脑能互相ping通
二.安装Java:
1. 在3台Ubuntu电脑中安装Oracle Java 8
(由于Hadoop对高版本jdk支持不好,所以若jdk版本大于8,卸载后重新安装。卸载 指令:
移除所有 Java相关包 (Sun, Oracle, OpenJDK, IcedTea plugins, GIJ):
sudo apt-get update
sudo apt-cache search java | awk '{print($1)}' | grep -E -e '^(ia32-)?(sun|oracle)-java' -e '^openjdk-' -e '^icedtea' -e '^(default|gcj)-j(re|dk)' -e '^gcj-(.*)-j(re|dk)' -e 'java-common' | xargs sudo apt-get -y remove
sudo apt -y autoremove
清除配置信息: dpkg -l | grep ^rc | awk '{print($2)}' | xargs sudo apt-get -y purge
清除java配置及缓存: bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf
手动清除JVMs: rm -rf /usr/lib/jvm/*)
安装jdk8:
官网下载:
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
解压:
sudo mkdir /usr/lib/jdk8
sudo tar zxvf jdk-8u191-linux-x64.tar.gz -C /usr/lib/jdk8
cd /usr/lib/jdk8
sudo gedit ~/.bashrc
在文件内添加:
export JAVA_HOME=/usr/lib/jdk8/jdk1.8.0_191
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
重新启动脚本:
source ~/.bashrc
安装完成后可以查看java版本
三.安装SSH服务以及配置免密登陆:
1. hadoop需要使用SSH的方式登陆,linux下需要安装SSH。客户端已经安装好了,只需要安装服务端就可以了:
sudo apt install openssh-server
测试登陆本机 ssh localhost 输入yes就应该可以登录了。
2. 配置成免密码登陆的方式
(三台电脑)ssh-keygen -t rsa (一直Enter直到生成完成)
(Master)cd ~/.ssh
cat id_rsa.pub >> authorized_keys
scp authorized_keys gary@slave1:~/.ssh
scp authorized_keys gary@slave2:~/.ssh
此时Master主机输入ssh <hostname>可以无密码登陆
四.安装Hadoop:
1. 从官网下载Hadoop 3,并复制进每台机器中,官网下载地址:
https://hadoop.apache.org/releases.html
解压至当前目录即可,解压后赋予权限:
sudo chown -R gary ./hadoop-3.1.1
将hadoop添加进系统变量中:sudo gedit ~/.bashrc
export HADOOP_HOME=~/Code/hadoop-3.1.1
export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使系统变量生效:
source ~/.bashrc
此时在终端中输入hadoop version可以看到hadoop的版本即为配置成功:
然后进入hadoop-3.1.1目录
单点模式测试:
准备输入文件: mkdir input
cp etc/hadoop/*.xml input
使用hadoop自带程序进行测试:
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.1.jar wordcount input output
运行结束后查看运行结果:
cat output/*
伪分布式测试:
编辑以下文件:
文件在Hadoop文件夹“etc/hadoop/”目录下
core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
hadoop-env.sh (设置java的路径)
找到JAVA_HOME行,设置为自己的java环境变量
运行与测试:
依次输入如下命令:
bin/hdfs namenode -format
sbin/start-dfs.sh
bin/hdfs dfs -mkdir /user
bin/hdfs dfs -mkdir input
bin/hdfs dfs -put etc/hadoop/*.xml input //将要处理的数据输入
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.0.jar grep input output 'dfs[a-z.]+'
bin/hdfs dfs -get output output//将输出提取到本地的output文件夹内
cat output/*
bin/hdfs dfs -cat output/*
sbin/stop-dfs.sh //结束
启动成功后 http:// localhost:8088/为hadoop web页面
http:// localhost:9870/为HDFS页面
完全分布式测试:
- 修改各个主机的host文件(sudo gedit /etc/hosts):
sudo gedit /etc/hosts
- 修改core-site.xml文件
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
- 修改配置文件 hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
- 修改mapred-site.xml文件
<property>
<name>mapreduce.job.tracker</name>
<value>master:5431</value>
</property>
<property>
<name>mapred.framework.name</name>
<value>yarn</value>
</property>
- 修改yarn-site.xml文件
<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>
- 修改workers文件
master
slaver1
slaver2
- 将主机已配置好的hadoop文件拷贝至另外两台主机:
scp -r hadoop-3.1.1 gary@slaver1:/home/gary/Code
scp -r hadoop-3.1.1 gary@slaver2:/home/gary/Code
- 停止服务,并格式化namenode:
hdfs namenode -format
PS:若需要停止服务,则:
若需要重启服务,则:
- cd sbin
- ./stop-all.sh
- 删除/tmp/hadoop*文件夹
- hdfs namenode -format
- ./start-all.sh
- 启动服务:
start-dfs.sh
start-yarn.sh
- 在master节点运行jps可看到如下结果:
在slaver节点运行jps可看到如下结果:
- 在master节点运行hdfs dfsadmin -report可看到如下结果:
- 可在浏览器中输入https://master:8088/cluster查看到3台主机的状态:
- 运行wordcount测试程序:
hdfs dfs -mkdir -p input
hdfs dfs -put -p etc/hadoop/*.xml input
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.1.jar wordcount input output
hdfs dfs -cat output/*
运行结束后即可看到运行结果:
更多推荐
所有评论(0)