Dutch Azure Meetup

Dutch Azure Meetuo LogoThis week Pascal Naber, Sander Molenkamp and I started the Dutch Azure Meetup: http://www.meetup.com/Dutch-Azure-Meetup/

Azure offers a lot of services and features, and this grows almost daily. It’s hard to be up-to-date on all the Azure features. This meetup gives you the opportunity to learn about Azure in a practical way.

We want to offer a platform for Azure enthusiasts, where you can get hands-on with the technology, talk with and learn from each other. The meetup will not handle customer cases in theory but instead we talk about deep technical details, real world experiences and best practices.

Our first meetup is planned for the 2nd of June and is all about Azure Container Service:

Join the first Dutch Azure Meetup!

Docker is taking the world by storm and Microsoft Azure Container Service is where Azure and Docker meet!

During this first meetup Mark van Holsteijn will give you a brief introduction into Docker and Microsoft Container Service.After which you will have ample opportunity to get hands-on with Docker, Marathon, Azure and ASP.NET core.

We will show you how Azure Container Service provides an excellent platform for creating cross-cloud applications.

About the speaker

Mark van Holsteijn is Principal Consultant at Xebia specialized in cloud software architectures with open-source technologies.

Agenda

18:00: Dinner

18:45: Word of welcome Dutch Azure Meetup

18:50: Azure Container Service (by Mark van Holsteijn)

19:30: Hands-on with Docker and Azure Container Service

Get subscription id in an Azure Resource Manager Template

Recently I was writing an Azure Resource Manager Template to deploy a Web App. The Web App needed some Application settings (like connection strings, etc..) which I wanted to provision during the Resource Manager Template deployment. One of the settings needed was the Azure subscription id where the Web App was created.
I didn’t want to hardcode the subscription id, or provide it through a parameter (which is a way to postpone the hard-coding), so I did a little research and I found the solution.

In Azure RM Template you can use Resource Functions which can evaluate during the deployment run-time settings.

The one I needed was subscription()  which has the following structure:

This means you can use the function like this:

There are more nice functions you may need to use like: resourceGroup()resourceId ([resourceGroupName], resourceType, resourceName1, [resourceName2]…).

HDInsight error with external metastore (Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient)

Recently I was working to setup a Big Data environment in Azure.
From Azure Data Factory I was spinning up an on-demand HDInsight Cluster with an external metastore.

Unfortunately I was always getting the following error: “Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient”.
After contacting Microsoft for support about this error they found the error was caused by a known Hadoop bug:
https://issues.apache.org/jira/browse/HIVE-12536

In short the error was caused by having dashes (-) in the name of the metastore database. After removing the dashes the problem disappeared and I was able to create the on-demand HDInsight cluster.

An excerpt of the error log, the name of my metastore was db-metastore-p:


Logging initialized using configuration in file:/C:/apps/dist/hive-0.14.0.2.2.9.1-1/conf/hive-log4j.properties
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/apps/dist/hadoop-2.6.0.2.2.9.1-1/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/apps/dist/hbase-0.98.4.2.2.9.1-1-hadoop2/lib/slf4j-log4j12-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:445)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:619)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
Caused by: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1483)
at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.(RetryingMetaStoreClient.java:63)
at org.apache.hadoop.hive.metastore.RetryingMetaStoreClient.getProxy(RetryingMetaStoreClient.java:73)
at org.apache.hadoop.hive.ql.metadata.Hive.createMetaStoreClient(Hive.java:2743)
at org.apache.hadoop.hive.ql.metadata.Hive.getMSC(Hive.java:2762)
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:426)
... 8 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.apache.hadoop.hive.metastore.MetaStoreUtils.newInstance(MetaStoreUtils.java:1481)
... 13 more
Caused by: javax.jdo.JDOUserException: Could not create "increment"/"table" value-generation container db-metastore-p.dbo.SEQUENCE_TABLE since autoCreate flags do not allow it.
NestedThrowables:
org.datanucleus.exceptions.NucleusUserException: Could not create "increment"/"table" value-generation container db-metastore-p.dbo.SEQUENCE_TABLE since autoCreate flags do not allow it.

Access Synology DSM from the internet with a Reverse Proxy

Update:

For DSM 5 the paths are changed:

  • DSM 4: /usr/syno/etc/httpd-ssl-vhost.conf-user
  • DSM 5: /etc/httpd/sites-enabled-user/httpd-ssl-vhost.conf-user

I want to be able to access my Synology Disk Station Management (DSM) from the internet in a secure way through https.

DSM is standard running on the Synology in https mode on port 5001, so we need to setup a reverse proxy in apache:

Access the Synology with SSH using Putty, en type the following commands in the shell prompt to navigate to the right folder:

