hadoop -- setup and configuration
来源:互联网 发布:python 符号错误 编辑:程序博客网 时间:2024/06/04 07:11
- Hadoop Modes
- pre-install setup
- Creating a user
- SSH Setup
- installing java
- Install Hadoop
- Install in Standalone Mode
- lets do a test
- Install in Pseudo Distributed Mode
- Hadoop setup
- Hadoop configuration
- YARN configuration
- Install in Standalone Mode
本节配置一个基于 linux 的 hadoop 环境。
Hadoop Modes
hadoop 支持三种模式:
- Local/Standalone Mode: 默认设置是Standalone 模式,作为一个java 进程运行。
- Pseudo Distributed Mode: 在一个机器上模拟分布式。hdfs, YARN, MapReduce 等这些hadoop daemon 都是一个独立的 java 进程。
- Fully Distributed Mode: 需要两个或多个机器作为一个集群,实现真正的分布式。
pre-install setup
Creating a user
推荐为 hadoop 建一个独立的用户, 修改目录权限
$ su passwd# useradd hadoop# passwd hadoop New passwd: Retype new passwd # chown -R hadoop /usr/hadoop
SSH Setup
$ ssh-keygen -t rsa $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys $ chmod 0600 ~/.ssh/authorized_keys
然后在当前 shell 用ssh 链接 localhost 就无需输入密码了。
$ ssh localhost
installing java
$ java -version
如果这个指令可以正确的查看到java版本那么java已经争取安装,如果不能,请务必要先安装好java。
- step1: 在这儿下载 java (jdk-*u**-OS-x64.tar.gz).
- setp2: 切换到java所在文件夹并解压。
$ cd Downloads/ $ tar zxf jdk-7u71-linux-x64.gz $ ls jdk1.7.0_71 jdk-7u71-linux-x64.gz
- step3: 使所有用户可以使用java, 移动java到“/usr/local”, 或者其他你希望安装的地方。
$ su password: # mv jdk1.7.0_71 /usr/local/
- step4
在 ~/.bashrc 里面添加以下内容:
export JAVA_HOME=/usr/local/jdk1.7.0_71 export PATH=$PATH:$JAVA_HOME/bin
$ source ~/.bashrc
- step5
为方便管理,把java 加入到版本管理器,ubuntu 下是 update-alternatives:
# alternatives --install /usr/bin/java java usr/local/java/bin/java 2# alternatives --install /usr/bin/javac javac usr/local/java/bin/javac 2# alternatives --install /usr/bin/jar jar usr/local/java/bin/jar 2# alternatives --set java usr/local/java/bin/java# alternatives --set javac usr/local/java/bin/javac# alternatives --set jar usr/local/java/bin/jar
Install Hadoop
在这找到你需要的版本,下载Hadoop, 并加压. 我下载的是 hadoop-2.7.1
$ su password: # cd /usr/local # wget http://apache.claz.org/hadoop/common/hadoop-2.7.1/hadoop-2.4.1.tar.gz# tar xzf hadoop-2.7.1.tar.gz # chmod -R 777 /usr/local/hadop-2.7.1
Install in Standalone Mode
在这个模式下没有daemons, 并且都在同一个 JVM 里运行。
把下面的命令写入 ~/.bashrc
export HADOOP_HOME=/usr/local/hadoop export PATH=$HADOOP_HOME/bin:$PATH
$ source ~/.bashrc
然后确认一下 Hadoop 是否可以正常工作:
$ hadoop version
如果安装成功会显示类似以下的结果(这是我的输出):
Hadoop 2.7.1Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r 15ecc87ccf4a0228f35af08fc56de536e6ce657aCompiled by jenkins on 2015-06-29T06:04ZCompiled with protoc 2.5.0From source with checksum fc0a1a23fc1868e4d5ee7fa2b28a58aThis command was run using /usr/local/hadoop-2.7.1/share/hadoop/common/hadoop-common-2.7.1.jar
let’s do a test
现在,我们用 standalone 模式下的 hadoop 做一个小小 wordcount 的测验
$ cd $HADOOP_HOME$ mkdir input$ cp *.txt $ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount input ouput #请查看你所安装按本的jar文件的名字$ cat output/*
然后,不出意外的话,你应该就可以看到文件里单词的个数了。
Install in Pseudo Distributed Mode
Hadoop setup
把下面的命令写入 ~/.bashrc
export HADOOP_HOME=/usr/local/hadoop export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin export HADOOP_INSTALL=$HADOOP_HOMEexport HADOOP_LOG_DIR=$HADOOP_HOME/logs #这个是默认位置,也可以自定义你希望的位置
$ source ~/.bashrc
Hadoop configuration
修改 $HADOOP_HOME/etc/hadoop/hadoop-env.sh 中设置 java 环境变量 JAVA_HOME
#export JAVA_HOME=${JAVA_HOME}export JAVA_HOME=/opt/jdk1.8.0_81
修改 $HADOOP_HOME/etc/hadoop/core-site.xml 文件:
<configuration> <property> <name>fs.defaultFS</name> //也可以写作 fs.default.name <value>hdfs://localhost:9000</value> </property></configuration>
修改 $HADOOP_HOME/etc/hadoop/core-site.xml 文件:
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.name.dir</name> <value>file:///home/hadoop/hadoopinfra/hdfs/namenode </value> //这里file后面是三个斜杠,我打成了两个,一直启动不起来NameNode. </property> <property> <name>dfs.data.dir</name> <value>file:///home/hadoop/hadoopinfra/hdfs/datanode </value> </property></configuration>
格式化 HDFS 文件系统
$ hdfs namenode -format
启动 NameNode 和 DataNode 的守护进程
$ start-dfs.sh$ jps # 查看是否正常启动 172075 Jps 169799 SecondaryNameNode 34918 Nailgun 169311 NameNode 169483 DataNode$ stop-dfs.sh
note: 如果你是按博客里面的内容下载的hadoop-..*.tar.gz的安装包,并且如果你的机器是64位的话,你会出现一个WARNING,如下:
WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
这个是因为安装包里面的 $HADOOP_HOME/lib/native/libhadoop.so.1.0.0 这个本地的 Hadoop 库是在32位机器上编译的,可以做以下选择:
1. 忽略它,因为只是个WARN,并不会影响HADOOP 的功能
2. 担心它会造成不稳定,下载 Hadoop 的源码包 hadoop-..*-src.tar.gz, 重新编译
具体可以参考【链接1】【链接2】
stop之前可以通过浏览器查看 NameNode,其默认端口是50070, DataNode 的默认端口是50030
+ http://localhost:50070
+ http://localhost:50030
如果如果没有正常启动可以在 $HADOOP_LOG_DIR 目录下查看对应的log文件里的内容,对应调试。
YARN configuration
修改 $HADOOP_HOME/etc/hadoop/mapred-site.xml 文件:
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property></configuration>
修改 $HADOOP_HOME/etc/hadoop/yarn-site.xml 文件:
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property></configuration>
$ start-yarn.sh$ jps # 查看是否正常启动 152423 JournalNode 173170 Jps 34918 Nailgun 172778 ResourceManager 172956 NodeManager$ stop-yarn.sh
ResourceManager默认的浏览器端口是8088,stop之前可以在;浏览器查看:
+ http://localhost:8088
或者可以用脚本 start/stop-all.sh 进行管理
$ start-all.sh$ stop-all.sh
- hadoop -- setup and configuration
- SD Configuration and Setup
- Script - Check Current Undo Configuration and Advise Recommended Setup
- How to Setup Nutch and Hadoop
- db2 setup&configuration
- Hadoop Setup
- hadoop Configuration
- Intellij setup with Java configuration
- My Hadoop: Hadoop 0.23 setup
- hadoop map/reduce setup
- hadoop- cluster setup
- Hadoop - single node setup
- setup cluster -- configure hadoop
- hadoop configuration print
- hadoop ganglia configuration
- 2.2 Hadoop Configuration详解
- Hadoop Configuration介绍
- Hadoop Configuration详解
- 有或无操作系统的Linux设备驱动区别
- java数组合并
- CF-gym100338-A Shitália
- 读书笔记之linux/unix系统编程手册(26)
- 数据结构与算法-插入排序
- hadoop -- setup and configuration
- noip2001 最大公约数和最小公倍数问题 (质因数分解)
- java中<<,>>和>>>
- sklearn、nltk、gensim语料输入对比之nltk
- 黑马程序员——集合(三)Map和枚举,Conllections工具类
- 数据结构与算法-快速排序
- MongoDB学习七--MongoDB高级操作
- UIScrollView添加控件,控件距离顶部始终有间距的问题
- [leetcode-230]Kth Smallest Element in a BST(java)