搭建Hadoop环境
参考资源:https://www.bilibili.com/video/av35160553/?spm_id_from=trigger_reload
准备实验环境
1、安装Linux
2、安装JDK(详见//www.greatytc.com/p/23ce2f86ebf5)
3、配置主机名、免密码登录(暂时还没整明白,没配置只是搭建的时候需要手动输入密码三次)
一、 Hadoop的目录结构
二、 Hadoop的本地模式
a) 特点:不具备HDFS,只能测试MapReduce程序
b) 安装:修改hadoop-env.sh
i. 修改JAVA_HOME文件目录至如下:
JAVA_HOME=/usr/local/jdk1.8
export JAVA_HOME=${JAVA_HOME}
c) 演示demo:
先转至目录$HADOOP_HOME//share/Hadoop/mapreduce
在命令行输入:
hadoop jar Hadoop-mapreduce-examples-2.4.1.jar
将会打印jar包中所有的例子
现执行其中一个例子:wordcount
1、 先创建输入、输出文件夹
cd ~
mkdir –p /data/input
b) 在input下输入vi data.txt 然后再文档中输入文本用于后面的wordcount
mkdir –p /data/output
2、 转换到share/Hadoop/mapreduce文件下
3、 执行命令:
hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount ~/personal_file/hadoop/data/input/data.txt ~/personal_file/hadoop/data/output/wc
三、 Hadoop的伪分布式
a) 特点:具备Hadoop的所有功能,在单机上模拟一个分布式的环境
i. HDFS:主节点:NameNode,数据节点:DataName
ii. Yarn:容器,运行MapReduce程序
主节点:ResourceManager
从节点:NodeManager
b) 配置步骤
i. hdfs-site.xml文件配置
<!—配置HDFS的冗余度-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!—配置是否检查权限-->
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
ii. core-site.xml文件配置
<!—配置HDFS的NameNode-->
<property>
<name>fs.defaultFS</name>
<value>hdfs:// 10.249.42.174:9000</value>
</property>
注:10.249.42.174为本虚拟机的IP地址,不是本机的IP地址!!!
<!—配置DataNode保存数据的位置-->
<property>
<name>Hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
注:/usr/local/hadoop/tmp必须事先创建好
iii. mapred-site.xml的yarn配置
<!—配置MapReduce的运行框架-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
iv. yarn-site.xml文件配置
<!—配置ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>10.249.42.174</value>
</property>
注:10.249.42.174为本虚拟机的IP地址,不是本机的IP地址!!!
<!—配置NodeManager执行任务的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
配置完毕后,还不能启动,需要先进行格式化
v. 格式化NameNode(是文件系统的管理员,需要先进行格式化才能使用)
如果看到日志:
Storage directory /usr/local/hadoop/tmp/dfs/name has been successfully formatted.
代表格式化成功
vi. 启动hadoop:
start-all.sh
HDFS:存储数据
Yarn:计算
vii. 尝试查看:jps
leslie@ubuntu:/usr/local/hadoop/etc/hadoop$ jps
9072 NodeManager
6277 DataNode
9174 Jps
6070 NameNode
8710 ResourceManager
6505 SecondaryNameNode
viii. 访问
- 命令行
- Java API
- Web console
a) HDFS:http://192.168.88.11:50070
b) YARN:http://192.168.88.11:8088
到此,hadoop的环境就算搭建完毕了,但是执行hadoop/share/hadoop/mapreduce下的hadoop-mapreduce-examples-2.6.5.jar时,还有一个问题,就是输入文件必须是HDFS下的文件,而不可以是虚拟机上的本地文件。详情请参考://www.greatytc.com/p/0cf9e931464a