Hadoop “Name node is in safe mode”

https://www.linuxidc.com/Linux/2015-02/113100.htm Hadoop dfsadmin -safemode leave Hadoop 解除 “Name node is in safe mode” 运行hadoop程序时,有时候会报以下错误: org.apache.hadoop.dfs.SafeModeException: Cannot delete /user/hadoop/input. Name node is in safe mode 这个错误应该还满常见的吧(至少我运行的时候是这样的) 那我们来分析下这个错误,从字面上来理解: Name node is in safe mode 说明Hadoop的NameNode处在安全模式下。 那什么是Hadoop的安全模式呢? 在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可。 现在就清楚了,那现在要解决这个问题,我想让Hadoop不处在safe mode 模式下,能不能不用等,直接解决呢? 答案是可以的,只要在Hadoop的目录下输入: bin/hadoop dfsadmin -safemode leave 也就是关闭Hadoop的安全模式,这样问题就解决了。 之前在hadoop执行过程中使用了”ctrl+c”操作 再次使用hadoop时出现“Name node is in safe mode”提示: root@www.linuxidc.com:~/hadoop/hadoop-0.20.2# bin/hadoop fs -put conf…

sqoop transfer data from mysql into hive

用sqoop将mysql的数据导入到hive表中 FROM:https://www.cnblogs.com/xuyou551/p/7998846.html 1:先将mysql一张表的数据用sqoop导入到hdfs中 准备一张表 需求 将 bbs_product 表中的前100条数据导 导出来  只要id  brand_id和 name 这3个字段 数据存在 hdfs 目录   /user/xuyou/sqoop/imp_bbs_product_sannpy_  下 bin/sqoop import \ –connect jdbc:mysql://172.16.71.27:3306/babasport \ –username root \ –password root \ –query ‘select id, brand_id,name from bbs_product where $CONDITIONS LIMIT 100’ \ –target-dir /user/xuyou/sqoop/imp_bbs_product_sannpy_ \ –delete-target-dir \ –num-mappers 1 \ –compress \ –compression-codec org.apache.hadoop.io.compress.SnappyCodec \ –fields-terminated-by…

hive beeline root is not allowed to impersonate anonymous

关于 HIVE Beeline 问题 1  启动 hiveserver2 服务,启动 beeline -u jdbc:hive2:// 正常 ,启动 beeline -u jdbc:hive2://127.0.0.1:10000 包如下错误 Error: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: root is not allowed to impersonate anonymous (state=,code=0) Beeline version 2.1.0 by Apache Hive 分析 : 访问权限问题 解决 :在hdfs 的配置文件core-site.xml中加入如下配置,root 为位置填入  User:*  ,etc   hadoop.proxyuser.eamon.hosts 1 2 3 4 5 6 7 8…

CentOS7安装Hive2.3.2

source:http://blog.csdn.net/u011563666/article/details/78952920   一、前提条件准备 1、系统中已经安装好了Hadoop-2.x集群环境(伪分布式也可以),我这里安装的是hadoop-2.7.3 hadoop安装参考:http://blog.csdn.net/u011563666/article/details/50170465 2、确保系统一种已经安装好了MySQL mysql用于存储hive元数据信息,目前hive支持的元数据库有derby、mssql、mysql、postgrace、oracle,我这里使用mysql作为其元数据库。 3、授予mysql远程登录访问权限 grant all on *.* to root@’%’  identified by ‘123456’; flush privileges; 二、安装Hive2.3.2 1、下载apache-hive-2.3.2-bin.tar.gz wget http://mirrors.hust.edu.cn/apache/hive/stable-2/apache-hive-2.3.2-bin.tar.gz 2、解压hive tar -zxvf apache-hive-2.3.2-bin.tar.gz -C /part1 (解压在/part1目录下) 3、修改hive相关配置文件 hive所有配置文件位于conf目录下 1)、修改hive-env.sh export HADOOP_HOME=/part1/hadoop-2.7.3 export HIVE_CONF_DIR=/part1/apache-hive-2.3.2-bin/conf 2)、修改hive-site.xml <property> <name>hive.exec.scratchdir</name> <value>/user/hive/tmp</value> </property> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property> <property> <name>hive.querylog.location</name> <value>/user/hive/log</value> </property> <!– 以下是配置 MySQL作为hive元数据存储库 –> <property> <name>javax.jdo.option.ConnectionURL</name>…

hive update one line insert overwrite

