ubuntu_hadoop 部署笔记

单机模式部署

一、Jdk安装

命令:sudo apt-get install openjdk-6-jdk

目录:/usr/lib/jvm/java-6-openjdk

配置环境变量:

nano /etc/environment

在其中添加如下两行: 

CLASSPATH=./:/usr/lib/jvm/java-6-openjdk/lib

JAVA_HOME=/usr/lib/jvm/java-6-openjdk

PATH添加::/usr/lib/jvm/java-6-openjdk

二、新增hadoop用户

命令:sudo addgroup hadoop

sudo adduser --ingroup hadoop hadoop

nano gedit etc/sudoers

添加配置:

在root ALL=(ALL) ALL后 hadoop ALL=(ALL) ALL使hadoop用户具有root权限

(id:查看用户)

三、ssh配置

用hadoop账户进行登录。

安装openssh-server:sudo apt-get install openssh-server

建立SSH KEY:ssh-keygen -t rsa -P ""

启用SSH KEY:cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

sudo /etc/init.d/ssh reload

验证SSH的配置:ssh localhost

hadoop@datanode1:~$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys

hadoop@datanode2:~$ mkdir .ssh      建在hadoop用户下

hadoop@datanode2:~$ sudo mkdir .ssh 建在了root用户下

四、安装hadoop并更改用户所有权

我们采用的Hadoop版本是最新的Hadoop-0.20.2,可到Apache基金会官方主页下载http://www.apache.org/dyn/closer.cgi/hadoop/core,然后使用tar或直接解压到/home/hadoop下,解压后得到一个hadoop-0.20.2的一个文件夹。

    安装目录:/usr/local/hadoop

    更改所有权:chown -R hadoop:hadoop hadoop

五、配置hadoop

(1)配置$HADOOP_HOME/conf/hadoop-env.sh

切换到Hadoop的安装路径找到hadoop-0.20.2下的conf/hadoop-env.sh文件

将:# export JAVA_HOME=/usr/lib/j2sdk1.5-sun

改为:export JAVA_HOME=/usr/lib/jvm/java-6-openjdk

(2) 配置$HADOOP_HOME/conf/core-site.xml

切换到Hadoop的安装路径找到hadoop-0.20.2下的conf/core-site.xml文件

<configuration>

<property>

  <name>fs.default.name</name>

  <value>hdfs://localhost:9000</value>

</property>

<property>

  <name>hadoop.tmp.dir</name>

  <value>/home/hadoop/tmp</value>

</property>

-- 配置第二名称节点

<property>

  <name>fs.checkpoint.dir</name>

  <value>{}/home/hadoop/secondname</value> 

</property>

-- 设置回收站保留时间

<property>

  <name>fs.trash.interval</name>

  <value>10080</value>

  <description>

      Number of minutes between trash checkpoints. If zero, the trash feature is disabled

  </description>

</property>

</configuration>

(3) 配置$HADOOP_HOME/conf/hdfs-site.xml

切换到Hadoop的安装路径找到hadoop-0.20.2下的conf/hdfs-site.xml文件内容如下:

<configuration>

<property>

<name>dfs.name.dir</name>

<value>/home/hadoop/name</value>

</property> 

<property>

<name>dfs.data.dir</name>

<value>/home/hadoop/data</value>

</property>

<property>

<name>dfs.replication</name>

<value>2</value>

</property> 

-- NameNode HTTP状态监视地址

<property>

<name>dfs.http.address</name>

<value>localhost:50070</value>

</property> 

-- SecondaryNameNode HTTP状态监视地址

<property>

<name>dfs.secondary.http.address</name>

<value>localhost2:50070</value>

</property> 

</configuration>

(4) 配置$HADOOP_HOME/conf/mapred-site.xml

切换到hadoop的安装路径找到hadoop-0.20.2下的conf/mapred-site.xml文件内容如下:

<configuration>

<property>

<name>mapred.local.dir</name>

<value>/home/hadoop/temp</value>

</property> 

<property>

<name>mapred.job.tracker</name>

<value>localhost:9001</value>

</property> 

-- 每个job的map任务数

<property>

<name>mapred.map.tasks</name>

<value>7</value>

</property> 

