下面是VMware + Ubuntu18.04 搭建Hadoop集群环境的图文教程。
准备工作
- 下载安装VMware Workstation Pro 15或更高版本。
- 下载并安装Ubuntu18.04 LTS系统镜像。
- 配置VMware虚拟网络环境,建议采用NAT模式和子网IP。
- 下载Hadoop 2.9.2安装包。
在VMware上配置Ubuntu系统
- 创建Ubuntu虚拟机,建议配置内存8GB以上,CPU核心数4以上。
- 启动Ubuntu虚拟机,进行系统安装,支持网络连接等配置。
- 配置Java开发环境,建议采用Oracle Java8或11版本。
sudo add-apt-repository ppa:webupd8team/java
sudo apt update
sudo apt install oracle-java8-installer
sudo apt install oracle-java8-set-default
- 安装openssh-server,建议配置无密码登录。
sudo apt install openssh-server
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- 配置hosts文件,将各个节点的IP地址和域名进行映射。
sudo vim /etc/hosts
192.168.0.101 hadoop-101
192.168.0.102 hadoop-102
192.168.0.103 hadoop-103
配置Hadoop集群环境
- 将Hadoop 2.9.2安装包解压到/usr/local/hadoop目录下。
sudo tar zxvf hadoop-2.9.2.tar.gz -C /usr/local
sudo mv /usr/local/hadoop-2.9.2 /usr/local/hadoop
- 编辑文件/etc/profile,添加Hadoop环境变量。
sudo vim /etc/profile
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 配置Hadoop的环境变量。
sudo vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
- 配置Hadoop的核心配置文件等。
sudo vim /usr/local/hadoop/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop-101:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
</configuration>
sudo vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/tmp/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/tmp/hdfs/datanode</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop-101:9001</value>
</property>
</configuration>
sudo vim /usr/local/hadoop/etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobtracker.address</name>
<value>hadoop-101:54311</value>
</property>
<property>
<name>mapreduce.jobtracker.http.address</name>
<value>hadoop-101:50030</value>
</property>
<property>
<name>yarn.app.mapreduce.am.resource.mb</name>
<value>512</value>
</property>
</configuration>
sudo vim /usr/local/hadoop/etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop-101</value>
</property>
<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>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/usr/local/hadoop/yarn/local</value>
</property>
<property>
<name>yarn.nodemanager.log-dirs</name>
<value>/usr/local/hadoop/yarn/logs</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>512</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>4096</value>
</property>
</configuration>
- 格式化HDFS文件系统。
sudo /usr/local/hadoop/bin/hadoop namenode -format
启动Hadoop集群服务
- 启动HDFS服务。
sudo /usr/local/hadoop/sbin/start-dfs.sh
- 查看HDFS服务状态,确认服务已经启动。
sudo /usr/local/hadoop/sbin/hadoop-daemon.sh start namenode
sudo /usr/local/hadoop/sbin/hadoop-daemon.sh start datanode
sudo jps
- 启动YARN服务。
sudo /usr/local/hadoop/sbin/start-yarn.sh
- 查看YARN服务状态,确认服务已经启动。
sudo /usr/local/hadoop/sbin/yarn-daemon.sh start resourcemanager
sudo /usr/local/hadoop/sbin/yarn-daemon.sh start nodemanager
sudo jps
示例说明
- 在Hadoop集群中上传并运行MapReduce程序。
sudo /usr/local/hadoop/bin/hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar pi 16 10000
- 在Hadoop集群中上传并运行Hive SQL查询。
sudo /usr/local/hadoop/bin/hdfs dfs -mkdir /data
sudo /usr/local/hadoop/bin/hdfs dfs -put /usr/local/hadoop/etc/hadoop/*.xml /data/
sudo /usr/local/hadoop/bin/hive
hive> CREATE TABLE pokes (foo INT, bar STRING);
hive> LOAD DATA INPATH '/data/*.xml' INTO TABLE pokes;
hive> SELECT * FROM pokes;
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:VMware + Ubuntu18.04 搭建Hadoop集群环境的图文教程 - Python技术站