Hadoop是使用JAVA写的,所以需要先安装JAVA环境。
本次安装的是hadoop-2.7.0,需要JDK 7以上版本。
yum install java-1.7.0-openjdk
yum install java-1.7.0-openjdk-devel
安装后确认
java –version
Hadoop安装
从官网下载Hadoop最新版2.7.0
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.0/hadoop-2.7.0.tar.gz
将hadoop解压到/usr/local/下
cd /usr/local/
tar zxvf /root/hadoop-2.7.0.tar.gz
# vi /etc/profile
export PATH=/usr/local/hadoop-2.7.0/bin:$PATH
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
source /etc/profile
进入Hadoop文件夹下面设置jdk环境变量
cd hadoop-2.7.0/
vi etc/hadoop/hadoop-env.sh
export JAVA_HOME=替换位置
/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
单机测试节点
standalone mode(本地单独模式)
进入Hadoop的安装目录
mkdir input
cp etc/hadoop/*.xml input
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar grep input output 'dfs[a-z.]+'
cat output/*
pseudo-distributed mode(伪分布模式)
这种模式是,1个节点上运行,HDFS daemon的 NameNode 和 DataNode、YARN daemon的 ResourceManger 和 NodeManager,分别启动单独的java进程,这个是不是模式比较适合做个人测试
还是在Hadoop的目录文件夹下执行以下命令
vi etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
vi etc/hadoop/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
格式化文件系统
hdfs namenode -format
启动名称节点和数据节点后台进程
sbin/start-dfs.sh
在localhost启动一个1个NameNode和1个DataNode,在0.0.0.0启动第二个NameNode
用jps命令确认下
访问NameNode的web页面
创建HDFS
hdfs dfs -mkdir /user
hdfs dfs -mkdir /user/test
拷贝input文件到HDFS目录下
hdfs dfs -put etc/hadoop /user/test/input
确认,查看
hadoop fs -ls /user/test/input
执行Hadoop job
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar grep /user/test/input output 'dfs[a-z.]+'
确认执行结果
hdfs dfs -cat output/*
或者从HDFS拷贝到本地查看
bin/hdfs dfs -get output output
cat output/*
停止daemon
sbin/stop-dfs.sh
执行YARN job
修改设定文件
cp etc/hadoop/mapred-site.xml.template etc/hadoop/mapred-site.xml
vi etc/hadoop/mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
vi etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
启动ResourceManger和NodeManager后台进程
sbin/start-yarn.sh
用jps确认
访问ResourceManger的web页面
执行hadoop job
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar grep /user/test/input output 'dfs[a-z.]+'
确认执行结果
hdfs dfs -cat output/*
停止daemon
sbin/stop-yarn.sh
出现警告
java.io.IOException: java.net.ConnectException: Call From test166/10.86.255.166 to 0.0.0.0:10020 failed on connection exception: java.net.ConnectException: Connection refused;
原因是没有启动job history server
启动jobhistory daemon
sbin/mr-jobhistory-daemon.sh start historyserver
jps确认
访问Job History Server的web页面
都搭建完事之后正常使用的命令是
sbin/start-all.sh
sbin/stop-all.sh