-- 每一个tasktracker同时运行的map任务数为2

<property>

<name>mapred.tasktracker.map.tasks.maximum</name>

<value>2</value>

</property> 

-- 每一个tasktracker同时运行的reduce任务数为4

<property>

<name>mapred.tasktracker.reduce.tasks.maximum

</name>

<value>4</value>

</property> 

-- jvm虚拟机最大内存

<property>

  <name>mapred.child.java.opts</name>

  <value>-XX:-UseGCOverheadLimit</value>

</property>

</configuration>

六、格式化namenode

命令:bin/hadoop namenode -format

七、启动及验证

命令:./bin/start-all.sh

验证方法1:jps

验证方法2:bin/hadoop dfsadmin -report

八:运行Wordcount

1.准备工作

准备两个文本文件并拷贝到dfs里,具体命令操作如下:

$ echo "hello hadoop world." > /tmp/test_file1.txt

$ echo "hello world hadoop.i'm ceshiuser." > /tmp/test_file2.txt

$ bin/hadoop dfs -mkdir test-in

$ bin/hadoop dfs -copyFromLocal /tmp/test*.txt test-in

--$ bin/hadoop dfs -put /tmp/test*.txt test-in

--$ bin/hadoop dfs -copyToLocal test-out /tmp/test*.txt

--$ bin/hadoop dfs -get test-out /tmp/test*.txt

$ bin/hadoop dfs -ls test-in

2.运行

$ bin/hadoop jar hadoop-0.20.2-examples.jar wordcount test-in test-out

--% ln -s /home/hadoop/junyu-hadoop/hadoop-iflytek-tempcount.jar tempcount

3.查看结果

$ bin/hadoop dfs -ls test-out

$ bin/hadoop dfs -cat test-out/part-r-00000

分布式部署:

一,修改/etc/hosts文件:

192.168.71.89  node0

192.168.77.213 node1

二,ssh配置

(1)使用scp 命令把生成的公钥传给其它服务器,并保存成不同的名字,如192.168.71.89 -> 192.168.77.213 ,并且保存为89_id_rsa.pub 的时候命令如下:

scp id_rsa.pub hadoop@192.168.77.213:/home/hadoop/.ssh/89_id_rsa.pub

(2) 登录192.168.77.213 ,可以远程登录:ssh hadoop@192.168.77.213,进入当前用户默认目录下的.ssh 目录:cd ~/.ssh 

(3) 把公钥内容添加到登录认证文件中:cat 89_id_rsa.pub >> authorized_keys 

(4) 登录到192.168.71.89 主机,使用ssh hadoop@192.168.77.213 进行连接213 主机,这时候会出现输入yes/no? 的提示,输入yes。

三,配置hadoop文件。目录:/usr/local/hadoop/conf/

conf/masters :192.168.71.89

conf/slaves  :192.168.77.213

修改 core-site.xml 文件

   <name>fs.default.name</name>

   <value>hdfs://192.168.71.89:9000/</value>

修改 hdfs-site.xml 文件

1:<name>dfs.http.address</name>

   <value>192.168.71.89:50070</value>

2:<name>dfs.secondary.http.address</name>

   <value>192.168.71.213:50070</value>

修改mapred-site.xml文件

   <name>mapred.job.tracker</name>

   <value>192.168.71.89:9001</value>

==========================================================================================

*** 增加Hadoop新节点:

向一个正在运行的Hadoop集群中增加几个新的Nodes

1. 新节点上部署java/hadoop程序,配置相应的环境变量

2. 新节点上增加用户,从master上拷贝id_rsa.pub并配置authorized_keys

3. 新节点上设置/etc/hosts,只要有本机和master的host即可

/etc/hosts

127.0.0.1       localhost

10.10.10.101 node1

10.10.10.102 node2

10.10.10.103 node3

10.10.10.104 node4

4. 新节点上建立相关的目录,并修改属主,将Node4之中 ~/tmp目录下的内容都删除掉,否则会被认为已经创建的节点。

5. master的slaves文件中增加上相的节点(* 注意:只在NameNode之上配置就可以)

/etc/masters

node1

/etc/slaves

node2

node3

node4

6. 在新节点上启动datanode和tasktracker

