阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux 下 Hadoop 安装指南

155次阅读
没有评论

共计 9540 个字符,预计需要花费 24 分钟才能阅读完成。

一、安装 JDK

1、用户可以在 Oracle JDK 的官网下载相应版本的 JDK,本例以 JDK 1.6 为例,官网地址为 http://www.oracle.com/tech-network/java/javase/downloads/index.html。

2、配置环境变量,在 /etc/profile 增加以下代码。

1 #Seeting JDK JDK 环境变量
2 export JAVA_HOME=/opt/java/jdk/jdk1.7.0_79
3 export JRE_HOME=${JAVA_HOME}/jre
4 export CLASSPATH=${JAVA_HOME}/lib
5 export PATH=${JAVA_HOME}/bin:$PATH

输入 java -version 命令查看是否安装成功

Linux 下 Hadoop 安装指南

二、配置 SSH

一般 linux 系统都自带了 SSH 服务,如果没有 SSH 服务需要自己安装

1、查看是否安装 SSH: ps -e | grep ssh

Linux 下 Hadoop 安装指南

如果没有显示 sshd,说明没有安装 ssh 服务

2、通过“sudo apt-get install openssh-server”安装

$ sudo apt-get install openssh-server
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到 (Incoming) 目录移出。下列信息可能会对解决问题有所帮助:下列软件包有未满足的依赖关系:openssh-server : 依赖: openssh-client (= 1:6.6p1-2Ubuntu1)
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

这是因为,openssh-server 是依赖于 openssh-clien 的, 那 ubuntu 不是自带了 openssh-client 吗? 原由是自带的 openssh-clien 与所要安装的 openssh-server 所依赖的版本不同, 这里所依赖的版本是1:6.6p1-2ubuntu1,所以要安装对应版本的 openssh-clien, 来覆盖掉 ubuntu 自带的。

$ sudo apt-get install openssh-client=1:6.6p1-2ubuntu1
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
建议安装的软件包:libpam-ssh keychain monkeysphere
下列软件包将被【降级】:openssh-client
升级了 0 个软件包,新安装了 0 个软件包,降级了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。需要下载 566 kB 的软件包。解压缩后会消耗掉 0 B 的额外空间。您希望继续执行吗?[Y/n] y
获取:1 http://cn.archive.ubuntu.com/ubuntu/ trusty/main openssh-client amd64 1:6.6p1-2ubuntu1 [566 kB]
下载 566 kB,耗时 2 秒 (212 kB/s)        
dpkg:警告:downgrading openssh-client from 1:6.6p1-2ubuntu2 to 1:6.6p1-2ubuntu1
(正在读取数据库 ... 系统当前共安装有 200015 个文件和目录。)
Preparing to unpack .../openssh-client_1%3a6.6p1-2ubuntu1_amd64.deb ...
Unpacking openssh-client (1:6.6p1-2ubuntu1) over (1:6.6p1-2ubuntu2) ...
Processing triggers for man-db (2.6.7.1-1) ...
正在设置 openssh-client (1:6.6p1-2ubuntu1) ...
 

可以看到, 提示了系统中 openssh-client 被降级, 这样再安装 openssh-server 就可以成功了!

3、查看 SSH 目录 /etc/ssh 下是否有密钥文件

Linux 下 Hadoop 安装指南

如果没有这两个文件,需要自己生成。输入以下命令。

#ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
#ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

生成密钥文件时,会提示输入密码,这里我们不输入密码,默认按回车

可以用“passwd 用户”来修改 ssh 的登录密码。

4、启动 ssh

/etc/init.d/ssh status 查看 ssh 状态 
/etc/init.d/ssh start  启动 ssh
/etc/init.d/ssh restart 重启 ssh

5、测试 ssh 是否安装成功

Linux 下 Hadoop 安装指南

三、配置 SSH 免密码登录

1、输入 ssh-keygen  -t rsa

$ssh-keygen  –t rsa
Generating
public/private rsa key pair.
Enter file
in which to save the key(/root/.ssh/id_rsa):
/*回车,设置默认路径 */
Enter passphrase(empty
for no passphrase):
/* 回车,设置空密码*/
Enter same passphrase again:
Your identification has been saved
in /root/.ssh/id_rsa.
Your
public key has been saved in /root/.ssh/id_rsa.pub.

如果是 root 用户,则在/root/.ssh/ 目录下生成一个私钥 id_rsa 和一个公钥 id_rsa.pub。

2、将 id_rsa.pub 文件 写入 authorized_keys 

          cat id_rsa.pub >> ~/.ssh/authorized_keys  

查看 /root/.ssh 目录

Linux 下 Hadoop 安装指南

3、装 id_rsa.pub 文件发送到远程机器上

