一、系统安装
这里就不详细讲了,之前的《Linux:虚拟机安装Linux、Hadoop的相关操作》已经详细讲过了,这里有2点需要注意一下:
1、系统安装用Min最小化即可,相信我,你根本用不着GUI;
2、网络如果用主机模式我碰到很多Bug,所以干脆用了nat模式,啥问题都没了。
二、Java、Hadoop安装和配置
1、查看ip地址
ifconfig
获得我的虚机Ip地址是:192.168.253.132
2021年10月16日更新:我在云主机上又做了一遍,ifconfig只能显示内网ip,无法显示弹性ip,我尝试用弹性ip来代替操作后续步骤,但是namenode一直起不来,后面改回内网ip才正常。
2、登录xftp和Xshell 7
并上传jdk和hadoop的jar包
3、关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
4、修改主机名
vi /etc/hosts
在配置里加入192.168.253.132 bigdata222
5、免密码登录
ssh-keygen -t rsa
一路回车即可(大概4下)
ssh-copy-id -i .ssh/id_rsa.pub root@bigdata222
输入yes和密码
6、在root下新建training目录
mkdir ~/training/
7、安装jdk和hadoop
tar -zxvf jdk-8u181-linux-x64.tar.gz -C ~/training/
tar -zxvf hadoop-3.1.2.tar.gz -C ~/training/
8、修改配置文件bash_profile
vi ~/.bash_profile
修改内容如下:
JAVA_HOME=/root/training/jdk1.8.0_181
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
HADOOP_HOME=/root/training/hadoop-3.1.2
export HADOOP_HOME
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH
9、生效bash_profile
source ~/.bash_profile
10、修改hadoop-env.sh
vi ~/training/hadoop-3.1.2/etc/hadoop/hadoop-env.sh
在随便一行加入下面语句:
export JAVA_HOME=/root/training/jdk1.8.0_181
11、加入环境变量
export HDFS_DATANODE_USER=root
export HDFS_DATANODE_SECURE_USER=root
export HDFS_NAMENODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
12、修改hdf-site.xml配置文件
vi ~/training/hadoop-3.1.2/etc/hadoop/hdfs-site.xml
在…中加入以下内容(下同):
<!--数据块的冗余度-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--禁用了HDFS的权限功能-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
13、修改core-site.xml配置文件
vi ~/training/hadoop-3.1.2/etc/hadoop/core-site.xml
加入以下内容(注: bigdata222需根据个人情况修改):
<!--NameNode的地址-->
<!--9000是RPC的端口-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://bigdata222:9000</value>
</property>
<!--HDFS对应的操作系统路径-->
<!--默认值是Linux的tmp目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/root/training/hadoop-3.1.2/tmp</value>
</property>
14、修改mapred-site.xml配置文件
vi ~/training/hadoop-3.1.2/etc/hadoop/mapred-site.xml
加入以下内容:
<!--MR运行框架-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
15、修改yarn-site.xml配置文件
vi ~/training/hadoop-3.1.2/etc/hadoop/yarn-site.xml
加入以下内容(注: bigdata222需根据个人情况修改):
<!--配置ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>bigdata222</value>
</property>
<!--配置shuffle洗牌-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
16、格式化NameNode(HDFS)
hdfs namenode -format
17、启动
start-all.sh
三、验证
1、新建一个文件,随便输几句话(如i love shanghai)
vi data.txt
2、在hdfs里新建一个文件夹input
hdfs dfs -mkdir /input
3、上传data.txt到input中
hdfs dfs -put ~/data.txt /input
4、切换到mapreduce下
cd /root/training/hadoop-3.1.2/share/hadoop/mapreduce/
5、使用hadoop下的wordcount程序对 data.txt进行处理
hadoop jar hadoop-mapreduce-examples-3.1.2.jar wordcount /input/data.txt /output/day0819/wc
6、在hdfs里查看到wc下的文件
hdfs dfs -ls /output/day0819/wc
7、查看wc下part-r-00000的处理结果
hdfs dfs -cat /output/day0819/wc/part-r-00000
8、查看几个端口是否已开
1)、HDFS WebConsole:端口9870
192.168.253.132:9870
2)、Yarn WebConsole:端口8088
192.168.253.132:8088