localadmin@node4:~/hadoop-0.20.2/bin$ hadoop-daemon.sh start datanode

localadmin@node4:~/hadoop-0.20.2/bin$ hadoop-daemon.sh start tasktracker

使用'Jps'进行检查。

7. 进行block块的均衡

在hdfs-site.xml中增加设置balance的带宽,默认只有1M:

<property> 

    <name>dfs.balance.bandwidthPerSec</name> 

    <value>10485760</value> 

    <description>

        Specifies the maximum bandwidth that each datanode can utilize for the balancing purpose in term of the number of bytes per second.

    </description> 

</property>

运行以下命令:

hadoop/bin/start-balancer.sh -threshold 3

均衡10个节点,移动400G数据,大概花费了3个小时

The cluster is balanced. Exiting…

Balancing took 2.9950980555555557 hours

-----------------------

*** 删除Hadoop节点:

Hadoop提供了Decommission的特性,可以按照以下步骤来操作:

1. 在hadoop的conf目录下生成一个excludes的文件 /etc/nn-excluded-list,写上需要remove的节点

    一个节点一行,如:

node4

2. 在hdfs-site.xml中增加配置:

<property>    

    <name>dfs.hosts.exclude</name>    

    <value>/etc/nn-excluded-list</value>    

</property>

3. 复制文件到集群各节点上

4. 执行hadoop dfsadmin -refreshNodes命令,它会在后台进行Block块的移动

    从移出的Nodes上移动到其它的Nodes上面

5. 通过以下2种方式查看Decommission的状态:

    hadoop dfsadmin -report

    http://10.10.10.101:50070/dfsnodelist.jsp

    正在执行Decommission,会显示:

    Decommission Status : Decommission in progress

    执行完毕后,会显示:

    Decommission Status : Decommissioned

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据和云计算技术

hadoop运行环境搭建

森哥/洋哥hadoop系列,非常适合初学者: Hive 元数据表结构详解 HDFS学习:HDFS机架感知与副本放置策略 Yarn【label-based sch...

397110
来自专栏about云

Hadoop3.0: YARN Resource配置说明

问题导读 1.yarn默认情况下使用哪些资源? 2.Yarn如何实现扩展自定义资源? 3.自定义资源,可以在哪个配置文件中配置? 4.哪些配置可以在yarn-...

57360
来自专栏about云

各个版本Linux单节点伪分布安装CDH5.1.X及提交wordcount到yarn高可靠文档

问题导读: 1.安装cdh5伪分布配置文件在什么位置? 2.不同的操作系统,cdh5的安装过程都包含哪些流程? 3.在yarn上运行wordcount都需要哪...

28160
来自专栏技术专栏

Hadoop 伪分布式安装部署

使得环境变量生效: source ~/.bash_profile 验证java是否配置成功: java -v 详细请参考 http://blog.csdn....

37420
来自专栏闵开慧

hadoop安装配置过程总结

 一、Jdk安装 系统已经默认有安装,但不完全,所以需要自己安装 配置环境变量: 在usr下新建java文件夹,将Java7压缩文件解压在该文件夹中,并配置系统...

37460
来自专栏zhisheng

Pycharm连接Github

绑定账号 1、File->Settings->Version Control->Github ? Settings.png 会出现github,然后在旁边输入你...

38570
来自专栏挖掘大数据

Hadoop基础教程——Hadoop单机版搭建

最近闲来无事,和朋友一起想学习Hadoop,最晚弄机器的弄到两点多,今天一起动手安装Hadoop的环境,刚开始也是一头雾水,Hadoop官网的教程我也是醉了,说...

38190
来自专栏Hadoop实操

如何使用Nginx实现CDSW的跨网段访问

在企业安装了CDSW后,由于服务安装在生产网络,考虑到集群的安全企业不允许将生产环境的网络直接放通给办公网或外网访问,如果需要在办公网或是外网访问则需要通过反向...

40940
来自专栏蜉蝣禅修之道

hadoop2.6和hbase1.0单机版安装配置

28820
来自专栏Hadoop实操

如何在CDSW上创建Git工程并提交代码

14630

扫码关注云+社区

领取腾讯云代金券