首页 > 系统相关 >Linux mint的hadoop安装方法

Linux mint的hadoop安装方法

时间:2025-01-02 12:11:34浏览次数:1  
标签:xml Hadoop dfs hadoop YARN Linux site mint

参考网址http://www.powerxing.com/install-hadoop/
1.创建hadoop账户
这条命令创建了可以登陆的 hadoop 用户,并使用 /bin/bash 作为 shell。
sudo useradd -m hadoop -s /bin/bash
2.接着使用如下命令设置密码,可简单设置为 hadoop,按提示输入两次密码:
sudo passwd hadoop
3.可为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题:
sudo adduser hadoop sudo
4.最后注销当前用户(点击屏幕右上角的齿轮,选择注销),在登陆界面使用刚创建的 hadoop 用户进行登陆。
5.更新apt
sudo apt-get update
6.安装vim
sudo apt-get install vim
7.安装SSH、配置SSH无密码登陆
sudo apt-get install openssh-server
8.安装后,可以使用如下命令登陆本机:
此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 hadoop,这样就登陆到本机了。
ssh localhost
9.首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:
exit                           # 退出刚才的 ssh localhost
cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa              # 会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys  # 加入授权
10.安装Java环境
11.接着配置 JAVA_HOME 环境变量
vim ~/.bashrc
第一行新增
export JAVA_HOME=JDK安装路径
接着还需要让该环境变量生效,执行如下代码:
source ~/.bashrc 
设置好后我们来检验一下是否设置正确:
echo $JAVA_HOME     # 检验变量值
java -version
$JAVA_HOME/bin/java -version  

12.安装 Hadoop 2
Hadoop 2 可以通过 http://mirror.bit.edu.cn/apache/hadoop/common/ 或者 http://mirrors.cnnic.cn/apache/hadoop/common/ 下载,一般选择下载最新的稳定版本,即下载 “stable” 下的 hadoop-2.x.y.tar.gz 这个格式的文件,这是编译好的,另一个包含 src 的则是 Hadoop 源代码,需要进行编译才可使用。
将 Hadoop 安装至 /usr/local/ 中:
sudo tar -zxf ~/下载/hadoop-2.6.0.tar.gz -C /usr/local    # 解压到/usr/local中
cd /usr/local/
sudo mv ./hadoop-2.6.0/ ./hadoop            # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop       # 修改文件权限

13.Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:
cd /usr/local/hadoop
 ./bin/hadoop version
修改hadoop配置文件在hadoop目录下的etc/hadoop
修改hadoop-env.sh
export JAVA_HOME=/opt/jdk1.7.0_55
修改core-site.xml中间新增如下  数据目录
</configuration>
   <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop:9000</value>
   </property>
   <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/SoftWare/Cache/Hadoop/data</value>
   </property>
</configuration>

增加前面配置的hadoop的DNS解析到本地
sudo gedit /etc/hosts
增加一条 127.0.0.1 hadoop

修改hdfs-site.xml  配置块大小有几个副本
   <property>
        <name>dfs.replication</name>
        <value>1</value>
   </property>


//以下单机版暂时不配置
修改mapred-site.xml  是根据模板去后缀得到  设置在哪跑localhost本地yarn集群
   <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
   </property>
修改yarn-site.xml  设置主节点
   <property>
        <name>yarn.resoucemanager.hostname</name>
        <value>heishuidi</value>
   </property>
   <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
   </property>
//以上单机版暂时不配置

增加环境变量
gedit ~/.bashrc
#Hadoop
export JAVA_HOME=/opt/jdk1.7.0_55
export HADOOP_HOME=/usr/local/SoftWare/hadoop-2.5.2
export PATH=$PATH:$JAVA_HOME/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
环境变量生效
source /etc/profile
格式化hdfs文件
hadoop namenode -format
进入hadoop的sbin目录启动
start-dfs.sh		 				//单机版1
hadoop-daemon.sh start namenode	//集群版2
jps可以查看


