hadoop 小问题环境设置

1 linux修改系统日期与时间

 date -s  "2012-11-03 10:25:25"

2 windows下 hadoop 8088 端口不能看log的问题

进入C:\Windows\System32\drivers\etc 目录下编辑hosts目录
同一个地址可以起两个别名,但是不能写两个同样的IP地址
配置成功后可以在cmd中直接ping master...

192.168.137.121 master master
192.168.137.122 slaver1 slaver1
192.168.137.123 slaver2 slaver2
192.168.137.127 slaver3  slaver3

3 windows下 hadoop 8088 端口不能看history日志文件的问题

[root@master sbin]# pwd
/usr/hadoop-2.6.4/sbin
[root@master sbin]# mr-jobhistory-daemon.sh  start historyserver
[root@master sbin]# jps
3849 NameNode
4172 ResourceManager
4029 SecondaryNameNode
5427 Jps
5357 JobHistoryServer

4 windows下 ping命令不是内部命令,系统环境变量Path需添加

C:\windows\system32\

5 开机自启动或者关闭服务(开机关闭防火墙)

chkconfig iptables off

6 查看系统服务命令

 ls -a /etc/init.d/ 

7 杀掉进程,hiveserver2 启动两次会导致beenline

jps
kill -9 6829
kill -l

8 hive2.1.1版本或者之上需要使用jdk1.8或之上的版本进行兼容,否则会造成运行hql是经常报outofmemory错误

9 hbase 查操作命令

启动hbase:hbase shell

help 'create'
help 'put'
help 'get'
help 'alter'

10 安装phoneix 运行sqlline.py master,slaver1,slave2:2181 报错 : No module named argparse

Traceback (most recent call last):
  File "/usr/tools/apache-phoenix-4.11.0-HBase-1.2-bin/bin/sqlline.py", line 27, in <module>
    import argparse
ImportError: No module named argparse

这是因为安装新版本的phoenix自带sqlline需要argparse模块,我们centos6.5 中的python不包括这个模块。需要额外安装,我们使用easy_install 工具安装argparse模块比较简洁,类似npm

#wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py
#python ez_setup.py
#easy_install argparse

11 scala project with maven

Creating Your First scala Project with maven
如下图 add aracheType Choose net.alchim31.maven:scala-archetype-simple version:1.5
填好gav自动下载

enter description here
enter description here

修改scala版本号

 <properties>
    <maven.compiler.source>1.6</maven.compiler.source>
    <maven.compiler.target>1.6</maven.compiler.target>
    <encoding>UTF-8</encoding>
    <scala.tools.version>2.11</scala.tools.version>
    <scala.version>2.11.11</scala.version>
  </properties>

删除不用的单元测试依赖

    <dependency>
      <groupId>org.specs2</groupId>
      <artifactId>specs2_${scala.tools.version}</artifactId>
      <version>1.13</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.scalatest</groupId>
      <artifactId>scalatest_${scala.tools.version}</artifactId>
      <version>2.0.M6-SNAP8</version>
      <scope>test</scope>
    </dependency>

删除插件编译参数

<arg>-make:transitive</arg>
enter description here
enter description here

12 spark-shell 的使用

spark-shell 是一个命令行交互工具(需要安装好spark环境),在里面可以快速查看处理结果,下面有一个需求就查询ID为10的同学的信息

  
[root@master Desktop]# cat student.txt 
01      赵小六  1990-09-01 03:18:03.0   男
02      钱钟书  1916-12-21 00:00:00.0   男
03      孙菲菲  1990-05-20 00:00:00.0   男
04      李彦伟  1990-08-06 00:00:00.0   男
05      周佛海  1900-12-01 00:00:00.0   女
06      吴天    1992-03-01 00:00:00.0   女
07      郑板桥  1989-07-01 00:00:00.0   女
08      王菊    1990-01-20 00:00:00.0   女
09      张凯    1983-08-01 20:10:21.0   男
10      李云    1989-05-19 11:07:30.0   男
11      张凯    1997-06-12 11:47:23.0   男
12      张凯    1997-06-16 11:47:23.0   女
13      张海洋  1989-05-14 11:07:30.0   男

进入环境

[root@master ~]# spark-shell

生成rdd

scala> val sturdd =sc.textFile("file:///root/Desktop/student.txt")

