文档章节

hadoop 2.8.1安装和配置(单机)

wangxuwei
 wangxuwei
发布于 2017/08/17 00:11
字数 946
阅读 194
收藏 0

一、java环境(略)

二、配置SSH无密码登陆

$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

出现sign_and_send_pubkey: signing failed: agent refused operation

eval 'ssh-agent -s'
ssh-add

测试无密码登录

$ ssh localhost 
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.10.0-32-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

9 packages can be updated.
8 updates are security updates.

Last login: Tue Aug 15 23:16:52 2017 from ::1

三、创建hadoop用户组、用户

sudo addgroup hadoop
sudo adduser --ingroup hadoop hduser
sudo adduser hduser sudo

打算以普通用户(平时常用的这里mymotif)启动,故把它加到hadoop组

sudo usermod -a -G hadoop mymotif

四、下载、解压、改own等

cd
wget http://apache.fayea.com/hadoop/common/hadoop-2.8.1/hadoop-2.8.1.tar.gz
cd /opt
sudo tar xzvf  ~/hadoop-2.8.1.tar.gz 
sudo mv hadoop-2.8.1 hadoop
sudo chown -R hduser:hadoop hadoop

数据存放目录/home/hduser/tmp

su hduser
cd
mkdir tmp
chmod g+rw -Rf tmp            #为了使得mymotif用户对该目录有读写权限
exit

五、配置

etc/hadoop/core-site.xml文件

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
core-site.xml
 <!-- 指定HDFS老大(namenode)的通信地址 -->
    <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
    </property>
<!-- 指定hadoop运行时产生文件的存储路径 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hduser/tmp</value>
    </property>
</configuration>

etc/hadoop/hdfs-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
                     <!-- 设置hdfs副本数量 -->
      <property>
        <name>dfs.replication</name>
        <value>1</value>
      </property>
      <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hduser/tmp/dfs/name</value>
      </property>
      <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hduser/tmp/dfs/data</value>
      </property>
</configuration>

etc/hadoop/hadoop-env.sh 中export JAVA_HOME=${JAVA_HOME}行改成如下内容:

# The java implementation to use.
export JAVA_HOME=/opt/lib/jvm/jdk1.8.0_141
export HADOOP_COMMON_LIB_NATIVE_DIR="/opt/hadoop/lib/native/"
export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=/opt/hadoop/lib:/opt/hadoop/lib/native"

修改环境变量

全局变量/etc/profile加下面这段

#Hadoop variables
export HADOOP_INSTALL=/opt/hadoop
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
###end of paste

六、Hadoop启动

1)格式化namenode

$ hdfs namenode –format
2)启动NameNode 和 DataNode 守护进程

$ start-dfs.sh
3)启动ResourceManager 和 NodeManager 守护进程

$ start-yarn.sh

【注:start-all.sh 已不被建议使用】

文件存放:

$ hadoop fs -mkdir /user
$ hadoop fs -mkdir /user/hadoop
$ hadoop fs -mkdir /user/input
$ hadoop fs -ls /user/
Found 2 items
drwxr-xr-x   - mymotif supergroup          0 2017-08-18 14:50 /user/hadoop
drwxr-xr-x   - mymotif supergroup          0 2017-08-16 01:10 /user/input
$ hadoop fs -put test.c /user/hadoop/
$ hadoop fs -ls /user/hadoop
Found 1 items
-rw-r--r--   1 mymotif supergroup         66 2017-08-18 14:54 /user/hadoop/test.c
$ hadoop fs -copyFromLocal ~/hello.c /user/input/
$ hadoop fs -copyFromLocal ~/test.c /user/input/
$ hadoop fs -ls /user/input
Found 2 items
-rw-r--r--   1 mymotif supergroup         72 2017-08-19 15:46 /user/input/hello.c
-rw-r--r--   1 mymotif supergroup         66 2017-08-16 01:10 /user/input/test.c

获取

 hadoop fs -get /user/hadoop/test.c mytest.c
或
$ hadoop fs -get hdfs://localhost:9000/user/hadoop/test.c mytest.c

七、验证

$ jps
11856 NameNode
12210 SecondaryNameNode
12821 Jps
12502 NodeManager
12378 ResourceManager
12013 DataNode

管理界面:http://localhost:8088

NameNode界面:http://localhost:50070

HDFS NameNode界面:http://localhost:8042

其它问题:

$ ldd /opt/hadoop/lib/native/libhadoop.so.1.0.0
    linux-vdso.so.1 =>  (0x00007ffe79fb9000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7b3feaa000)
    libjvm.so => not found
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f7b3fc8d000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7b3f8c3000)
    /lib64/ld-linux-x86-64.so.2 (0x0000561243d70000)

 libjvm.so 找不到,执行下面的指令即可:

 sudo ln -s /opt/lib/jvm/jdk1.8.0_141/jre/lib/amd64/server/libjvm.so /lib/x86_64-linux-gnu/libjvm.so

eclipse插件下载地址:http://download.csdn.net/download/darkdragonking/9849522

https://pan.baidu.com/s/1eSpd7zk

java测试代码:

package test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URI;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

public class ReadHDFS {