使用例子:
我们可以执行例子来感受下 Hadoop 的运行。Hadoop 附带了丰富的例子(运行 ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar
cd /usr/local/hadoop
mkdir ./input
cp ./etc/hadoop/*.xml ./input   # 将配置文件作为输入文件
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
cat ./output/*          # 查看运行结果
Hadoop 默认不会覆盖结果文件,因此再次运行上面实例确保是空文件夹

15.Hadoop伪分布式配置
Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。
Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。
修改配置文件 core-site.xml (通过 gedit 编辑会比较方便: gedit ./etc/hadoop/core-site.xml),将当中的
<configuration>
</configuration>
修改为
<configuration>
        <property>
             <name>hadoop.tmp.dir</name>
             <value>file:/usr/local/hadoop/tmp</value>
             <description>Abase for other temporary directories.</description>
        </property>
        <property>
             <name>fs.defaultFS</name>
             <value>hdfs://localhost:9000</value>
        </property>
</configuration>
同样的,修改配置文件 hdfs-site.xml:
<configuration>
        <property>
             <name>dfs.replication</name>
             <value>1</value>
        </property>
        <property>
             <name>dfs.namenode.name.dir</name>
             <value>file:/usr/local/hadoop/tmp/dfs/name</value>
        </property>
        <property>
             <name>dfs.datanode.data.dir</name>
             <value>file:/usr/local/hadoop/tmp/dfs/data</value>
        </property>
</configuration>
伪分布式虽然只需要配置 fs.defaultFS 和 dfs.replication 就可以运行(官方教程如此),不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行 format 才行。所以我们进行了设置,同时也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则在接下来的步骤中可能会出错。
配置完成后,执行 NameNode 的格式化:
./bin/hdfs namenode -format
成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错。
接着开启 NameNode 和 DataNode 守护进程。
./sbin/start-dfs.sh
若出现如下SSH提示,输入yes即可。
如果启动 Hadoop 时遇到输出非常多“ssh: Could not resolve hostname xxx”的异常情况,如下图所示:
这个并不是 ssh 的问题,可通过设置 Hadoop 环境变量来解决。首先按键盘的 ctrl + c 中断启动,然后在 ~/.bashrc 中,增加如下两行内容(设置过程与 JAVA_HOME 变量一样,其中 HADOOP_HOME 为 Hadoop 的安装目录):
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
保存后,务必执行 source ~/.bashrc 使变量设置生效,然后再次执行 ./sbin/start-dfs.sh 启动 Hadoop。
启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程: “NameNode”、”DataNode” 和 “SecondaryNameNode”(如果 SecondaryNameNode 没有启动,请运行 sbin/stop-dfs.sh 关闭进程,然后再次尝试启动尝试)。如果没有 NameNode 或 DataNode ,那就是配置不成功,请仔细检查之前步骤,或通过查看启动日志排查原因。
 http://localhost:50070 查看 NameNode 和 Datanode 信息,还可以在线查看 HDFS 中的文件。
15.运行Hadoop伪分布式实例
上面的单机模式,grep 例子读取的是本地数据,伪分布式读取的则是 HDFS 上的数据。要使用 HDFS,首先需要在 HDFS 中创建用户目录:
./bin/hdfs dfs -mkdir -p /user/hadoop
接着将 ./etc/hadoop 中的 xml 文件作为输入文件复制到分布式文件系统中,即将 /usr/local/hadoop/etc/hadoop 复制到分布式文件系统中的 /user/hadoop/input 中。我们使用的是 hadoop 用户,并且已创建相应的用户目录 /user/hadoop ,因此在命令中就可以使用相对路径如 input,其对应的绝对路径就是 /user/hadoop/input:
./bin/hdfs dfs -mkdir input
./bin/hdfs dfs -put ./etc/hadoop/*.xml input
复制完成后,可以通过如下命令查看文件列表:
./bin/hdfs dfs -ls input
伪分布式运行 MapReduce 作业的方式跟单机模式相同,区别在于伪分布式读取的是HDFS中的文件(可以将单机步骤中创建的本地 input 文件夹,输出结果 output 文件夹都删掉来验证这一点)。
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output 'dfs[a-z.]+'
查看运行结果的命令(查看的是位于 HDFS 中的输出结果):
./bin/hdfs dfs -cat output/*
结果如下,注意到刚才我们已经更改了配置文件,所以运行结果不同。
我们也可以将运行结果取回到本地:
rm -r ./output    # 先删除本地的 output 文件夹(如果存在)
./bin/hdfs dfs -get output ./output     # 将 HDFS 上的 output 文件夹拷贝到本机
cat ./output/*
Hadoop 运行程序时,输出目录不能存在,否则会提示错误 “org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://localhost:9000/user/hadoop/output already exists” ,因此若要再次执行,需要执行如下命令删除 output 文件夹:
./bin/hdfs dfs -rm -r output 
运行程序时,输出目录不能存在
运行 Hadoop 程序时,为了防止覆盖结果,程序指定的输出目录(如 output)不能存在,否则会提示错误,因此运行前需要先删除输出目录。在实际开发应用程序时,可考虑在程序中加上如下代码,能在每次运行时自动删除输出目录,避免繁琐的命令行操作:
Configuration conf = new Configuration();
Job job = new Job(conf);
/* 删除输出目录 */
Path outputPath = new Path(args[1]);
outputPath.getFileSystem(conf).delete(outputPath, true);
关闭hadoop
./sbin/stop-dfs.sh
下次启动 hadoop 时,无需进行 NameNode 的初始化,只需要运行
 ./sbin/start-dfs.sh 就可以!
启动YARN
(伪分布式不启动 YARN 也可以,一般不会影响程序执行)
有的读者可能会疑惑,怎么启动 Hadoop 后,见不到书上所说的 JobTracker 和 TaskTracker,这是因为新版的 Hadoop 使用了新的 MapReduce 框架(MapReduce V2,也称为 YARN,Yet Another Resource Negotiator)。
YARN 是从 MapReduce 中分离出来的,负责资源管理与任务调度。YARN 运行于 MapReduce 之上,提供了高可用性、高扩展性,YARN 的更多介绍在此不展开,有兴趣的可查阅相关资料。
上述通过 ./sbin/start-dfs.sh 启动 Hadoop,仅仅是启动了 MapReduce 环境,我们可以启动 YARN ,让 YARN 来负责资源管理与任务调度。
首先修改配置文件 mapred-site.xml,这边需要先进行重命名:
mv ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml
然后再进行编辑,同样使用 gedit 编辑会比较方便些 gedit ./etc/hadoop/mapred-site.xml :
<configuration>
        <property>
             <name>mapreduce.framework.name</name>
             <value>yarn</value>
        </property>
</configuration>
接着修改配置文件 yarn-site.xml:
<configuration>
        <property>
             <name>yarn.nodemanager.aux-services</name>
             <value>mapreduce_shuffle</value>
            </property>
</configuration>
然后就可以启动 YARN 了(需要先执行过 ./sbin/start-dfs.sh):
./sbin/start-yarn.sh      # 启动YARN
./sbin/mr-jobhistory-daemon.sh start historyserver  # 开启历史服务器,才能在Web中查看任务运行情况
启后通过 jps 查看,可以看到多了 NodeManager 和 ResourceManager 两个后台进程,如下图所示。
启动 YARN 之后,运行实例的方法还是一样的,仅仅是资源管理方式、任务调度不同。观察日志信息可以发现,不启用 YARN 时,是 “mapred.LocalJobRunner” 在跑任务,启用 YARN 之后,是 “mapred.YARNRunner” 在跑任务。启动 YARN 有个好处是可以通过 Web 界面查看任务的运行情况:http://localhost:8088/cluster,如下图所示。
 YARN 主要是为集群提供更好的资源管理与任务调度,然而这在单机上体现不出价值,反而会使程序跑得稍慢些。因此在单机上是否开启 YARN 就看实际情况了。
不启动 YARN 需重命名 mapred-site.xml
如果不想启动 YARN,务必把配置文件 mapred-site.xml 重命名,改成 mapred-site.xml.template,需要用时改回来就行。否则在该配置文件存在,而未开启 YARN 的情况下,运行程序会提示 “Retrying connect to server: 0.0.0.0/0.0.0.0:8032” 的错误,这也是为何该配置文件初始文件名为 mapred-site.xml.template。
同样的,关闭 YARN 的脚本如下:
./sbin/stop-yarn.sh
./sbin/mr-jobhistory-daemon.sh stop historyserver

 

标签:xml,Hadoop,dfs,hadoop,YARN,Linux,site,mint
From: https://www.cnblogs.com/robots2/p/18647363

相关文章

  • linux mint安装kafka,及flume与kafka整合
    需要软件jdk1.8(jdk-8u131-linux-x64.rpm)zookeeper(zookeeper-3.4.10.tar.gz)kafka2.11-2.0.0flume1.8.0 把触控板的操作做为输出sudofusuma1>/var/log/script/test1112>&1& 1、jdk就不说了2、zookeeper安装,参考其他bin目录./zkServer.shstart查看状态./zkServ......
  • linux安装spark
    1、首先在官网下载http://spark.apache.org/downloads.html,选择与hadoop对应的版本,对应关系为:spark1.6.2--scala2.10;spark2.0.0--scala2.11 http://mirrors.hust.edu.cn/apache/spark/spark-2.2.2/spark-2.2.2-bin-hadoop2.7.tgz在终端中输入wgethttp://d3kbcqa49mib13.cl......
  • linux mint下安装截图工具
    在linux下尝试了多款截图工具,综合下来,觉得shutter是最好用的,推荐大家使用。Shutter是一个强大的截图工具,强大的功能集成到一个直观的简洁界面,应用程序自带多个区域截图(如全屏,选择界面,活动窗口,网站等),方便应用功能,以及有众多插件和上传到Web服务的功能。安装shutter:sudoadd-ap......
  • linux mint安装eclipse
    安装eclipse之前需要先安装配置jdk,参考上面,一、Eclipse的下载与安装1、首先,在Eclipse的官网中下载最新版的LunaSR2http://www.eclipse.org/downloads/packages/release/Luna/SR2(点击打开链接)直接下载最新版的EclipseforJavaEELinux32bit/64bit,Eclipse各个版本其实差别不多,......
  • linux mint安装Idea
    一、前言这一节我们介绍在Linux下如何安装与破解Intellijidea2017。现在有很多公司开发环境都是Linux,所以掌握在Linux环境下使用Idea办公也是咱们必须得掌握的技能。记住我们下载的是Ultimate(旗舰版),不是Community(社区版)。Ultimate(旗舰版)是收费的版本,本文主要是针对这个版......
  • 嵌入式Linux应用程序开发 主题:第11章学习笔记
    康奈尔笔记法-嵌入式Linux应用程序开发主题:第11章学习笔记1.关键问题(Questions/Keywords):嵌入式Linux开发的核心概念有哪些?如何配置开发环境?嵌入式系统的文件系统如何构建?进程管理和多线程技术的应用。2.备注(Notes):嵌入式Linux核心概念:嵌入式系统结合了硬件和软件......
  • linux安装nodejs
    https://nodejs.org/en/下载nodejs后解压到一个目录添加环境变量#NodejsexportNODE_HOME=/opt/SoftWare/node-v10.16.0-linux-x64exportPATH=$PATH:$NODE_HOME/bin 使用国内镜像npminstall-gcnpm--registry=https://registry.npm.taobao.org 安装vue脚手架cnpm......
  • linux mint安装触控板手势fusuma
    安装必要的包,终端输入:sudoapt-getinstalllibinput-toolssudoapt-getinstallxdotoolsudogeminstallfusuma有些人可能会安装失败,因为gem要使用Ruby的环境,如果上面的第三步安装失败了,记得先使用下面这条指令安装Ruby。然后再执行上述第三条命令。sudoapt-getinstall......
  • linux更新软件源 安装docker
    vim/etc/aptsources.list学习参考https://blog.csdn.net/bskfnvjtlyzmv867/article/details/81044217 #默认注释了源码镜像以提高aptupdate速度,如有需要可自行取消注释debhttps://mirrors.tuna.tsinghua.edu.cn/ubuntu/xenialmainrestricteduniversemultiverse#......
  • Linux mint安装外部软件
    //更新系统 sudo apt-get update更新ruanjiansudo apt-get upgrade更新系统//安装浏览器sudo apt-get install chromium-browser google浏览器wgethttps://dl.google.com/linux/direct/google-chrome-stable_current_amd64.debsudodpkg-igoogle-chrome-stab......