过滤

scala> sturdd.filter(x=>x.split("\t")(0).toString.equals("10")).foreach(println)
10      李云    1989-05-19 11:07:30.0   男

13【hadoop】 running beyond virtual memory错误原因及解决办法

问题描述:

在hadoop中运行应用,出现了running beyond virtual memory错误。提示如下:

Container [pid=28920,containerID=container_1389136889967_0001_01_000121] is running beyond virtual memory limits. Current usage: 1.2 GB of 1 GB physical memory used; 2.2 GB of 2.1 GB virtual memory used. Killing container.

原因:从机上运行的Container试图使用过多的内存,而被NodeManager kill掉了。

[摘录] The NodeManager is killing your container. It sounds like you are trying to use hadoop streaming which is running as a child process of the map-reduce task. The NodeManager monitors the entire process tree of the task and if it eats up more memory than the maximum set in mapreduce.map.memory.mb or mapreduce.reduce.memory.mb respectively, we would expect the Nodemanager to kill the task, otherwise your task is stealing memory belonging to other containers, which you don't want.

解决方法:
mapred-site.xml中设置map和reduce任务的内存配置如下:(value中实际配置的内存需要根据自己机器内存大小及应用情况进行修改)

<property>
  <name>mapreduce.map.memory.mb</name>
  <value>1536</value>
</property>
<property>
  <name>mapreduce.map.java.opts</name>
  <value>-Xmx1024M</value>
</property>
<property>
  <name>mapreduce.reduce.memory.mb</name>
  <value>3072</value>
</property>
<property>
  <name>mapreduce.reduce.java.opts</name>
  <value>-Xmx2560M</value>
</property>

如果你没有权限重启hadoop可以在运行MR的时候设置configuration

conf.set("mapreduce.map.memory.mb", "1536");
conf.set("mapreduce.reduce.memory.mb", "3072");
conf.set("mapreduce.map.java.opts", "-Xmx1024m");
conf.set("mapreduce.reduce.java.opts", "-Xmx2560m");

附录:
Container is running beyond memory limits

14 Out of memory error in Mapreduce shuffle phase

必须满足条件 percent * parallelcopies <= 1 ,下面的设置将会报错

mapreduce.reduce.shuffle.input.buffer.percent = 0.7
mapreduce.reduce.shuffle.memory.limit.percent = 0.25
mapreduce.reduce.shuffle.parallelcopies = 5

相关链接

15 eclipse 链接 hbase 查询数据卡死

卡死的位置如下所示,断点调试是发现数据是卡死在Result result = table.get(get);最终发现是windows上的hosts配置需要跟大数据环境的hosts配置相一致,否则就会导致无法查询,一直在连接,从来啊没有连接上
,连接上会有一个Connecting to slaver2/192.168.137.120:16020 ...的提示

2017-11-16 18:40:02.008 [INFO ] [org.apache.zookeeper.Environment.logEnv(Environment.java:100)] Client environment:java.io.tmpdir=C:\Users\ZHAOZH~1\AppData\Local\Temp\
2017-11-16 18:40:02.008 [INFO ] [org.apache.zookeeper.Environment.logEnv(Environment.java:100)] Client environment:java.compiler=<NA>
2017-11-16 18:40:02.008 [INFO ] [org.apache.zookeeper.Environment.logEnv(Environment.java:100)] Client environment:os.name=Windows 10
2017-11-16 18:40:02.008 [INFO ] [org.apache.zookeeper.Environment.logEnv(Environment.java:100)] Client environment:os.arch=amd64
2017-11-16 18:40:02.008 [INFO ] [org.apache.zookeeper.Environment.logEnv(Environment.java:100)] Client environment:os.version=10.0
2017-11-16 18:40:02.009 [INFO ] [org.apache.zookeeper.Environment.logEnv(Environment.java:100)] Client environment:user.name=zhaozhifei
2017-11-16 18:40:02.011 [INFO ] [org.apache.zookeeper.Environment.logEnv(Environment.java:100)] Client environment:user.home=C:\Users\zhaozhifei
2017-11-16 18:40:02.011 [INFO ] [org.apache.zookeeper.Environment.logEnv(Environment.java:100)] Client environment:user.dir=E:\MyWorkSpace\hadoopProjects\hbaseapi
2017-11-16 18:40:02.012 [INFO ] [org.apache.zookeeper.ZooKeeper.<init>(ZooKeeper.java:438)] Initiating client connection, connectString=192.168.137.118:2181,192.168.137.119:2181,192.168.137.120:2181 sessionTimeout=90000 watcher=hconnection-0x4387b79e0x0, quorum=192.168.137.118:2181,192.168.137.119:2181,192.168.137.120:2181, baseZNode=/hbase
2017-11-16 18:40:02.014 [DEBUG] [org.apache.zookeeper.ClientCnxn.<clinit>(ClientCnxn.java:102)] zookeeper.disableAutoWatchReset is false

