本文所使用的Linux发行版本为:CentOS Linux release 7.4.1708 (Core)
hadoop单机版安装
准备工作
创建用户
useradd -m hadoop
passwd hadoop
下载安装包
1.jdk
到官方下载页面http://www.oracle.com/technetwork/java/javase/downloads/index.html,下载jdk,我下载的版本为jdk-8u151-linux-x64.tar.gz。
2.hadoop安装包
到hadoop官网下载hadoop的二进制包,我使用的版本为:hadoop-2.7.5.tar.gz。
将jdk和hadoop的包上传到linux上,路径为:/home/hadoop。
hadoop安装及配置
安装
以hadoop用户登录,分别解压jdk和hadoop的包。
tar -zxvf jdk-8u151-linux-x64.tar.gz
tar -zxvf hadoop-2.7.5.tar.gz
重命名hadoop的目录
mv hadoop-2.7.5/ hadoop/
hadoop运行环境配置
进入到hadoop的目录/home/hadoop/hadoop
vi etc/hadoop/hadoop-env.sh
设置jdk的路径
# The java implementation to use.
export JAVA_HOME=/home/hadoop/jdk1.8.0_151
使用hadoop进行单词统计
创建输入文件目录及测试文件
mkdir input4test
vi input4test/1.txt
hadoop is an open-source software
vi input4test/2.txt
I want to learn hadoop
执行单词统计操作
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount ./input4test ./output4test
查看统计结果
cat output4test/part-r-00000
I 1
an 1
hadoop 2
is 1
learn 1
open-source 1
software 1
to 1
want 1
hdfs相关配置及操作
配置hdfs
进入到hadoop的目录/home/hadoop/hadoop
修改配置文件etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
修改配置文件etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
设置免密码登录
$ ssh-keygen -t rsa -P ‘‘ -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
hdfs格式化及启动
hdfs格式化
bin/hdfs namenode -format
hdfs启动
sbin/start-dfs.sh
查看hdfs状态
在浏览器中输入http://IP:50070,可以查看hdfs的状态。如果50070端口没有打开,输入下面命令打开50070端口。iptables -I INPUT -p tcp --dport 50070 -j ACCEPT
hdfs基本操作
查看文件和文件夹
bin/hadoop dfs -ls -R /
该命令表示以递归方式查看根目录下的所有文件和文件夹。
创建目录
bin/hadoop dfs -mkdir /input
该命令表示在根目录下创建input目录。
上传文件到hdfs
bin/hadoop hdfs -put input4test/1.txt /input/
bin/hadoop hdfs -put input4test/2.txt /input/
该命令表示将本地input4test/1.txt和2.txt文件上传到hdfs中的/input目录下。
查看文件内容
bin/hadoop dfs -cat /input/1.txt
通过YARN调度
配置YARN
修改配置文件etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改配置文件etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
</configuration>
启动YARN
sbin/start-yarn.sh
查看YARN状态
在浏览器中输入http://IP:8088,可以查看YARN的状态。如果8088端口没有打开,输入下面命令打开8088端口。
iptables -I INPUT -p tcp --dport 8088 -j ACCEPT
再次执行单词统计操作
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /input /output
本次执行的输入和输出目录,都是hdfs的目录。
查看统计结果
bin/hadoop dfs -cat /output/part-r-00000
和之前的结果一样。
I 1
an 1
hadoop 2
is 1
learn 1
open-source 1
software 1
to 1
want 1