insert overwrite table dragoncard_consume_rds partition (pt=’20171106′) select consume_record_id, transsequno, dragon_card_code, product_id, product_code, product_name, createdate, point, people_num, trafficsite_id, trafficsite_code, trafficsite_name, user_id, agent_id, card_way_id, server_type, trafficsite_type, trafficsite_around, departure_type, product_cost_price, product_cost_price_currency, product_linestatus, product_status, trafficsite_continent_name, trafficsite_country_name, trafficsite_area_name, trafficsite_city_name, dim_agent_agreement_cardname, dim_agent_agreement_conid, dim_agent_agreement_linestatus, dim_agent_agreement_docstatus, dim_agent_level1_name, dim_agent_level2_name, dim_agent_level3_name, dim_agent_level4_name, dragoncard_istest, is_test_user from dragoncard_consume_rds where pt = ‘20171106’ and transsequno!=’92017082125243′;

Hadoop namenode can not run

reference: http://blog.csdn.net/bychjzh/article/details/7830508 最近遇到了一个问题,执行start-all.sh的时候发现JPS一下namenode没有启动 每次开机都得重新格式化一下namenode才可以 其实问题就出在tmp文件,默认的tmp文件每次重新开机会被清空,与此同时namenode的格式化信息就会丢失 于是我们得重新配置一个tmp文件目录 首先在home目录下建立一个hadoop_tmp目录 sudo mkdir ~/hadoop_tmp 然后修改hadoop/conf目录里面的core-site.xml文件,加入以下节点: <property> <name>hadoop.tmp.dir</name> <value>/home/chjzh/hadoop_tmp</value> <description>A base for other temporary directories.</description> </property> 注意:我的用户是chjzh所以目录是/home/chjzh/hadoop_tmp OK了,重新格式化Namenode hadoop namenode -format 然后启动hadoop start-all.sh 执行下JPS命令就可以看到NameNode了

spark elasticsearch scala idea sbt integration problem solved

build.sbt内容: name := “search” version := “1.0” scalaVersion := “2.11.1” libraryDependencies ++= Seq( “org.apache.spark” % “spark-core_2.11” % “2.1.0” ) elasticsearch官网下载最新elasticsearch-hadoop包找到版本对应的jar包 elasticsearch-spark-20_2.11-5.6.4.jar import进来,目前来看5.6.4兼容5.5.0elasticsearch spark读取es代码: import org.apache.spark.{SparkConf, SparkContext} import org.elasticsearch.spark._ /** * Created by yanggf on 2017/11/9. */ object Elastic { def main(args: Array[String]): Unit ={ // def file = “f:/scala.txt” // val conf = new SparkConf().setMaster(“local”).setAppName(“elastic”)…

Unable to load native-hadoop library for your platform Hadoop WARN resolved

刚装好hadoop的时候,每次输入命令运行都会出现: WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable 提示hadoop不能加载本地库。 以前官网会提供32位的安装包,但目前提供的下载包为64位的,在linux 32位系统下安装后会一直提示错误“WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable ”,但官网又不提供32位系统下的安装包,所以我们只能自己编译打包源码。 大家可以到$HADOOP_HOME/lib/native下,查看文件libhadoop.so.1.0.0,里面会显示Hadoop的位数,官网下载好的显示是64位的,截图如下: 配置环境变量 在/etc/profile中,添加下面配置: export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export HADOOP_HOME=/usr/hadoop/hadoop-2.7.4 export HADOOP_OPTS=”-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR” 最后记得使配置生效:source /etc/profile 并把相同配置添加到hadoop-env.sh文件末尾。 输入如下命令,没有报warn,说明修改成功。  

hadoop file system , command summary

启动Hadoop 进入HADOOP_HOME目录。 执行sh bin/start-all.sh 关闭Hadoop 进入HADOOP_HOME目录。 执行sh bin/stop-all.sh 1、查看指定目录下内容 Hadoop dfs –ls [文件目录] eg: hadoop dfs –ls  /user/wangkai.pt 2、打开某个已存在文件 hadoop dfs –cat [file_path] eg:hadoop dfs -cat /user/wangkai.pt/data.txt 3、将本地文件存储至hadoop hadoop fs –put [本地地址] [hadoop目录] hadoop fs –put /home/t/file.txt /user/t (file.txt是文件名) 4、将本地文件夹存储至hadoop hadoop fs –put [本地目录] [hadoop目录] hadoop fs  –put /home/t/dir_name /user/t (dir_name是文件夹名) 5、将hadoop上某个文件down至本地已有目录下 hadoop fs -get…

hadoop : command not found

this error implicit  that system can not found hadoop  from system’s path, so we should  config environment  variables relative. export  $HADOOP_HOME=/usr/hadoop export  PATH=$HADOOP_HOME/bin:$PATH source /etc/profile