文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
3.2 Hadoop 单机模式安装 step 1~7
说明:安装版本为 Hadoop-2.7.3,配置文件(cong->etc) 和启动脚本(bin->sbin) 目录路径与之前配置有差异。
参考: http://Hadoop.apache.org/docs/r2.7.3
3.2.1 安装前准备 step 1~3
# step 1.增加用户组、用户,添加用户权限
$ sudo group add Hadoop
$ sudo adduser -ingroup Hadoop Hadoop
$ sudo gedit /etc/sudoers sudo gedit /etc/sudoers
# step 2.免密码 SSH 设置访问
$ ssh localhost
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
# step 3.安装基础软件 java,同步工具 ssh/rsync
$ sudo apt-get install openssh-server ssh rsync
$ sudo apt-get install openjdk-7-jdk
step 4.下载 Hadoop 系列软件,并安装(详见下节)
# apt-get 安装:spark zookeeper
$ sudo apt-get install spark zookeeper
3.2.2 安装 step 4
1.编译安装
# 安装 jdk, maven, protobuf
$ sudo apt-get install maven libprotobuf-java
$ cd Hadoop-2.6.1-src
# mvn 编译:-Pnative~忽略本地建立 mapreduce
$ mvn clean package -Pnative -DskipTests -Dtar
# 查看编译后的文件
$ cd /Hadoop/Hadoop-2.6.1-src/Hadoop-dist/target/Hadoop-2.6.1/lib/native
2.二进制安装
# 直接将目录移到/usr/local
$ sudo mv Hadoop-2.6.1 /usr/local/Hadoop
# 检测安装效果
$ ./bin/Hadoop version
3.2.3 配置 step 5~6
3.2.3.1 配置环境变量
** 设定 JAVA_HOME 和 HADOOP 变量**
# 检测 java 的安装路径
$ update-alternatives --config java
# 编辑.bashrc,添加以下内容,并激活 source .bashrc
#HADOOP VARIABLES START
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386
export HADOOP_ HOME =/usr/local/Hadoop
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/Hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOOME/sbin:$HADOOP_HOME/lib
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
#HADOOP VARIABLES END
# 编辑 Hadoop-env.sh,修改变量 JAVA_HOM、HADOOP_HOME 和 PATH
# 说明:若以上变量已经在.bashrc 添加,那么这里可以不用修改。
$ vi /usr/local/Hadoop/etc/Hadoop/Hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386
export HADOOP_HOME=/usr/local/Hadoop
export PATH=$PATH:/usr/local/Hadoop/bin
3.2.3.2 配置 Hadoop 文件
特别说明:Hadoop 2.6 后的配置文件目录位于 ${HADOOP_HOME}/etc/Hadoop/
,而早期配置文件目录在 ${ HADOOP_HOME }/conf/
Hadoop 的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现,配置文件顶层标签为 <configuration></configuration>
。
配置文件名 | 用途 | 修改内容 |
---|---|---|
core-site.xml | 分布式模式必需 配置 namenode,端口 9000 对应于 50090. 若此文件为空,程序将不会在 Hadoop.tmp.dir 查找文件,而是在本地查找。 | fs.default.name hdfs://localhost:9000 Hadoop.tmp.dir /tmp/Hadoop/Hadoop-${ user.name } |
hdfs-site.xml | 分布式模式必需 | dfs.replication1 |
mapred-site.xml | MapReduce job 配置,分布式计算。 | mapreduce.framework.nameyarn |
yarn-site.xml | yarn.nodemanager.aux-servicesmapreduce_shuffle | |
capacity-scheduler.xml | ||
备注:Now you are ready to start your Hadoop cluster in one of the three supported modes:
表格 10 Hadoop 支持模式列表
运行模式 | 特色 | 配置项 |
---|---|---|
Local (Standalone) Mode 单机 | 默认情况下,Hadoop 被配置成以非分布式模式运行的一个独立 Java 进程。这对调试非常有帮助。 | 无需配置 Hadoop 文件 |
Pseudo-Distributed Mode 伪分布式 | Hadoop 可以在单节点上以所谓的伪分布式模式运行,此时每一个 Hadoop 守护进程都作为一个独立的 Java 进程运行。节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。 | 伪分布式需要修改 2 个配置文件 core-site.xml 和 hdfs-site.xml 。 |
Fully-Distributed Mode 完全分布式 |
3.2.3.3 示例:WordCount
下面的实例将 README.txt
拷贝作为输入,查找并显示匹配给定正则表达式的条目。输出写入到指定的 output
目录。
$ cd /usr/local/Hadoop
$ mkdir input
$ cp README.txt input
# 执行 WordCount,*2.4.0 为 Hadoop 版本号,相应修改
$ bin/hadoop jar share/hadoop/mapreduce/sources/hadoop-mapreduce-examples-2.4.0-sources.jar org.apache.hadoop.examples.WordCount input output
# 或者
$ bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
# 查看字符统计结果
$ cat output/*
备注:若需再次执行脚本,需删除 outout/*。
3.2.4 执行 step 7
# step 7.格式化 hdfs,只需执行一次,再次执行将重新格式化,清除之前数据
$ hdfs namenode -format
# 启动脚本:路径有发生变化,bin/--> sbin/
# dfs 初始化 map-reduce 环境,yarn 负责资源管理与任务调度
$ sbin/start-all.sh
# 或者
$ sbin/start-dfs.sh
$ sbin/start-yarn.sh
# 安装完毕,测试
Hadoop 守护进程的日志写入到 ${HADOOP_LOG_DIR} 目录 (默认是 ${HADOOP_HOME}/logs).
浏览 NameNode 和 JobTracker 的网络接口,它们的地址默认为:
ResourceManager - http://localhost:8088/
NameNode(对应配置文件端口为 9000) - http://localhost:50090/
# jps 查看启动的 Hadoop 进程,若无 DataNode 或和 NameNode 则启动不成功。
denny@denny-ubuntu:~$ jps
12462 DataNode
12950 NodeManager
12813 ResourceManager
12652 SecondaryNameNode
16161 Jps
# 将输入文件拷贝到分布式文件系统:
$ bin/Hadoop fs -put conf input
# 在分布式模式查看输出文件
$ bin/hdfs dfs -cat output/*
# 停止
$ sbin/stop-yarn.sh
$ sbin/stop-dfs.sh
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论