scp id_rsa.pub root@172.20.14.144:/home

cat /home/id_rsa.pub >> /root/.ssh/authorized_keys

这样 ssh 登录远程机器就不需要密码了。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-08/134637p2.htm

四、安装 Hadoop

1、下载安装 Hadoop2.2.0

2、解压 tar 包

$ sudo tar-vxzf hadoop-2.2.0.tar.gz -C /usr/local
$ cd /usr/local
$ sudo mv hadoop-2.2.0 hadoop
$ sudo addgroup hadoop  添加 hadoop 组
$ sudo adduser -ingroup hadoop hadoop 添加 hadoop 用户 $ sudo chown
-R hduser:hadoop hadoop 授权

3、查看 Hadoop 包是 32 位还是 64 位

Linux 下 Hadoop 安装指南

4、配置 Hadoop 环境变量

$ gedit /etc/profile

export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native  
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"

5、编辑配置文件

1)、进入 Hadoop 所在目录 /usr/local/hadoop/etc/hadoop。

2)、配置 core-site.xml 文件

<configuration>/* 这里的值指的是默认的 HDFS 路径 */
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>/* 缓冲区大小:io.file.buffer.size 默认是 4KB*/
    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
    </property>/* 临时文件夹路径 */
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/tmp</value>
        <description>Abase for other temporary directories.       </description>
    </property>
    <property>
        <name>hadoop.proxyuser.hduser.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.hduser.groups</name>
        <value>*</value>
    </property>
</configuration>

3)、配置 hdfs-site.xml

 创建 namenode 和 datanode 目录,执行以下命令

$ mkdir /hdfs/namenode
$ mkdir /hdfs/datanode

配置 hdfs-site.xml 文件

<configuration>
    <!--
    <property>  
         <name>dfs.namenode.rpc-address</name>  
         <value>master:9000</value>  
    </property>-->
    <!--
    <property>
    <name>dfs.namenode.http-address</name>
    <value>master:50070</value>
    <description>dfs namenode web ui 的地址 </description>        
    </property>-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:9001</value><!--???-->
    </property>
    
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/hdfs/namenode</value>
    </property>
    <!--配置 datanode 的数据存储目录-->
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/hdfs/datanode</value>
    </property>
    <!--配置副本数-->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <!--将 dfs.webhdfs.enabled 属性设置为 true,否则就不能使用 webhdfs 的 LISTSTATUS、LISTFILESTATUS 等需要列出文件、文件夹状态的命令,因为这些信息都是由 namenode 保存的-->
    <property>
        <name>dfs.webhdfs.enabled</name>
        <value>true</value>
    </property>
</configuration>

  4)、配置 hadoop-env.sh 和 yarn-env.sh 文件

  加入环境变量:export JAVA_HOME=/opt/java/jdk/jdk1.7.0_79/

5)、配置 yarn-site.xml 文件

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>/*resourcemanager 的地址 */
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
    </property>/* 调度器的端口 */
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value> master:8030</value>
    </property>/*resource-tracker 端口 */
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
    </property>/*resourcemanager 管理器端口 */

    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
    </property>/*ResourceManager 的 Web 端口,监控 job 的资源调度 */
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>
</configuration>

6)、配置 mapred-site.xml 文件    伪分布式不用配

<configuration>/*hadoop 对 map-reduce 运行框架一共提供了 3 种实现,在 mapred-site.xml 中通过 "mapreduce.framework.name" 这个属性来设置为 "classic"、"yarn" 或者 "local"*/
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>/*MapReduce JobHistory Server 地址 */
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>/*MapReduce JobHistory Server Web UI 地址 */
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>
</configuration>

  7)、配置masters,slaves 

sudo gedit /usr/local/hadoop/etc/hadoop/masters 添加:localhost(或master 必须配置 hosts 文件)

sudo gedit /usr/local/hadoop/etc/hadoop/slaves  添加:localhost

8)、配置 hosts 文件 (可不配置)

gedit /etc/hosts   添加如下内容

192.168.0.161 master
192.168.0.156 slave1

9)、格式化 Namenode(在 Hadoop 根目录下)

 ./bin/hadoop namenode -format

10)、启动 hadoop(在 hadoop 根目录下)

./sbin/start-all.sh

Linux 下 Hadoop 安装指南

11)、查看 hadoop 是否启动功能

Linux 下 Hadoop 安装指南

五、测试 hadoop

1、hadoop 根目录下创建文件夹

hadoop fs -mkdir /test

2、查看 hadoop 目录文件

Linux 下 Hadoop 安装指南

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-08/134637.htm

一、安装 JDK