For DSM 4:

For DSM 5:

Continue reading “Access Synology DSM from the internet with a Reverse Proxy”

Windows 8 keyboard shortcuts summary

Few days ago i was reading a nice post from Scott Hanselman’s blog about Windows 8 enhanced keyboard shortcuts

Here is a summary of the keys:

  • Win+E – Explorer
  • Win+R – Run
  • Win+Break – System Info
  • Win+D – Desktop (I use this constantly if I get trapped outside the Desktop world)
  • Win+Plus or Win+Minus (no shift) – Magnifier/Zoom In and Out
  • Alt-Tab – Switch between Apps
  • Win-Tab – Switch between Full Screen Apps
  • Win+W – Search Control Panel and Settings stuff
  • Win+F – Search Files
  • Esc – Yes, escape. No joke. If you hit the Windows Key, you can hit Escape to go back.
  • Win+C – Charms (right side menu) then arrows to move and enter to launch.
  • Win+K – Devices
  • Win+I – Settings in any app plus brightness, network and other useful system features
  • Win+Arrows – Snap desktop apps to the sides
  • Win+(period) – Alternate sides to “snap” Metro Apps. Add shift to reverse it.
  • Win-X – Admin Stuff. It’s REALLY useful.
  • Win+PageUp or Win+PageDn – Move full screen apps to other monitors. Super useful for News apps and Readers. The Start Screen can be moved as well.

Install Windows with UEFI on Dell Latitude

Today i was trying to install Windows 8 Pro on my Dell Latitude E6510 laptop with UEFI enabled.

You can enable UEFI from the bios, (i first installed the most recent bios version) under boot section and then select UEFI. 

But with my disappointment i couldn’t boot from my USB key with the windows bootable installation on it.

I prepared the USB key with the Windows 7 USB/DVD Download Tool, a nice tool from Microsoft to make installation from USB possible from an ISO Windows installation image.

After a little bit research on the net i found here that the installation on UEFI is possible only in some circumstances and that the USB Download Tool was useless. Continue reading “Install Windows with UEFI on Dell Latitude”

Install OpenElec 1.0.2 on Asrock ION 3D 152d and a Logitech Harmony Remote

This is a step-by-step guide to install OpenElec 1.0.2 on an Asrock ION 3D 152d, and optionally configuring a Logitech Harmony Remote.

Installing OpenElec:

Go to the OpenElec site and download the ION build (i have downloaded the i386 build, but the x86_64 i think will work too with this guide).

  1. Make a bootable USB key from your PC using this guide if you are on Windows PC, or this guide for Linux PC.
  2. Install OpenElec on your Asrock using this guide. Continue reading “Install OpenElec 1.0.2 on Asrock ION 3D 152d and a Logitech Harmony Remote”

Run sabnzbd+ behind Apache on Synology

Update

Since DSM 5 the paths are changed:

DSM 4:

  •  /usr/syno/etc/httpd-ssl-vhost.conf-user
  • /usr/syno/apache/conf/httpd.conf-user

DSM 5:

  • /etc/httpd/sites-enabled-user/httpd-ssl-vhost.conf-user
  • /etc/httpd/conf/httpd.conf-user

I’m an owner of a Synology DS211 and i have installed Sabnzbd+ on it, using this helpful package http://synoblog.superzebulon.org/2011/09/sabnzbd-0-6-9-1-spk/ (add it to your favorites, it’s a really nice site with more packages to download).

My  Synology is running on the latest 3.2 firmware.

After installation Sabnzbd+ is running on the following address http://private-diskstation-ip:8080, and i wanted to make it accessible in a secure way from the internet.
I want to be able to access the sabnzbd+ instance only from https and with a user/password prompt.

Continue reading “Run sabnzbd+ behind Apache on Synology”

Blocking access to application pages (_layouts) and Forms Pages

Few weeks ago i was fixing a bug in Sharepoint 2010 project available on the internet. The requirement was to prevent access from authenticated users who knows the special Sharepoint addresses (such as _layouts, etc..). Continue reading “Blocking access to application pages (_layouts) and Forms Pages”

Official DotNetNuke 6.0 Product Launch

This afternoon I was at the official DotNetNuke 6.0 Product Launch at Microsoft in Schiphol.

The presentation was given by coworkers of Xcess, Ernst Peter Tamminga (Chief Executive Officer) and André van Ramshorst (Account manager) and also by DotNetNuke coworkers, Mitch Bishop (Chief Marketing Officer) and Bob Cortale (Senior Vice-President, Sales).

The most important new things in DotNetNuke 6 are the conversion of the core language from VB.Net to C#, a new GUI Continue reading “Official DotNetNuke 6.0 Product Launch”