enter description here
enter description here

参考
HBase读取数据卡住长时间不返回的原因分析

16 CentOS 7 防火墙设置

查看防火墙状态

$ systemctl status firewalld
$ service firewalld status

关闭防火墙

$ sudo systemctl stop firewalld
$ sudo service firewalld stop
Redirecting to /bin/systemctl stop  firewalld.service

启用防火墙

$ sudo systemctl start firewalld
$ sudo service firewalld start
Redirecting to /bin/systemctl start  firewalld.service

开机启用防火墙

$ sudo systemctl enable firewalld
开机不启用防火墙

$ sudo systemctl disable firewalld

对外开启 80、8080 端口: 只有开启防火墙才可以设置

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=8080/tcp

How to Stop and Disable Firewalld on CentOS 7
How to Start and Enable Firewalld on CentOS 7
How To: Disable Firewall on RHEL / CentOS / RedHat Linux

17 window上编写的shell脚本,linux无法执行的问题

关于回车与换行的由来
很久以前,老式的电传打字机使用两个字符来另起新行。一个字符把滑动架移回首位 (称为回车,ASCII码为0D),另一个字符把纸上移一行 (称为换行,ASCII码为0A)。当计算机问世以后,存储器曾经非常昂贵。有些人就认定没必要用两个字符来表示行尾。UNIX 开发者决定他们可以用一个字符来表示行尾,Linux沿袭Unix,也是。Apple 开发者规定了用.开发 MS-DOS以及Windows 的那些家伙则决定沿用老式的.

三种行尾格式如下:
unix : n
dos : rn
mac : r

这意味着,如果你试图把一个文件从一种系统移到另一种系统,那么你就有换行符方面的麻烦。
因为MS-DOS及Windows是回车+换行来表示换行,因此在Linux下用Vim查看在Windows下写的代码,行尾后^M符号。详见Windows & Linux 文件格式之迷 < VI下删除文本中的^M>

解决方法

  • vim -b filename 这样就能看到行尾的^M符号了,然后移动到行尾
  • 在vim中利用替换功能就可以将^M都删掉,键入如下替换命令行:%s/^M//g
  • 注意:上述命令行中的^M符,不是^再加上M,而是由Ctrl+vCtrl+M键生成的,或者Ctrl+v,再按回车

18 关于本地代码调试服务无法连接的问题

如果想在本地运行则必须设置bootstrap.serverskafka集群设置的地址是相同的,即iphostname 不能完全等价,win host要进行配置,目前发现hbase,测试环境ok,线上集群报错,等问题,均由此问题导致。特此铭记

19 hdfs块丢失导致的异常问题排查解决

问题描述:由于不小心误删了hdfs的元数据目录,导致hdfs的块丢失;hdfs namenode自动进入 safe mode,hbase也一直报错找不到hbase.version文件,导致master挂掉;

  • 首先退出hdfs namenode safe modehadoop dfsadmin -safemode leave

  • 修复hdfs丢失的块 hadoop fsck /hdfs fsck / -delete //此方式会将丢失的块全部删除

  • hbase修复 hbase hbck -fixVersionFile

如果hbase还有org.apache.hadoop.hbase.TableExistsException: hbase:namespace 异常
解决方案:

  • 切换到zookeeper的bin目录;

  • 执行$sh zkCli.sh

  • 输入 ls /

  • 输入rmr /hbase

  • 退出重启即可

引用自

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,736评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,167评论 1 291
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,442评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,902评论 0 204
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,302评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,573评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,847评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,562评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,260评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,531评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,021评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,367评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,016评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,068评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,827评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,610评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,514评论 2 269

推荐阅读更多精彩内容