1、用户可以在 Oracle JDK 的官网下载相应版本的 JDK,本例以 JDK 1.6 为例,官网地址为 http://www.oracle.com/tech-network/java/javase/downloads/index.html。

2、配置环境变量,在 /etc/profile 增加以下代码。

1 #Seeting JDK JDK 环境变量
2 export JAVA_HOME=/opt/java/jdk/jdk1.7.0_79
3 export JRE_HOME=${JAVA_HOME}/jre
4 export CLASSPATH=${JAVA_HOME}/lib
5 export PATH=${JAVA_HOME}/bin:$PATH

输入 java -version 命令查看是否安装成功

Linux 下 Hadoop 安装指南

二、配置 SSH

一般 linux 系统都自带了 SSH 服务,如果没有 SSH 服务需要自己安装

1、查看是否安装 SSH: ps -e | grep ssh

Linux 下 Hadoop 安装指南

如果没有显示 sshd,说明没有安装 ssh 服务

2、通过“sudo apt-get install openssh-server”安装

$ sudo apt-get install openssh-server
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到 (Incoming) 目录移出。下列信息可能会对解决问题有所帮助:下列软件包有未满足的依赖关系:openssh-server : 依赖: openssh-client (= 1:6.6p1-2Ubuntu1)
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

这是因为,openssh-server 是依赖于 openssh-clien 的, 那 ubuntu 不是自带了 openssh-client 吗? 原由是自带的 openssh-clien 与所要安装的 openssh-server 所依赖的版本不同, 这里所依赖的版本是1:6.6p1-2ubuntu1,所以要安装对应版本的 openssh-clien, 来覆盖掉 ubuntu 自带的。

$ sudo apt-get install openssh-client=1:6.6p1-2ubuntu1
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
建议安装的软件包:libpam-ssh keychain monkeysphere
下列软件包将被【降级】:openssh-client
升级了 0 个软件包,新安装了 0 个软件包,降级了 1 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。需要下载 566 kB 的软件包。解压缩后会消耗掉 0 B 的额外空间。您希望继续执行吗?[Y/n] y
获取:1 http://cn.archive.ubuntu.com/ubuntu/ trusty/main openssh-client amd64 1:6.6p1-2ubuntu1 [566 kB]
下载 566 kB,耗时 2 秒 (212 kB/s)        
dpkg:警告:downgrading openssh-client from 1:6.6p1-2ubuntu2 to 1:6.6p1-2ubuntu1
(正在读取数据库 ... 系统当前共安装有 200015 个文件和目录。)
Preparing to unpack .../openssh-client_1%3a6.6p1-2ubuntu1_amd64.deb ...
Unpacking openssh-client (1:6.6p1-2ubuntu1) over (1:6.6p1-2ubuntu2) ...
Processing triggers for man-db (2.6.7.1-1) ...
正在设置 openssh-client (1:6.6p1-2ubuntu1) ...
 

可以看到, 提示了系统中 openssh-client 被降级, 这样再安装 openssh-server 就可以成功了!

3、查看 SSH 目录 /etc/ssh 下是否有密钥文件

Linux 下 Hadoop 安装指南

如果没有这两个文件,需要自己生成。输入以下命令。

#ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
#ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key

生成密钥文件时,会提示输入密码,这里我们不输入密码,默认按回车

可以用“passwd 用户”来修改 ssh 的登录密码。

4、启动 ssh

/etc/init.d/ssh status 查看 ssh 状态 
/etc/init.d/ssh start  启动 ssh
/etc/init.d/ssh restart 重启 ssh

5、测试 ssh 是否安装成功

Linux 下 Hadoop 安装指南

三、配置 SSH 免密码登录

1、输入 ssh-keygen  -t rsa

$ssh-keygen  –t rsa
Generating
public/private rsa key pair.
Enter file
in which to save the key(/root/.ssh/id_rsa):
/*回车,设置默认路径 */
Enter passphrase(empty
for no passphrase):
/* 回车,设置空密码*/
Enter same passphrase again:
Your identification has been saved
in /root/.ssh/id_rsa.
Your
public key has been saved in /root/.ssh/id_rsa.pub.

如果是 root 用户,则在/root/.ssh/ 目录下生成一个私钥 id_rsa 和一个公钥 id_rsa.pub。

2、将 id_rsa.pub 文件 写入 authorized_keys 

          cat id_rsa.pub >> ~/.ssh/authorized_keys  

查看 /root/.ssh 目录

Linux 下 Hadoop 安装指南

3、装 id_rsa.pub 文件发送到远程机器上

scp id_rsa.pub root@172.20.14.144:/home

cat /home/id_rsa.pub >> /root/.ssh/authorized_keys

这样 ssh 登录远程机器就不需要密码了。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-08/134637p2.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计9540字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中