canway01 发表于 2016-12-30 14:01:41

Linux Hadoop入门(伪分布式)

【正文】一、   实验环境配置操作系统:rhel 7.0 x86_64默认桌面安装软件包:jdk-7u79-linux-x64.rpm            hadoop-2.6.4.tar.gz二、   实验内容a)   伪分布式安装b)   使用Hadoop进行字数统计实验三、   安装jdk并配置java home1.   安装
# cd   /tmp;yum localinstall -y jdk-7u79-linux-x64.rpm

2.   配置java环境变量
#vim   java.sh

JAVA_HOME=/usr/java/jdk1.7.0_79/
PATH=$PATH:$JAVA_HOME/bin
export   JAVA_HOME PATH

3.   拷贝到登录环境设置中
#cp   java.sh /etc/profile.d/

四、   解压hadoop及设置hadoop环境1.      解压到指定路径
#tar   -xvf hadoop-2.6.4.tar.gz -C /usr/local/
2.   配置hadoop环境变量
#vim   hadoop.sh
HADOOP_HOME=/usr/local/hadoop-2.6.4/PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbinexport PATH   HADOOP_HOME
3.   拷贝到登录环境设置中
#cp   hadoop.sh /etc/profile.d/

五、   编辑hadoop配置文件1.      编辑core-site.xml
# vim   /usr/local/hadoop-2.6.4/etc/hadoop/core-site.xml

<!-- 新变量f:s.defaultFS 代替旧的:fs.default.name --><property>    <name>fs.defaultFS</name>    <value>hdfs://127.0.0.1:9000</value>    <description>The   name of the default file system.</description></property><property>    <name>hadoop.tmp.dir</name>    <!--   注意创建相关的目录结构 -->    <value>/hadoop/tmp</value>    <description>A   base for other temporary directories.</description></property>
2.      编辑hdfs-site.xml
# vim   /usr/local/hadoop-2.6.4/etc/hadoop/hdfs-site.xml

<property>
    <name>dfs.replication</name>
    <!-- 值需要与实际的DataNode节点数要一致,本文为1,因为我们实验的是伪分布模式,仅有一个节点 -->
    <value>1</value>
    </property>
<property>
    <name>dfs.namenode.name.dir</name>
    <!-- 注意创建相关的目录结构 -->
    <value>file:/hadoop/tmp/dfs/name</value>
    <final>true</final>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
   <!-- 注意创建相关的目录结构 -->
    <value>file:/ hadoop/tmp/dfs/data</value>
</property>

3.      编辑yarn-site.xml
# vim   /usr/local/hadoop-2.6.4/etc/hadoop/yarn-site.xml

<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 hostname或ip地址-->
<property>
      <name>yarn.resourcemanager.hostname</name>
    <value>127.0.0.1</value>
</property>

4.      编辑mapred-site.xml
# cp   /usr/local/hadoop-2.6.4/etc/hadoop/mapred-site.xml.template   /usr/local/hadoop-2.6.4/etc/hadoop/mapred-site.xml && vim   /usr/local/hadoop-2.6.4/etc/hadoop/mapred-site.x
ml

<property>
          <name>mapreduce.framework.name</name>
          <value>yarn</value>
          <final>true</final>
</property>

六、   为运行hadoop创建一个用户,并授权ssh登录本地免输入密码1.      新增用户并设置密码
#useradd hduser
#passwd hduser

2.      设置免输入密码
#su - hduser
# ssh-keygen(一直回车生成秘钥)
# ssh-copy-id -i /home/hduser/.ssh/id_rsa.pub hduser@localhost(拷贝密钥给自己)
#exit

七、   创建hadoop的data文件夹(即上文中的/hadoop/tmp并授权给hduser用户)
#mkdir   –pv /hadoop/tmp && chown hduser.hduser –R /hadoop

八、   更改hadoop程序下的拥有者和拥有组
# chown   hduser.hduser -R /usr/local/hadoop-2.6.4/

九、   启动hadoop(新建ssh登录hduser用户)1.      第一次启动需要格式化名称节点
$hdfs   namenode -format

2.      启动名称节点、数据节点及yarn(资源管理和任务调度)
$start-dfs.sh   && start-yarn.sh

3.      检查启动情况
$jps

启动了以下的就证明成功:
35658   DataNode
35856   SecondaryNameNode
36092   NodeManager
35999   ResourceManager
35566   NameNode
36408   Jps

十、   实验wordcount1.      先在hadoop文件系统内创建文件夹
$hdfs   dfs –mkdir /tmp

2.      创建实验文件/tmp/in,1.txt、2.txt、3.txt1.txt
Hi   lythjq welcome to hadoop

2.txt
Hi   lythjq welcome to bigdata

3.txt
Hi   lythjq welcome to canway

3.      拷贝/tmp/in文件夹进入hadoop文件系统中的/tmp目录下
$ hdfs   dfs -put /tmp/in/ /tmp

4.      开始运行wordcount来进行词的统计
$ hadoop jar   /usr/local/hadoop-2.6.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.4.jar   wordcount /tmp/in/ /tmp/out

注意:这里的/tmp/in和/tmp/out是指hadoop文件系统里的路径5.      查看输出的结果
$ hdfs   dfs -ls /tmp/out


$ hdfs   dfs -cat /tmp/out/part-r-00000

http://image.learnfuture.com/7E5288049F9311BCD02586197093BA418CCE8EB6.jpg

本文来源于:泛IT职业发展服务平台——学领未来http://www.learnfuture.com

页: [1]
查看完整版本: Linux Hadoop入门(伪分布式)