	public static String getStringByTXT(String txtFilePath, Configuration conf)
	{

		FSDataInputStream fsr = null;
		BufferedReader bufferedReader = null;
		String lineTxt = null;
		try
		{
			FileSystem fs = FileSystem.get(URI.create(txtFilePath),conf);
			fsr = fs.open(new Path(txtFilePath));
			bufferedReader = new BufferedReader(new InputStreamReader(fsr));		
			while ((lineTxt = bufferedReader.readLine()) != null)
			{
				if(lineTxt.split("\t")[0].trim().equals("序号")){
					return lineTxt;
				}
				
			}
		} catch (Exception e)
		{
			e.printStackTrace();
		} finally
		{
			if (bufferedReader != null)
			{
				try
				{
					bufferedReader.close();
				} catch (IOException e)
				{
					e.printStackTrace();
				}
			}
		}

		return lineTxt;
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Configuration conf = new Configuration();
		String txtFilePath = "hdfs://localhost:9000/user/input/myhello.txt";
		String mbline = getStringByTXT(txtFilePath, conf);
		System.out.println(mbline);
	}

}

myhello.txt内容

$ hadoop fs -cat hdfs://localhost:9000/user/input/myhello.txt
1序号	学院	班级	学号	姓名	
序号 234	学院	班级	学号	姓名	
序号	学院12 34	班级	学号	姓名

运行结果:

序号	学院12 34	班级	学号	姓名	

enjoy  it!

© 著作权归作者所有

共有 人打赏支持
wangxuwei
粉丝 23
博文 332
码字总数 115371
作品 0
杭州
其他
sqoop2的安装-执行-问题

一、安装 1.解压 2.引入环境变量 vi ~/.bashrc export SQOOP_HOME=/home/hadoop/sqoop/sqoop-1.99.7-bin-hadoop200 export PATH=$PATH:$SQOOP_HOME/bin export SQOOPSERVEREXTRALIB=$SQOOPHO......

SnailEatA
2017/11/06
0
0
大数据之---hadoop问题排查汇总终极篇---持续更新中

1、软件环境 本次涉及伪分布式部署只是要主机hadoop1 2、启动密钥互信问题 HDFS启动 [hadoop@hadoop01 hadoop]$ ./sbin/start-dfs.sh Starting namenodes on [hadoop01] The authenticity of...

ycwyong
05/17
0
0
Hadoop伪分布式安装(HDFS)步骤

1.安装前的准备工作 在进行Hadoop伪分布式安装前要检测虚拟机是否进行了下面的配置: 1. 修改主机名 2. 修改主机名与ip之间的映射关系 3. 配置虚拟机网络可以进行上网 2.伪分布式部署(HDFS)...

yu0_zhang0的博客
2017/12/19
0
0
【Hadoop】Hadoop2.8编译

Hadoop编译步骤: 1.解压Hadoop源码包 2.JAVA安装 3.Maven安装 4.Findbugs安装 5.protobuf安装 6.安装其他依赖 7.编译 编译好的tar包路径 /opt/sourcecode/hadoop-2.8.1-src/hadoop-dist/tar...

wangkunj
05/16
0
0
在Ubuntu上安装Hadoop(集群模式)

在安装好单机模式的hadoop之后,我们就可以着手来在集群模式下安装hadoop了。在安装了单机版hadoop的机器上将hadoop转成集群模式是很容易的。首先来设置网络。 网络 首先,我们需要在同一个网...

贱圣
2013/06/12
0
4

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Ubuntu18.04 显卡GF-940MX安装NVIDIA-390.77

解决办法: 下面就给大家一个正确的姿势在Ubuntu上安装Nvidia驱动: (a)首先去N卡官网下载自己显卡对应的驱动:www.geforce.cn/drivers (b)下载后好放在英文路径的目录下,怎么简单怎么来...

AI_SKI
今天
1
0
深夜胡思乱想

魔兽世界 最近魔兽世界出了新版本, 周末两天升到了满级,比之前的版本体验好很多,做任务不用抢怪了,不用组队打怪也是共享拾取的。技能简化了很多,哪个亮按哪个。 运维 服务器 产品 之间的...

Firxiao
今天
1
0
MySQL 8 在 Windows 下安装及使用

MySQL 8 带来了全新的体验,比如支持 NoSQL、JSON 等,拥有比 MySQL 5.7 两倍以上的性能提升。本文讲解如何在 Windows 下安装 MySQL 8,以及基本的 MySQL 用法。 下载 下载地址 https://dev....

waylau
今天
0
0
微信第三方平台 access_token is invalid or not latest

微信第三方开发平台code换session_key说的特别容易,但是我一使用就带来无穷无尽的烦恼,搞了一整天也无济于事. 现在记录一下解决问题的过程,方便后来人参考. 我遇到的这个问题搜索了整个网络也...

自由的开源
今天
3
0
openJDK之sun.misc.Unsafe类CAS底层实现

注:这篇文章参考了https://www.cnblogs.com/snowater/p/8303698.html 1.sun.misc.Unsafe中CAS方法 在sun.misc.Unsafe中CAS方法如下: compareAndSwapObject(java.lang.Object arg0, long a......

汉斯-冯-拉特
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部