返回介绍

3.2 Hadoop 单机模式安装 step 1~7

发布于 2024-09-24 23:25:31 字数 6046 浏览 0 评论 0 收藏 0

说明:安装版本为 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.xmlMapReduce 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/*

image-20191205205441921

备注:若需再次执行脚本,需删除 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文