Hadoop3.2.0详细安装步骤
一、环境准备
①准备三台虚拟机,查看ip
②先修改主机名(每个节点统一命名规范)
修改/etc/hosts文件:(如下)
172.18.96.1 master
172.18.96.2 slave1
172.18.96.3 slave3
二、永久关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
三、配置ssh免密登录
三台机器都运行:
ssh-****** -t rsa #一路回车即可
cd 到 /root/.ssh目录下:
创建文件:
touch authorized_keys #生成公钥
将三台机器下的/root/.ssh/id_rsa.pub文件中的内容拷贝到人认证文件authorized_keys中,然后依次分发给两外两台机器。
四、配置jdk1.8
将jdk解压到自定义目录
vim /etc/profile #添加如下信息
export JAVA_HOME=jdk安装目录
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:JAVA_HOME/bin
再保存执行
source /etc/profile
验证
java -version
五、Hadoop环境配置
解压并移动到自定义位置
vim /etc/profile
export HADOOP_HOME=Hadoop的安装目录
export PATH=HADOOP_HOME/bin
export PATH=HADOOP_HOME/sbin
更新资源使生效
source /etc/profile
首先在hadoop-env.sh文件中指定JDK的路径
export JAVA_HOME=jdk安装目录
配置core-site.xml
添加内容如下:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
配置hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.http-address</name>
<value>master:50070</value>
</property>
<property><!--namenode持久存储名字空间及事务日志的本地文件系统路径-->
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/dfs/name</value>
</property>
<property><!--DataNode存放块数据的本地文件系统路径-->
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/dfs/data</value>
</property>
<property><!--数据需要备份的数量,不能大于集群的机器数量,默认为3-->
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
配置yarn-site.xml
<configuration>
<property><!--NodeManager上运行的附属服务,用于运行mapreduce-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
配置mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改workers文件,删除localhost,并换成
slave1
slave2
修改以下四个文件
$ vim sbin/start-dfs.sh
$ vim sbin/stop-dfs.sh
两处增加以下内容
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
处理2
$ vim sbin/start-yarn.sh
$ vim sbin/stop-yarn.sh
两处增加以下内容
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
将hadoop分发给另外两个结点:
Hadoop安装完成,格式化Namenode
Hadoop namenode -format
启动Hadoop
./start-all.sh
运行hadoop例程中自带的wordcount程序:
1.先在hdfs上创建文件夹:
hadoop fs -mkdir -p /data/input
2.在本地创建一个my_wordcount.txt
touch my_wordcount.txt
3.编辑my_wordcount.txt文件,输入一些字符
nano my_wordcount.txt
比如:
hello world
hello hadoop
hello I will eat lunch
4.把本地的my_wordcount.txt文件上传到云端,由主机进行文件的分布式存储。
hadoop fs -put my_wordcount.txt /data/input
5.查看云端的/data/input文件夹下面是否有该文件
hadoop fs -ls /data/input
6.运行share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar这个java程序,调用wordcount方法。
在hadoop_home的目录下执命令:
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /data/input/ /data/out/my_wordcount
7.查看云端的/data/output/my_wordcount/part-r-00000文件。
hadoop fs -cat /data/out/my_wordcount/part-r-00000
注意:在运行Java程序时,会遇到加载不到类的错误:
解决方法:
在命令行执行hadoop classpath命令,将执行后的内容复制到yarn-site.xml中,如下所示:
将yarn-site.xml在分发给两外两台机器。
先将进程停止:stop-all.sh
在重新开启进程:start-all.sh
在重新执行java程序,就好了。
上一篇: Hadoop大数据简介