大数据开发之路–1
研究生大部分时间都在搞分布式计算,最近开始准备秋招了,想找一找大数据开发试试水。那就开始从头捋一遍吧,把之前整的hadoop、spark、zookeeper等等全部重新整理一遍,顺便写个博客记录一下。
Hadoop搭建之HDFS
Hadoop之前也搭过,为了系统的回顾一下,决定自己整个小集群,顺便记录一下遇到的问题。因为之前一直用的实验室的几台破机器自己搭的集群,机器在学校的高性能计算中心放着,用着也还算行。但是由于这几天HPC集群更新,连不上了,只能用自己的渣渣PC了。
1.创建虚拟机
在VMware上创建三台虚拟机,过程比较简单,一路默认设置就行。系统版本使用的是Ubuntu 18.04。地址:https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/18.04/ubuntu-18.04.4-live-server-amd64.iso
2.设置免密访问
搭集群第一件事,毋庸置疑,设置免密访问,没什么困难,上过程:
ssh-keygen -t rsa
一路回车到底
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
把authorized_keys分发到其他两台机器上:
scp authorized_keys hadoop2:/root/.ssh
scp authorized_keys hadoop3:/root/.ssh
3.环境配置
- 修改hosts文件
vim /etc/hosts
修改为:
127.0.0.1 localhost
192.168.64.101 hadoop1
192.168.64.102 hadoop2
192.168.64.103 hadoop3
我使用的是静态IP,在18.04中静态IP通过netplan配置,不过要注意宿主机为虚拟机分配的静态地址段,在VMware的虚拟网络编辑器中可以查看。
方法可参考:https://blog.csdn.net/u014454538/article/details/88646689
- JAVA环境安装
在/usr/local目录中
首先创建java目录:
mkdir java
cd java
下载安装包:
wget https://download.oracle.com/otn/java/jdk/8u252-b09/3d5a2bb8f8d4428bbe94aed7ec7ae784/jdk-8u252-linux-x64.tar.gz?AuthParam=1587838352_cd97314f0c35696f843f5cbc2db4c775
tar -xvzf jdk-8u252-linux-x64.tar.gz
配置环境变量:
vim ~/.bashrc
export JAVA_HOME=/usr/local/java/jdk8u252-b09
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
更新环境变量:
source ~/.bashrc
测试是否成功:
java -version
出现以下即成功
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
将java安装包发送到hadoop2、hadoop3:
scp -r /usr/local/java hadoop2:/usr/local/
scp ~/.bashrc hadoop2:/root/
3.Hadoop安装
在/usr/local目录中
下载安装包:
wget https://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz
解压缩:
tar -xvzf hadoop-2.9.2.tar.gz
改名:
mv hadoop-2.9.2 hadoop
环境变量配置:
vim ~/.bashrc
配置如下:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
测试是否安装成功:
hadoop version
出现以下即成功:
Hadoop 2.9.2
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 826afbeae31ca687bc2f8471dc841b66ed2c6704
4.Hadoop配置
在hadoop安装目录下:
cd etc/hadoop
首先在启动文件hadoop-env.sh中设置一下java路径 :
vim hadoop-env.sh
export JAVA_HOME=/usr/local/java/jdk8u252-b09
然后配置slaves:
vim slaves
添加两个从节点作为datanode:
hadoop2
hadoop3
然后修改core-site.xml:
vim 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://hadoop1:9000</value>
</property>
</configuration>
接着修改hdfs-site.xml:
<configuration>
<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>
需要在hadoop目录下创建/tmp文件夹
此时HDFS的配置已基本完成,执行namenode 格式化:
hdfs namenode -format
启动start-dfs.sh测试是否成功:
start-dfs.sh
用jps命令查看:
可以看到Namenode 已经启动成功
将配置好的hadoop安装包发送至hadoop2、hadoop3:
scp -r /usr/local/hadoop/ hadoop2:/usr/local/
scp -r /usr/local/hadoop/ hadoop3:/usr/local/
再次启动start-dfs.sh:
在浏览器中查看HDFS信息:hadoop1:50070
至此,Hadoop HDFS已配置成功!